Bruce Visscher
2009-03-28 02:15:14 UTC
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
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