httpd-bugs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From bugzi...@apache.org
Subject DO NOT REPLY [Bug 37026] New: - Child process enters infinite loop
Date Tue, 11 Oct 2005 18:17:58 GMT
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=37026>.
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=37026

           Summary: Child process enters infinite loop
           Product: Apache httpd-2.0
           Version: 2.0.54
          Platform: Sun
        OS/Version: Solaris
            Status: NEW
          Severity: critical
          Priority: P1
         Component: worker
        AssignedTo: bugs@httpd.apache.org
        ReportedBy: asmorgrav@yahoo.no


Under high load, an Apache reverse proxy eventually ends up having one or more
children using all the CPU they can get

I have noticed http://issues.eu.apache.org/bugzilla/show_bug.cgi?id=36324, but
the problem does not seem to be the same, i.e. the stack trace is very different.

This problem is pretty easy to reproduce by applying load on the server in our
benchmark environment. Unfortunately it also occurs in production.

The problem was also observed with Apache 2.0.49. We do use one 3rd party module
(Siteminder WebAgent 5QMR7). The problem also occurs with the old Siteminder
WebAgent architecture (pre-5QMR6) so I somewhat assume that it may not be
related to that module.

When the problem occurs, all the server-status of the slots of the process gone
ballistic report:
2-0 13292 0/29/113 R  3.59 33 1 0.0 0.25 0.99  ? ? ..reading..  
2-0 13292 0/14/93 R  3.49 34 506 0.0 0.14 0.82  ? ? ..reading..  
2-0 13292 0/5/88 R  3.00 39 129 0.0 0.06 0.49  ? ? ..reading..  

Output from truss shows:
truss -uall -f -p 13292
13292:  poll(0xFE3FBE10, 0, 1000)                       = 0
13292:  poll(0xF737BE38, 0, 1000)                       = 0
13292:  poll(0xFE3FBE10, 0, 1000)                       = 0
13292:  poll(0xF737BE38, 0, 1000)                       = 0
...

And the stack:
(gdb)  bt full
#0  0xfee9f358 in _lwp_wait () from /usr/lib/libc.so.1
No symbol table info available.
#1  0xfed4ca88 in lwp_wait () from /usr/lib/lwp/libthread.so.1
No symbol table info available.
#2  0xfed48370 in _thrp_join () from /usr/lib/lwp/libthread.so.1
No symbol table info available.
#3  0xff0e4e1c in apr_thread_join (retval=0xffbef6fc, thd=0x1fc3e8)
    at thread.c:181
        stat = 3
        thread_stat = (apr_status_t *) 0x7a120
#4  0x00050bfc in join_workers (listener=0x0, threads=0x1229b0)
    at worker.c:1047
        i = 0
        rv = -4262148
        thread_rv = 0
#5  0x00050ea0 in child_main (child_num_arg=0) at worker.c:1229
        threads = (apr_thread_t **) 0x1229b0
        rv = 1
        ts = (thread_starter *) 0x1fbc60
        thread_attr = (apr_threadattr_t *) 0x1fbc70
        start_thread_id = (apr_thread_t *) 0x1fbc80
#6  0x00051188 in make_child (s=0x9d400, slot=0) at worker.c:1283
        pid = 0
#7  0x000514c4 in perform_idle_server_maintenance () at worker.c:1460
        i = 1
        j = 0
        idle_thread_count = 4
        ps = (process_score *) 0x9dc00
        free_length = 1
        totally_free_length = 1
        free_slots = {0, 0, 1, 0, -15830540, 253, -22540096, -22544352, 0, 
  -22544272, 6, 646144, 59, 1, 6, 1, -4261524, -4261528, -4261520, 685176, 
  634880, 1, -4261632, 333240, 8192, 6, -4261632, -15744364, -4261536, 5, 6, 6}
        last_non_dead = 5
        total_non_dead = 6
#8  0x0005164c in server_main_loop (remaining_children_to_start=0)
    at worker.c:1509
        child_slot = 0
        exitwhy = APR_PROC_EXIT
        status = 0
        processed_status = 0
        pid = {pid = -1, in = 0xffbef9ec, out = 0x6, err = 0x0}
        i = 100
#9  0x0005197c in ap_mpm_run (_pconf=0x9c800, plog=0xe1560, s=0x0)
    at worker.c:1658
        remaining_children_to_start = 0
        rv = 0
#10 0x0005849c in main (argc=9, argv=0xffbefafc) at main.c:618
        c = 68 'D'
        configtestonly = 633856
        confname = 0xffbefc2a "/centuri/axe1/apache/httpd2/apache8/conf/httpd.conf"
        def_server_root = 0x833a8 "/u01/opt/apache2"
        temp_error_log = 0x82c00 "ersion: %s\n"
        process = (process_rec *) 0xa54f0
        server_conf = (server_rec *) 0xac460
        pglobal = (apr_pool_t *) 0x83400
        pconf = (apr_pool_t *) 0xa7478
        plog = (apr_pool_t *) 0xe1560
        ptemp = (apr_pool_t *) 0xe5570
        pcommands = (apr_pool_t *) 0xa9480
        opt = (apr_getopt_t *) 0xa9518
        rv = 641024
        mod = (module **) 0xac460
        optarg = 0xffbefc71 "TEST"
        signal_server = (apr_OFN_ap_signal_server_t *) 0xa7
(gdb)

-- 
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: bugs-unsubscribe@httpd.apache.org
For additional commands, e-mail: bugs-help@httpd.apache.org


Mime
View raw message