Improve expiration handling for client-persisted circuit state#64798
Conversation
85af042 to
2bb0c30
Compare
Improve expiration handling for client-persisted circuit stateIssueWhen client tries to resume the circuit after the client-held serialized state expires, the operation fails without proper handling. Cause
Solution variantsWhile serializing the state in Even if we do this, we still should explicitly deal with the possibility of expired client-side state when resuming the circuit. Some locations where we can tackle the issue: 1. When trying to resume the circuit in the clientWhen client requests pausing the circuit, we can add expiration information along with the serialized state that we return from the server. When trying to resume, client can cooperatively check whether its persisted state is still valid and simply not pass it to the server if it is expired, or inform the user somehow that this is the case. (We don't care about malicious clients, the resume operation will still fail as it does now.) 2. When recieving the client-side state on the server in
|
2bb0c30 to
601d324
Compare
When client tries to resume the circuit after the client-held serialized state expires, the operation fails without proper handling. (See comment for details.)
Description
UpdateRootComponentsearlier toResumeCircuitto allow checking whether the data is valid and not expired. The operation now explicitly fails if the data is not valid (meaning it could not be used later anyway).ResumeCircuitandUpdateRootComponents.Fixes #64607