DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUGĀ·
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=38403>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED ANDĀ·
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=38403

           Summary: Child-Thread uses 100%CPU usage, mod_proxy ?
           Product: Apache httpd-2
           Version: 2.2.0
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: mod_proxy
        AssignedTo: [email protected]
        ReportedBy: [EMAIL PROTECTED]


This bug is probably related to #36951, however the offered solution was for
2.1.8 and not merged into 2.2.0.

Setup: Apache 2.2.0 is used as a reverse proxy for accelerating an apache1.3+php
on the same host. we are using worker mdm and mod_proxy is configured to use a
pool. Apache is build from current source.

Problem: At least once a day 1 or 2 threads consume 100% of their cpu (dual+ht,
so system remains responsive). strace says that the process is waiting for the 
child

futex(0xb2b10bf8, FUTEX_WAIT, 1847, NULL <unfinished ...>

while the child (1847) is in a loop of: 

close(-1)                               = -1 EBADF (Bad file descriptor)

(the other thread did the same)

the worker-thread and its parent process remain up, even if all other worker
threads of this process have been shutdown and apache already uses other
processes to service requests.

ps -L -e -F
UID        PID  PPID   LWP  C NLWP    SZ  RSS PSR STIME TTY          TIME CMD
...
nobody    1839 19001  1839  0    3 693301 235192 3 Jan25 ?       00:00:00
/home/apache22/bin/httpd -k start
nobody    1839 19001  1847 99    3 693301 235192 1 Jan25 ?       1-03:37:44
/home/apache22/bin/httpd -k start
nobody    1839 19001  1928 99    3 693301 235192 2 Jan25 ?       1-03:37:54
/home/apache22/bin/httpd -k start
... (these are all threads of PID 1839)

I could not get a backtrace of the crazy thread, gdb hangs after this:

gdb httpd 1928
...
[Thread debugging using libthread_db enabled]
[New Thread -1209694528 (LWP 1839)]

the threads show up in extended server status:
Srv     PID     Acc     M       CPU     SS      Req     Conn    Child   Slot    
Client  VHost   Request
0-0     1839    8/32/6705       W       13.39   101250  0       19.5    0.14    
40.40   x.x.x.x frontservername GET
/proxied/url/...
0-0     1839    30/117/6898     R       13.59   101250  0       307.9   0.60    
42.39   ?       ?
...

they survive gracefull restarts and apache restart kills them with SIGKILL

I have the feeling that this bug is triggered by timeouts or partial responses
of the accelerated server. (We had database problems with the backend server, so
a lot of proxy requests failed, see error_log, however there was no error
message associated with the requested ressource, remote_addr or processids from
the extend status (probably because the threads did not yet get to log anything)

proxy: error reading status line from remote server 127.0.0.1
proxy: Error reading from remote server returned by
proxy: error reading status line from remote server (null)
(70007)The timeout specified has expired: proxy: prefetch request body failed to
127.0.0.1:8081 (127.0.0.1) from 

We log the x-forwarded-for header on the backend, and the ip from the server
status does not show up, so the request headers were never received by the
backend server.

-- 
Configure bugmail: http://issues.apache.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to