-
Notifications
You must be signed in to change notification settings - Fork 593
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
Fix IceGrid Glacier2 session managers to keep sessions alive #2756
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good.
cpp/src/IceGrid/SessionI.h
Outdated
@@ -73,6 +73,8 @@ class SessionI : public BaseSessionI, public Session | |||
|
|||
Ice::ObjectPrx _register(const SessionServantManagerPtr&, const Ice::ConnectionPtr&); | |||
|
|||
void ice_ping(const Ice::Current&) const; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I would add virtual for consistency. "virtual" stands for override.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not clear why this is needed. Keep alive was deprecated in favor of ACM heartbeats and afaict this PR has nothing to do with Glacier2 session managers.
IceGrid implements two Glacier2 session managers documented in https://doc.zeroc.com/ice/latest/ice-services/icegrid/glacier2-integration-with-icegrid#Glacier2IntegrationwithIceGrid-ResourceAllocationusingGlacier2andIceGrid Glacier2 router, send ice_ping messages to sessions to ensure they are keep alive, this is done from the Heartbeat callback ice/cpp/src/Glacier2/SessionRouterI.cpp Line 431 in 5efb9f4
ice/cpp/src/Glacier2/SessionRouterI.cpp Lines 908 to 912 in 5efb9f4
This doesn't work for Glacier2 sessions are added to IceGrid reaper without a connection, which means there is no ACM callback added to them. ice/cpp/src/IceGrid/SessionI.cpp Line 340 in 5efb9f4
|
This PR fix the Glacier2 session managers implemented in IceGrid to correctly keep sessions alive.