[omniORB] Windows timeout during ORB shutdown

Duncan Grisby duncan at grisby.org
Thu Jan 22 09:27:18 UTC 2026


On Tue, 2026-01-20 at 09:48 +0000, Thomas Ives via omniORB-list wrote:

> To speed up testing of Tango, I am trying to shutdown and restart 
> "Tango" (and thus the ORB) in a single process.  I believe I have got
> this (at least mostly) working on Linux, however, on Windows I run
> into an assertion failure inside omniORB when I go to restart the ORB
> after it has been destroyed.  The assertion failure reports that the 
> `giopServer` singleton is in `ZOMBIE` state:
> 
>      omniORB: (11) 2026-01-19 12:02:41.819000: Assertion failed. This
> indicates a bug in the application
>      using omniORB, or maybe in omniORB itself.
>        file: giopServer.cc
>        line: 154
>        info: pd_state != ZOMBIE

It is going to be quite hard to do anything about this without a simple
program that reproduces it.

As you say, Windows makes life much harder than Linux (and Unix
platforms) because shutting down a socket does not wake up threads
waiting on it, hence all the issues with timeouts.

It may well be that as you say, the omniORB threads are only just
starting up at the time you tell it to shut down, and that may be
confusing the state.

If you can't come up with a simple program to reproduce it, it might
help to get a complete trace from omniORB at traceLevel 25 that shows
everything, from startup to the subsequent failed start. It would also
be helpful if you could modify your test code so that it outputs
messages to the omniORB log stream, so they are clearly identified

e.g. add lines like

omniORB::logs(1, "*** start of test");
...
omniORB::logs(1, "*** about to call destroy");
orb->destroy();
...
omniORB::logs(1, "*** back from destroy");


and so on. That will at least make the sequence of events more clear.

Duncan.


-- 
Duncan Grisby <duncan at grisby.org>



More information about the omniORB-list mailing list