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

Reply via email to