[omniORB] OpenVMS problem

Bruce Visscher bruce.visscher at gmail.com
Fri Mar 27 17:14:57 GMT 2009


Recently I have discovered a problem on the OpenVMS platform that only
occurs in omniORB 4(12).  It did not occur in omniORB 2 or 3.

Occasionally, a server will display the following:

omniORB: Error return from select(). errno = 65535
omniORB: Unrecoverable error for this endpoint: giop:tcp:xx.xx.xx.xx:xxxxx,
it will no longer be serviced.

In order to get more information, I have modified the code in
SocketCollection.cc to utilize ::perror on the OpenVMS platform so now I can
see:

Error return from select(): non-translatable vms error code: 0x13C
%system-f-ivchan, invalid i/o channel
omniORB: Unrecoverable error for this endpoint: giop:tcp:xx.xx.xx.xx:xxxxx,
it will no longer be serviced.

This looks like a bug in TCPIP for OpenVMS to me but I can't really provie
it so I am trying to find a work around for it.  I have discovered that If I
configure omniORB to use poll rather than select it have a longer mean time
between failures.  It also helps to set -ORBconnectionWatchPeriod to (e.g.)
500000 (.5 sec rather than 50ms).

I am wondering what would happen if I turn off the timeout in select
altogether.  (Iirc, you do that by passing a null in place of the timeout*)
Would this just make it more difficult to have a graceful shutdown?  (The
way around that would be to issue a shutdown on the listening socket from a
different thread it seems to me.)  Is there a way to do this already?

Has anyone ever had any problems with this on other platforms?

Thanks for any help,

Bruce Visscher
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.omniorb-support.com/pipermail/omniorb-list/attachments/20090327/771b5c85/attachment.htm


More information about the omniORB-list mailing list