Ticket #63 (defect)
Opened 6 years ago
EAGAIN from sendto()
Status: new
| Reported by: | stevegt@terraluna.org | Assigned to: | stevegt |
|---|---|---|---|
| Priority: | normal | Milestone: | 4.2.8 |
| Component: | general | Version: | |
| Severity: | normal | Keywords: | |
| Cc: |
On Mon, Dec 19, 2005 at 07:49:16AM -0700, Jordan Curzon wrote: > Keeps crashing on me on the last line of the bcast method > in Cache.py. It throws a socket.error exception with the > EAGAIN error. I did some looking and other places in the > code ignore that error. I trapped the exception and > everything runs fine. > > Is that a bug or am I misunderstanding things. You're getting an EAGAIN from a UDP sendto(), right? Bizarre. That means that the operation would block (and I have the socket set for non-blocking). Not sure what would cause that in UDP. Without knowing what's causing this, I'm not sure whether the correct action is to trap and discard the exception, or to yield and retry later. Some ideas: - If you're using a nets file, check to make sure all of the IP addresses in there are valid and routable. Check your routing table as well... Add a debug() call to your patch to show the address that's failing. - Check to see if there's something seriously wrong with the IP stack on the machine -- running out of mbufs maybe? What else is the machine doing?
