Skip to content

ISiloStatusOracle service stops sending Silo Status Events to ISiloStatusListener once a silo has joined cluster (status Active) #6080

Description

@olegbsky

Listener:

public class SiloStatusListener : ISiloStatusListener
{
	public void SiloStatusChangeNotification(SiloAddress updatedSilo, SiloStatus status)
	{
		Logger.LogWarning($"Silo '{updatedSilo.ToParsableString()}' status: {status}");
	}
}

Startup code:

ISiloHost siloHost = BuildSilo(); // Using ADO.NET provider for Clustering (MySql)
var oracle = siloHost.Services.GetService<ISiloStatusOracle>();                
var result = oracle.SubscribeToSiloStatusEvents(new SiloStatusListener()); // Returns true

Steps to reproduce the issue:

  1. Start Silo Fixing typo in README #1.

warn: MyApp.Silo.Program[0]
Silo '10.0.75.1:11111@310110425' status: Created
warn: MyApp.Silo.Program[0]
Silo '10.0.75.1:11111@310110425' status: Joining
warn: MyApp.Silo.Program[0]
Silo '10.0.75.1:11111@310110425' status: Active

  1. Start Silo Exclude code-gen files from repo #2.

warn: MyApp.Silo.Program[0]
Silo '10.0.75.1:11111@310110425' status: Active
warn: MyApp.Silo.Program[0]
Silo '10.0.75.1:11112@310110682' status: Created
warn: MyApp.Silo.Program[0]
Silo '10.0.75.1:11112@310110682' status: Joining
warn: MyApp.Silo.Program[0]
Silo '10.0.75.1:11112@310110682' status: Active

  1. Note that Silo Fixing typo in README #1 does not get Status updates about Silo Exclude code-gen files from repo #2.

  2. Wait for some time and stop Silo Fixing typo in README #1 or Silo Exclude code-gen files from repo #2.

  3. Neither Silo Fixing typo in README #1 nor Silo Exclude code-gen files from repo #2 receive new Silo Status Events.

Reproducible on Version 2.4.3.

Metadata

Metadata

Assignees

No one assigned

    Labels

    staleIssues with no activity for the past 6 months

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions