You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
When running a VAX simulator with networking via tap from the latest SIMH on NetBSD 9.3, I get periodic _eth_reader errors that the read would block.
This appears to be from the code in the HAVE_TAP_NETWORK calling read(2) and not handling the case where it returns <0 with errno set to EAGAIN or EINTR. The proper thing to do in those cases would be to treat the read(2) as having received 0 bytes, and retrying the loop.
I've worked around this centrally by wrapping the part that increases the error count and calls _eth_error() to avoid doing so when errno is set to EAGAIN or EINTR.
The text was updated successfully, but these errors were encountered:
The code is a bit hard to read, but... does it set non-blocking mode on the file descriptor? If not, EAGAIN would not be expected. And why would EINTR be returned?
When running a VAX simulator with networking via tap from the latest SIMH on NetBSD 9.3, I get periodic
_eth_reader
errors that the read would block.This appears to be from the code in the
HAVE_TAP_NETWORK
callingread(2)
and not handling the case where it returns <0 witherrno
set toEAGAIN
orEINTR
. The proper thing to do in those cases would be to treat theread(2)
as having received 0 bytes, and retrying the loop.I've worked around this centrally by wrapping the part that increases the error count and calls
_eth_error()
to avoid doing so whenerrno
is set toEAGAIN
orEINTR
.The text was updated successfully, but these errors were encountered: