-
Notifications
You must be signed in to change notification settings - Fork 3.9k
Open
Milestone
Description
When receiving a GOAWAY (transportShutdown() callback), InternalSubChannel unconditionally transitions to IDLE. However, the spec says
READYtransitions toTRANSIENT_FAILUREon "any failure encountered while expecting successful communication on established channel."- "Channels that receive a GOAWAY when there are no active or pending RPCs should also switch to IDLE".
InternalSubchannel needs to look at the status passed to transportShutdown():
- If it's not OK, according to Rule 1 above, the new state should be
TRANSIENT_FAILURE - If it's OK, then it's a GOAWAY.
- If the in-use state of the subchannel is
false, according to Rule 2 above, the new state should beIDLE. - Otherwise, the spec doesn't say what the new state should be. Apparently it cannot stay in
READY. It cannot go toTRANSIENT_FAILUREeither because it's a GOAWAY, not an error. This part of the spec should be revisited.
- If the in-use state of the subchannel is
Metadata
Metadata
Assignees
Labels
No labels