https://bz.apache.org/bugzilla/show_bug.cgi?id=60869

            Bug ID: 60869
           Summary: Workers locking up instead finishing during eg.
                    graceful reload
           Product: Apache httpd-2
           Version: 2.4.25
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P2
         Component: mod_http2
          Assignee: bugs@httpd.apache.org
          Reporter: b...@bszx.eu
  Target Milestone: ---

Created attachment 34829
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=34829&action=edit
server status

Tested on prefork mpm and event mpm.

How to reproduce:
- enable mod_http2
- start apache
$ ./apachectl start
- reload apache
$ ./apachectl graceful

After this all existing workers are locked up in finishing state like in
attached server status:

Srv     PID     Acc     M       CPU     SS      Req     Conn    Child   Slot   
Client  Protocol        VHost   Request
0-0     9684    0/0/0   G       0.00    52      0       0.0     0.00    0.00
1-0     9685    0/0/0   G       0.00    52      0       0.0     0.00    0.00
2-0     9686    0/3/3   G       0.00    26      0       0.0     0.00    0.00   
127.0.0.1       http/1.1        127.0.0.1:8081  GET /favicon.ico HTTP/1.1
3-0     9687    0/0/0   G       0.00    52      0       0.0     0.00    0.00
4-0     9688    0/0/0   G       0.00    52      0       0.0     0.00    0.00
5-0     9695    0/0/0   G       0.00    31      0       0.0     0.00    0.00
6-1     9701    0/0/0   W       0.00    0       0       0.0     0.00    0.00   
127.0.0.1       http/1.1        127.0.0.1:8081  GET /server-status HTTP/1.1


$ strace -f -p 9684
strace: Process 9684 attached with 2 threads
[pid  9690] futex(0x1208718, FUTEX_WAIT_PRIVATE, 0, NULL <unfinished ...>
[pid  9684] futex(0x1208714, FUTEX_WAIT_PRIVATE, 12, NULL

$ gdb -p 9684
(gdb) thread apply all bt

Thread 2 (Thread 0x7f05a9c93700 (LWP 9690)):
#0  0x00007f05ae69f9f6 in futex_wait_cancelable (private=<optimized out>,
expected=0, futex_word=0x1208718)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:88
#1  __pthread_cond_wait_common (abstime=0x0, mutex=0x12086a0, cond=0x12086f0)
at pthread_cond_wait.c:502
#2  __pthread_cond_wait (cond=0x12086f0, mutex=0x12086a0) at
pthread_cond_wait.c:655
#3  0x00007f05ab155ba1 in get_mplx_next (worker=0x1208790, ctx=0x12085a0,
ptask=0x7f05a9c92ea8, psticky=0x7f05a9c92eb4) at h2_workers.c:160
#4  0x00007f05ab155049 in execute (thread=0x12087d0, wctx=0x1208790) at
h2_worker.c:43
#5  0x00007f05ae699550 in start_thread (arg=0x7f05a9c93700) at
pthread_create.c:456
#6  0x00007f05ae1d49af in clone () at
../sysdeps/unix/sysv/linux/x86_64/clone.S:94
#7  0x0000000000000000 in ?? ()

Thread 1 (Thread 0x7f05af7af540 (LWP 9684)):
#0  0x00007f05ae69f539 in futex_wait (private=<optimized out>, expected=12,
futex_word=0x1208714)
    at ../sysdeps/unix/sysv/linux/futex-internal.h:61
#1  futex_wait_simple (private=<optimized out>, expected=12,
futex_word=0x1208714) at ../sysdeps/nptl/futex-internal.h:135
#2  __pthread_cond_destroy (cond=0x12086f0) at pthread_cond_destroy.c:54
#3  0x00007f05aead226e in run_cleanups (cref=<optimized out>) at
memory/unix/apr_pools.c:2352
#4  apr_pool_destroy (pool=0x1208528) at memory/unix/apr_pools.c:814
#5  0x00007f05aead2245 in apr_pool_destroy (pool=0x1204508) at
memory/unix/apr_pools.c:811
#6  0x00007f05aace3c89 in clean_child_exit (code=0) at prefork.c:227
#7  0x00007f05aace5052 in child_main (child_num_arg=0, child_bucket=0) at
prefork.c:744
#8  0x00007f05aace524e in make_child (s=0x118e3d0, slot=0, bucket=0) at
prefork.c:824
#9  0x00007f05aace52ed in startup_children (number_to_start=5) at prefork.c:843
#10 0x00007f05aace58bf in prefork_run (_pconf=0x1167138, plog=0x1194358,
s=0x118e3d0) at prefork.c:1010
#11 0x0000000000434033 in ap_run_mpm (pconf=0x1167138, plog=0x1194358,
s=0x118e3d0) at mpm_common.c:94
#12 0x000000000042b1b3 in main (argc=3, argv=0x7ffc5e108828) at main.c:783

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: bugs-unsubscr...@httpd.apache.org
For additional commands, e-mail: bugs-h...@httpd.apache.org

Reply via email to