selvaganesang commented on a change in pull request #1786: [TRAFODION-3260]
SSMP may wait 3 seconds before handling requests
URL: https://github.com/apache/trafodion/pull/1786#discussion_r253113311
##########
File path: core/sql/bin/ex_ssmp_main.cpp
##########
@@ -246,8 +247,12 @@ void runServer(Int32 argc, char **argv)
}
}
*/
- // wait for system messages only until ssmp starts receiving msgs.
- cc->wait(300);
+ // Wait for messages, but we need ssmp to wake up periodically to
+ // perform garbage collection.
+ short mask = XWAIT(LREQ | LDONE, ssmpGlobals->getStatsMergeTimeout());
+ if (mask & LREQ) {
+ cc->wait(0);
Review comment:
Yes. It looks like there is some problem with waitOnAll with a timeout value
specified. The suggested change can also show the same symptom of waiting by
SSMP, though it is not as severe as earlier. So, we can go for one of the
three options:
1) Merge this PR with no more changes.
2) A simple encapsulation to move XWAIT in ex_ssmp_main.cpp to the IPC
layer and return a value to deal with completion on either ControlConnection or
other client connections with wait(IpcImmediately) as it is done now in this PR.
3) Make sure waitOnAll works well when timeout value is specified giving us
a better encapsulation.
I will let author @zhenxingh to decide on these options. Hence I have also
approved this change.
----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
For queries about this service, please contact Infrastructure at:
[email protected]
With regards,
Apache Git Services