On 11/26/2010 08:11 PM, Alexey Ermakov wrote: > Our application sometimes crashes with nbytes != -1 > (tcp_socket.cpp:221) assertion (on Debian and Centos). > It seems to happen when a VPN connection (set up with racoon) drops > and reconnects, but, curiously, it doesn't happen each time (mostly > just once a day or so). We send 0MQ packets over this VPN, so this > probably happens when the interface disappears in the middle of > recv(). errno is set to EINVAL when this crash happens, so maybe it > should be added to the second set of flags (peer crashed)? Or are > there some issues with it that could cause more trouble?
Currently, 0MQ asserts in case of EINVAL because according to POSIX EINVAL seems to indicate a bug in 0MQ rather than an external problem such as VPN reconnection: [EINVAL] The MSG_OOB flag is set and no out-of-band data is available. Rasing EINVAL if all the parameters are OK, just because of disconnection seems to be a bug in VPN... it can be solved by allowing for EINVAL as a valid error from recv in 0MQ, however, it would be preferable to fix the original bug in VPN. Martin _______________________________________________ zeromq-dev mailing list zeromq-dev@lists.zeromq.org http://lists.zeromq.org/mailman/listinfo/zeromq-dev