[omniORB] changing system clock

Duncan Grisby duncan at grisby.org
Wed May 17 14:57:46 BST 2006


On Tuesday 16 May, "Geoffrey Hanson" wrote:

> 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 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.

Yes. This is necessary for call timeouts specified as an absolute
deadline, but it's not required in the SocketCollection Select. The
simple solution is to check that the timeout in select is not longer
than the select interval. I've checked in a fix to do that, and attached
a patch here.

Cheers,

Duncan.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: select.patch
Type: text/x-c++
Size: 837 bytes
Desc: not available
Url : http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20060517/c6fc79f0/select.bin
-------------- next part --------------

-- 
 -- Duncan Grisby         --
  -- duncan at grisby.org     --
   -- http://www.grisby.org --


More information about the omniORB-list mailing list