The Linux Kernel Mailing List
 help / color / mirror / Atom feed
From: Andrew Morton <akpm@linux-foundation.org>
To: Michael Noisternig <mnoist@cosy.sbg.ac.at>
Cc: linux-kernel@vger.kernel.org
Subject: Re: (more) epoll troubles
Date: Tue, 2 Sep 2008 22:57:03 -0700	[thread overview]
Message-ID: <20080902225703.efe29299.akpm@linux-foundation.org> (raw)
In-Reply-To: <48BA9EB9.3040701@cosy.sbg.ac.at>

On Sun, 31 Aug 2008 15:38:01 +0200 Michael Noisternig <mnoist@cosy.sbg.ac.at> wrote:

> Hello,
> 
> and sorry again if this is the wrong place to ask (again, please hint to 
> me to an appropriate place to ask in that case).
> 
> After experimenting with epoll edge-triggered mode I am clueless why on 
> a few occassions I seem to not get any input notification despite data 
> is available.
> 
> In detail: I have set up sockets with epoll events 
> EPOLLET|EPOLLRDHUP|EPOLLIN. When I get EPOLLIN for a socket, I read() as 
> long as I get what I asked for, i.e. whenever read() returns either 
> EAGAIN or less data than I asked for I take this as indication that I 
> must wait for another EPOLLIN notification. However, this does not seem 
> to work always.
> 
> Here is some log from my program:
> 
> 0x9e6b8a8: read not avail (1460/2048 read)
> i.e. tried to read 2048 bytes, got 1460 -> assume must wait for EPOLLIN 
> for more data to read
> (note that the fd is always in the epoll set with 
> EPOLLET|EPOLLRDHUP|EPOLLIN)
> 
> 0x9e6b8a8: read not avail (1460/2048 read)
> got EPOLLIN notification, read 1460 bytes again -> wait for another 
> notification
> 
> ...after a few minutes without any notification...
> 
> 0x9e6b8a8: GOT RDHUP (2001:0/80002001:0)
> i.e. got notification for EPOLLRDHUP|EPOLLIN (2001), was waiting for 
> EPOLLET|EPOLLRDHUP|EPOLLIN (80002001)
> 
> 0x9e6b8a8: read not avail (342/2048 read)
> then on trying to read we find data in the buffer (???)
> 
> 0x9e6b8a8: stored 16384 bytes
> this is the amount of data we expected to get /immediately/, i.e. 
> without a minutes delay and rdhup
> 
> Of course you might think that the other side sent the data only just 
> before closing its side, but it is unlikely since we expected to get the 
> 16384 bytes in one go (this is how that L7 protocol works), and I see 
> this odd behaviour of missing input notifications now and then.
> 
> Does anybody know/have an idea why I am missing EPOLLIN notifications?
> 

If you can put together a little test case which others can run then we
should be able to get this resolved super-quick.

Thanks.

  reply	other threads:[~2008-09-03  5:57 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-08-31 13:38 (more) epoll troubles Michael Noisternig
2008-09-03  5:57 ` Andrew Morton [this message]
     [not found] <fa.zt4K08zThcs3bS6QJSiWmdw4amQ@ifi.uio.no>
2008-09-01 17:31 ` Robert Hancock
2008-09-01 17:32   ` Robert Hancock
2008-09-01 18:29     ` Michael Noisternig
2008-09-01 18:46       ` Davide Libenzi

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080902225703.efe29299.akpm@linux-foundation.org \
    --to=akpm@linux-foundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mnoist@cosy.sbg.ac.at \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox