Re: Apache suddenly stops serving requests, recv() returns -1/errno=EAGAIN forever

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dear all,

fortunately, our expert system admin could locate and solve the problem, I'm posting what I heard in case someone googles this thread:

So in our case, the random download stalls, where recv() on the socket connection would report -1/errno=EAGAIN for an hour without progress, where caused by a problem with state filtering in the iptables config, related to the local firewall. It required a new Linux kernel to fix, since then Apache is running happily...

CU,
Elmar


Tom Evans wrote:
On Wed, 2009-06-24 at 08:09 -0500, Elmar Krieger wrote:
Dear Apache users,

I'm forced to write yet another program that downloads HTTP files from
an
Apache server,
...
Naive question : why would you do that, when there are probably at least
10 existing libraries/utilities that already do that, and do it right ?

I mean that downloading a file from a webserver is not just a matter of
opening a socket and reading bytes from it. There are such things as
status codes, HTTP headers, encoding, transfer-encoding, etc..
Do you really want to re-invent the wheel ?
I did of course start with code from the web, but that was not reliable
enough. For example the download routines of Firefox and Safari are not
satisfactory, because they also hang forever occasionally, and don't
automatically restart the transfer with a new request. I need it 100%
fool-proof.

Anyway, could you point me to the most reliable public domain (not GNU
GPL) library you know, that compiles in Linux, Windows and MacOSX? Then I
can compare the code..

And any idea under which circumstances a recv() from a socket connection
to Apache can report -1/errno=EAGAIN for an hour without progress would
still be appreciated. It's a server side problem, because it happens from
clients all over the world ;-)

Thanks for your help,
Elmar



I can download all sorts of large files from apache, it truly Works For
Me, so this certainly sounds like a naive client app rather than a
server side bug.

Any reason why you aren't using curl/libcurl/wget/libfetch? When there
are BSD licensed wheels out there, don't design your own..

Eg: http://curl.haxx.se/ (MIT)
http://curl.haxx.se/libcurl/ (MIT)
http://www.freebsd.org/cgi/cvsweb.cgi/src/lib/libfetch/ (BSD)

Curl has a list of the FOSS http libraries:
http://curl.haxx.se/libcurl/competitors.html

HTH

Tom





---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
   "   from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx


---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
  "   from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx


[Index of Archives]     [Open SSH Users]     [Linux ACPI]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Security]     [Netfilter]     [Bugtraq]     [Squid]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux