Re: EAGAIN mystery on accept()
From: Sony Antony (sonyantony_at_hotmail.com)
Date: 08/28/04
- Next message: Jonathan Adams: "Re: dtrace - how many arguments do the probes have"
- Previous message: Brendan Gregg: "Re: dtrace - how many arguments do the probes have"
- In reply to: Michael Fuhr: "Re: EAGAIN mystery on accept()"
- Next in thread: Richard L. Hamilton: "Re: EAGAIN mystery on accept()"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Date: Sat, 28 Aug 2004 00:06:22 -0400
Thanks a real lot Michael for reading my mail. My comments below
> > fd=31 ev=POLLRDNORM|POLLRDBAND rev=0
> > fd=32 ev=POLLRDNORM|POLLRDBAND rev=0
> > accept(17, 0xFCD01970, 0xFCD0198C, 1) Err#11 EAGAIN
>
> Has there been a fork()?
No.
Could another copy of the process be
> accepting the connection so there are no pending connections by the
> time this process calls accept()?
No, lsof showed this to be the only process with a socket on this port
number.
I was able to duplicate this
> error by setting up such a scenario.
Thank you very much again, for spending time on this. I know this must have
taken considerable time.
>
> Is it possible that file descriptor 17 isn't a listening socket at
> all, but rather a connected socket that has data ready for reading?
I dont think so. I could not reproduce the problem. And I started truss ing
the process only when the problem was reported. So I m not sure of the
"history" of the process.
> Is it possible that the code should be calling recv() or one of its
> friends instead of accept()?
>
> In an earlier post you said that tcpdump showed no incoming packets.
> What tcpdump options and arguments are you using?
I used "port 32778". I also used -i hme and -i 2_nd_interface
You were right. This machine had 2 interfaces. I did tcpdump on both of them
Are you sure
> you're sniffing the right port?
I did a pfiles on the process in order to get the port number associated
with file descriptor 17. I used this port on tcpdump.
Could packets be arriving on an
> interface that you're not sniffing, in particular the loopback
> interface?
As some more background : The above poll()/accept() combination was
happening in a fast loop.
And the product involved was iona's Orbix2000.
What is most surprising is that the exact same trouble happened on 4 of our
orbix installation exactly at the same time.
I think something happened, that triggered an iona bug.
But from an OS point of view I could not define the nature of the bug, as
there is no reason for the accept() to give EAGAIN when the poll() has
reported RDNORM
Thanks again, for thinking about my problem
--sony
- Next message: Jonathan Adams: "Re: dtrace - how many arguments do the probes have"
- Previous message: Brendan Gregg: "Re: dtrace - how many arguments do the probes have"
- In reply to: Michael Fuhr: "Re: EAGAIN mystery on accept()"
- Next in thread: Richard L. Hamilton: "Re: EAGAIN mystery on accept()"
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Relevant Pages
|