On 2013-11-26 22:01, Rainer Jung wrote: > On 26.11.2013 15:58, olli hauer wrote: >> On 2013-11-25 23:25, Jeff Trawick wrote: > >>> See if this brings any happiness: >>> >>> Index: network_io/unix/sockets.c >>> =================================================================== >>> --- network_io/unix/sockets.c (revision 1545394) >>> +++ network_io/unix/sockets.c (working copy) >>> @@ -273,7 +273,7 @@ >>> #endif /* TCP_NODELAY_INHERITED */ >>> #if APR_O_NONBLOCK_INHERITED >>> if (apr_is_option_set(sock, APR_SO_NONBLOCK) == 1) { >>> - apr_set_option(*new, APR_SO_NONBLOCK, 1); >>> + /* apr_set_option(*new, APR_SO_NONBLOCK, 1); */ >>> } >>> #endif /* APR_O_NONBLOCK_INHERITED */ >> >> >> I can confirm after removing the line in apr-1.5.0 apache24 no longer hangs. >> (tested with apache-2.4.6 / 2.4.7) >> >> I seen now why this is triggered by comparing apr.h after `./configure', >> >>> grep APR_O_NONBLOCK_INHERITED work/apr-1.4.8/include/apr.h >> ./work/apr-1.4.8/include/apr.h:#define APR_O_NONBLOCK_INHERITED 0 >> >>> grep APR_O_NONBLOCK_INHERITED work/apr-1.5.0/include/apr.h >> work/apr-1.5.0/include/apr.h:#define APR_O_NONBLOCK_INHERITED 1 >> >> >>> There are some APR 1.5 autoconf changes to consider at >>> http://svn.apache.org/viewvc/apr/apr/branches/1.5.x/build/apr_network.m4?view=log >> >> OK, backing out the changes from r1502805 seems to do the trick on 10b3 >> http://svn.apache.org/viewvc?view=revision&revision=1502805 >> >>> grep APR_O_NONBLOCK_INHERITED work/apr-1.5.0/include/apr.h >> work/apr-1.5.0/include/apr.h:#define APR_O_NONBLOCK_INHERITED 0 > > But acking out that change simply breaks the configure test on any > platform, because the resulting detection program no longer compiles. > > So the real culprit, is that the detection isn't doing the right thing. > > The test was changed before the compilation fix in the following revision: > > http://svn.apache.org/viewvc/apr/apr/branches/1.5.x/build/apr_network.m4?r1=887002&r2=1449569&pathrev=1502805&diff_format=h > > That was due to the fact that I saw the test providing unreliable > results on a busy machine. > > So the question to me is: is the O_NONBLOCK setting inherited from a > listening socket on FreeBSD 10 - that's what the test tries to detect - > and how can we fix this feature test? > > Or: is the test correct, but it previously failed for systems, where the > Apache or APR code does not do the right thing if the test would have > succeeded. >
Good questions ... Apache is running fine even with "APR_O_NONBLOCK_INHERITED 1" in apr.h, except - V4 mapping is enabled and in httpd.conf a Listen directive without IP address e.g. "Listen 80" is given and then only if requested from a remote host. ( a simple echo "GET /" | nc $lo0-address 80 is working ) -- Regards, olli