Bug 1206 - TAO_EC_UDP_Receiver handler removed after socket read error
Summary: TAO_EC_UDP_Receiver handler removed after socket read error
Status: ASSIGNED
Alias: None
Product: TAO
Classification: Unclassified
Component: Real-Time Event Service (show other bugs)
Version: 1.1.21
Hardware: All All
: P3 normal
Assignee: DOC Center Support List (internal)
URL:
Depends on:
Blocks:
 
Reported: 2002-05-17 12:26 CDT by Keith Snively
Modified: 2003-08-18 05:20 CDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Keith Snively 2002-05-17 12:26:36 CDT
In TAO_ECG_UDP_Receiver::handle_input, if an error is returned, -1,from call to recv() on the 
dgram socket then the handle_input routine returns -1.  This causes the reactor to remove the 
handler for that socket.  Additionally, no error messages are printed or otherwise indicated to 
the process.  This causes the application to suddenly and silently go def on the multicast event 
channel, at least for events originating from other, federated event channels.  This occurs in 2 
points in the routine, 1 for reading the header and the other at reading the entire datagram.  In our 
case, removal of the handle effectively ends participation in the simulation (RTI).  

This 
behavior should be user configurable.  The arriving packet may contain a checksum error, which on 
some OS's returns -1 and sets errno to EAGAIN (EWOULDBLOCK).  Other OS's handle return 0 on this 
error which leads to platform specific behavior for the EC UDP gateway.  In the case of returning -1 
from this routine, use of perror would be preferable to at least see that some error had occurred, 
perhaps again being configurable.
Comment 1 Carlos O'Ryan 2002-05-28 12:49:52 CDT
Re-assign to tao-support, I personally won't have any time to work on it.
Comment 2 Nanbor Wang 2002-06-09 12:08:01 CDT
Accepting for tao-support
Comment 3 Johnny Willemsen 2003-08-18 05:20:47 CDT
FYI, in the latest version of the code now an error is printed.