changing system clock
"Geoffrey Hanson" <[email protected]> Fri, 5 May 2006 16:20:20 -0700
| Newsgroups | gmane.comp.corba.omniorb.devel |
|---|---|
| Message-ID | <[email protected]> |
We're currently using omniORB version 4.01 and are interoperating with Java Sun ORB. We've encountered a problem where if you change the system clock backwards, then all requests from a Java ORB client to a omniORB server are serialized within a single thread. I was wondering if anyone had encountered this before and knows of a solution? The Java ORB client only opens a single connection to the omniORB server. Under normal conditions, if a second request is received while the first is being processed, a new thread is created to service the second request. But in the case of changing the system clock backwards (when server is running), new threads are no longer created in this scenario. I tracked down some code in: orbcore/SocketCollection.cc::Select() which seems to be the culprit. When calculating a timeout value for the select() call, it calls SocketSetTimeOut() to calculate the difference between the current time and a pre-saved absolute timestamp. It only resets the timestamp when this timeout expires. I understand how to patch this individual case, but there are many other cases where the absolute time is retrieved and am wondering what other symptoms will result when changing the system clock. Any suggestions are appreciated. Thanks, Geoff --- Geoff Hanson Fabric7 Systems [email protected] 1300 Crittenden Lane, 650-210-0116 Suite 302 Mountain View, CA 94043