[omniORB] ORBscanGranularity == shutdown time?

Roloff, Craig A craig.a.roloff at boeing.com
Thu Feb 12 09:56:19 GMT 2004


On Wednesday 11 February, Duncan Grisby wrote:

> Sorry it's taken me so long to look into this. I'm afraid I was wrong
> to say that shutdown time was not affected by the scan granularity. I
> was forgetting that on Windows and HPUX, the recv() system call (and
> other related calls) is not interrupted when the underlying socket is
> closed. Therefore, omniORB uses a select() call with a timeout of the
> scan granularity instead.

Thanks for looking into this.  A few more questions if you would
be so kind:

1)  This is new to version 4.0.3.  Neither 2.8.0 nor 3.0.4
exhibited this behavior.  What changed?  In particular, is there
some way to revert to the old behavior?

2)  In my application, I'm simply calling shutdown prior to exit.
Communication has already completed. Is there some way to force
omniORB to shut down without waiting on the select?

3)  This is perhaps unrelated but...

As a test, I tried exiting my application without calling shutdown
(hoping to bypass the wait).  This resulted in a core.  gdb reported:

Program received signal SIGSEGV, Segmentation fault.
[Switching to thread 2 (system thread 20657)]
0x7d885b58 in omni::do_select ()
(gdb) bt
#0  0x7d885b58 in omni::do_select ()
#1  0x7d885dc4 in omni::SocketCollection::Select ()
#2  0x7d884220 in omni::tcpEndpoint::AcceptAndMonitor ()
Error accessing memory address 0x0: Invalid argument.

Thanks!
Craig




More information about the omniORB-list mailing list