Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ReminderTableGrain does not work alongside MembershipTableGrain #2386

Closed
dandago opened this issue Nov 3, 2016 · 8 comments
Closed

ReminderTableGrain does not work alongside MembershipTableGrain #2386

dandago opened this issue Nov 3, 2016 · 8 comments
Assignees
Labels
Milestone

Comments

@dandago
Copy link

dandago commented Nov 3, 2016

Issue with reminders configured with the ReminderTableGrain (from XML): it's not getting the right config apparently, and gives the error "Cannot RegisterOrUpdateReminder when ReminderServiceProviderType is Disabled"; it works fine with SQL store.

Sample config:

<OrleansConfiguration xmlns="urn:orleans">
  <Globals>
    <SeedNode Address="127.0.0.1" Port="11111" />
    <SystemStore SystemStoreType="MembershipTableGrain" />
    <Liveness LivenessType="MembershipTableGrain" />
    <ReminderService ReminderServiceType="ReminderTableGrain" />
    <StorageProviders>
      <Provider Type="Orleans.Storage.MemoryStorage" Name="PersistenceStore" />
      <Provider Type="Orleans.Storage.MemoryStorage" Name="PubSubStore" />
    </StorageProviders>
    <StreamProviders>
      <Provider Type="Orleans.Providers.Streams.SimpleMessageStream.SimpleMessageStreamProvider"
                Name="SMSProvider"/>
    </StreamProviders>
  </Globals>
  <Defaults>
    <Networking Address="127.0.0.1" Port="11111" />
    <ProxyingGateway Address="127.0.0.1" Port="30000" />
    <Startup Type="Silo.Startup,Silo" />
  </Defaults>
</OrleansConfiguration>
@gabikliot
Copy link
Contributor

I think it has to be: ReminderServiceProviderType.

http://dotnet.github.io/orleans/Documentation/Orleans-Configuration-Guide/Server-Configuration.html

@sergeybykov
Copy link
Contributor

I'm trying to wrap my head around this code - https://github.com/dotnet/orleans/blob/master/src/Orleans/Configuration/GlobalConfiguration.cs#L756, and it's not immediately obvious to me if it's correct or not. I can't even find where we would parse ReminderService/ReminderServiceType. If I'm not mistaken, the code appears out of sync with programmatic config and the docs.

@sergeybykov sergeybykov added this to the Triage milestone Nov 3, 2016
@shayhatsor shayhatsor added the bug label Nov 10, 2016
@shayhatsor
Copy link
Member

I figured out what's happening here. Prior to this the default was always ReminderTableGrain. It hid the bug that was always there - we're trying to parse sst as two different enums: LivenessProviderType and ReminderServiceProviderType. A workaround is to remove the following from @dandago's config:

    <SystemStore SystemStoreType="MembershipTableGrain" />

@sergeybykov
Copy link
Contributor

Is this related to #2527?

@benjaminpetit
Copy link
Member

Yes and no...

If I am not mistaken,

<Liveness LivenessType="MembershipTableGrain" />

is useless, we do not parse LivenessType here.

Same thing for

<ReminderService ReminderServiceType="ReminderTableGrain" />

The only way to set LivenessType and ReminderServiceType using XML config is to use

<SystemStore SystemStoreType="xxx" />

I am not sure we want to make change in XML config right now; to enable your scenario currently you would have to use programmatic configuration.

@benjaminpetit
Copy link
Member

Or we could do a dirty workaround, that when we have this in config:

 <SystemStore SystemStoreType="MembershipTableGrain" />

we set ReminderServiceType to ReminderTableGrain

@sergeybykov
Copy link
Contributor

Or we could do a dirty workaround, that when we have this in config:

we set ReminderServiceType to ReminderTableGrain

I don't view this as a 'dirty workaround'. Since XML config doesn't support separate configurations for membership and reminders in cases other than SystemStoreType="Custom", I think it is only logical to set ReminderServiceType to match the specified SystemStoreType.

@sergeybykov
Copy link
Contributor

Resolved via #2590.

@ghost ghost locked as resolved and limited conversation to collaborators Sep 29, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

5 participants