[omniORB] omniORB4 shutdown hangs with wrong ssl cert

Norrie Quinn norrie.quinn@tumbleweed.com
Thu Aug 8 05:19:00 2002


When using the SSL transport with a mismatched cert and ca cert (i.e. a cert
that was signed by another ca), we have a problem that prevents a clean
omniORB4 shutdown.

With a matched cert and ca cert:
- giopRendezvouser::terminate() calls Poke() on itself during shutdown
- sslEndpoint::AcceptAndMonitor() returns a valid new giopConnection
- giopRendezvouser detects that the server is no longer ACTIVE and
terminates.

With a mis-matched cert and ca cert:
- giopRendezvouser::terminate() calls Poke() on itself during shutdown
- the Poke fails but ignores the SSL error
- sslEndpoint::AcceptAndMonitor() detects an SSL error but keeps looping
- the giopRendezvouser doesn't terminate and so shutdown is hung

I was thinking of a fix that did not call Poke during shutdown.  The
terminate() call could set a flag in the giopRendezvouser which could be
checked in the select loop.

Does anyone have a simpler fix or see a problem with that approach?

Thanks
Norrie