[Infrastructures] ISconf: Cache.py - bcast method

Steve Traugott stevegt@TerraLuna.Org
Mon, 19 Dec 2005 13:28:10 -0800


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?

Anyone else have any ideas for what might cause a UDP
sendto() to block?

I've created bug #63 to track this: http://trac.t7a.org/isconf/ticket/63

Steve

-- 
Stephen G. Traugott  (KG6HDQ)
UNIX/Linux Infrastructure Architect, TerraLuna LLC
stevegt@TerraLuna.Org 
http://www.stevegt.com -- http://Infrastructures.Org