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

Clear RequestContext when spawning connections #5974

Merged
merged 1 commit into from
Sep 26, 2019

Conversation

ReubenBond
Copy link
Member

This was causing reliability issues because new connections could occasionally be started due to a Ping message, which has a "Ping" RequestContext header set. The connection would then capture that RequestContext and would import it into messages created by the SiloConnection itself. These messages would then be treated as though they were Ping messages by the remote silo.

Examples of such messages are:

  • Rejections for messages destined to an old silo generation
  • Directory lookups - this is trickier, it relies on an optimization whereby IncomingMessageAgent.ReceiveMessage is called synchronously from the connection

This would result in timeouts (which can prevent a silo from starting), active silos being declared dead, obscure exceptions such as Unrecoverable Rejection (info: System.InvalidOperationException: Expected result of type Orleans.GrainDirectory.AddressesAndTag but encountered a null value.), and NullReferenceExceptions from ActivationDirectory.FindTarget

@ReubenBond ReubenBond merged commit cbb1120 into dotnet:master Sep 26, 2019
@ReubenBond
Copy link
Member Author

Merging myself after approval - we've already tested this in VSO

@ReubenBond ReubenBond deleted the fix/connection-pings branch September 26, 2019 00:37
@github-actions github-actions bot locked and limited conversation to collaborators Dec 5, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants