Does not work (with custom module) because the next call to reqtimeout_filter() happens *during* the keep-alive state: #0 reqtimeout_after_body (r=0x7fff94002970) at mod_reqtimeout.c:443 cfg = 0x7fff94003d78 ccfg = 0x7ffff5b09658 #1 0x00007ffff7f92bbd in ap_run_log_transaction (r=0x7fff94002970) at protocol.c:1788 pHook = 0x7ffff83c9790 n = 1 rv = 0 #2 0x00007ffff7fa5170 in eor_bucket_cleanup (data=0x7fff94000c48) at eor_bucket.c:35 b = 0x7fff94000c48 r = 0x7fff94002970 #3 0x00007ffff743439a in run_cleanups (cref=0x7fff94002968) at memory/unix/apr_pools.c:2352 c = 0x7fff9400ae10 #4 0x00007ffff7433206 in apr_pool_destroy (pool=0x7fff940028f8) at memory/unix/apr_pools.c:804 active = 0x7ffff7f8afe7 allocator = 0x7fff9bb84a80 #5 0x00007ffff7fa52ce in eor_bucket_destroy (data=0x7fff94002970) at eor_bucket.c:90 r = 0x7fff94002970 #6 0x00007ffff7fa6d10 in remove_empty_buckets (bb=0x7fffe80d0fc8) at core_filters.c:722 bucket = 0x7fff94000c48 #7 0x00007ffff7fa67a2 in setaside_remaining_output (f=0x7fffe80d0d98, ctx=0x7fffe80d0f28, bb=0x7fffe80d0fc8, c=0x7fffe80d0a18) at core_filters.c:584 No locals. #8 0x00007ffff7fa676a in ap_core_output_filter (f=0x7fffe80d0d98, new_bb=0x7fffe80d0fc8) at core_filters.c:568 c = 0x7fffe80d0a18 net = 0x7fffe80d0d50 ctx = 0x7fffe80d0f28 bb = 0x7fffe80d0fc8 bucket = 0x7fffe80d0fd0 next = 0x7fffe80d0fd0 flush_upto = 0x0 bytes_in_brigade = 0 non_file_bytes_in_brigade = 0 eor_buckets_in_brigade = 1 morphing_bucket_in_brigade = 0 rv = 32767 #9 0x00007ffff7f8afe7 in ap_pass_brigade (next=0x7fffe80d0d98, bb=0x7fffe80d0fc8) at util_filter.c:590 e = 0x7fff94000c48 #10 0x00007ffff7fd5923 in ap_process_request_after_handler (r=0x7fff94002970) at http_request.c:256 bb = 0x7fffe80d0fc8 b = 0x7fff94000c48 c = 0x7fffe80d0a18 #11 0x00007ffff7fd6176 in ap_process_async_request (r=0x7fff94002970) at http_request.c:353 c = 0x7fffe80d0a18 access_status = 0 #12 0x00007ffff7fd61a1 in ap_process_request (r=0x7fff94002970) at http_request.c:363 bb = 0x7fff94002970 b = 0x400000000 c = 0x7fffe80d0a18 rv = 32767 #13 0x00007ffff7fd1cb3 in ap_process_http_sync_connection (c=0x7fffe80d0a18) at http_core.c:190 r = 0x7fff94002970 cs = 0x0 csd = 0x0 mpm_state = 0 #14 0x00007ffff7fd1ddd in ap_process_http_connection (c=0x7fffe80d0a18) at http_core.c:231 No locals. #15 0x00007ffff7fbb74f in ap_run_process_connection (c=0x7fffe80d0a18) at connection.c:41 pHook = 0x7ffff83c9638 n = 1 rv = -1 #16 0x00007ffff7fbbc7a in ap_process_connection (c=0x7fffe80d0a18, csd=0x7fffe80d0800) at connection.c:203 rc = -2 #17 0x00007ffff42856b4 in process_socket (thd=0x7fffe8073408, p=0x7fffe80d0788, sock=0x7fffe80d0800, my_child_num=0, my_thread_num=127, bucket_alloc=0x7fff940008e8) at worker.c:619 current_conn = 0x7fffe80d0a18 conn_id = 127 sbh = 0x7fffe80d0a10 #18 0x00007ffff4286676 in worker_thread (thd=0x7fffe8073408, dummy=0x7fffe8000a00) at worker.c:978 ti = 0x7fffe8000a00 process_slot = 0 thread_slot = 127 csd = 0x7fffe80d0800 bucket_alloc = 0x7fff940008e8 last_ptrans = 0x0 ptrans = 0x7fffe80d0788 rv = 0 is_idle = 0 #19 0x00007ffff74427fa in dummy_worker (opaque=0x7fffe8073408) at threadproc/unix/thread.c:142 thread = 0x7fffe8073408 #20 0x00007ffff6dbc9d1 in start_thread () from /lib64/libpthread.so.0 No symbol table info available. #21 0x00007ffff69058fd in clone () from /lib64/libc.so.6 No symbol table info available. Works (default handler) because the next call to reqtimeout_filter() happens *before* the keep-alive state: #0 reqtimeout_after_body (r=0x7fff8c002970) at mod_reqtimeout.c:443 cfg = 0x7a10 ccfg = 0x7ffff5b09658 #1 0x00007ffff7f92bbd in ap_run_log_transaction (r=0x7fff8c002970) at protocol.c:1788 pHook = 0x7ffff83c9790 n = 1 rv = 0 #2 0x00007ffff7fa5170 in eor_bucket_cleanup (data=0x7fff8c000e28) at eor_bucket.c:35 b = 0x7fff8c000e28 r = 0x7fff8c002970 #3 0x00007ffff743439a in run_cleanups (cref=0x7fff8c002968) at memory/unix/apr_pools.c:2352 c = 0x7fff8c007018 #4 0x00007ffff7433206 in apr_pool_destroy (pool=0x7fff8c0028f8) at memory/unix/apr_pools.c:804 active = 0x7fffe80d28e0 allocator = 0x7fff9c585a20 #5 0x00007ffff7fa52ce in eor_bucket_destroy (data=0x7fff8c002970) at eor_bucket.c:90 r = 0x7fff8c002970 #6 0x00007ffff7fa6d10 in remove_empty_buckets (bb=0x7fffe80d30c8) at core_filters.c:722 bucket = 0x7fff8c000e28 #7 0x00007ffff7fa6ca9 in send_brigade_nonblocking (s=0x7fffe80d28e0, bb=0x7fffe80d30c8, bytes_written=0x7fffe80d2fc0, c=0x7fffe80d2af8) at core_filters.c:711 bucket = 0x7fffe80d30d0 next = 0x7fffe80d30d0 rv = 0 vec = {{iov_base = 0x7fff8c00a958, iov_len = 216}, {iov_base = 0x7fff8c008948, iov_len = 247}, { iov_base = 0x7fff9c585a80, iov_len = 140735542201416}, {iov_base = 0x7fff8c00c948, iov_len = 17289586712112670817}, {iov_base = 0x7fff9c585ba0, iov_len = 140737353833220}, { iov_base = 0x7fffe80d2af8, iov_len = 0}, {iov_base = 0x0, iov_len = 140737354042736}, { iov_base = 0x7fff9c585ad0, iov_len = 140737086565968}, {iov_base = 0x7fff9c585b50, iov_len = 140737354042736}, {iov_base = 0x7fffe80d2af8, iov_len = 55834574848}, {iov_base = 0x20f00000000, iov_len = 140737354042592}, {iov_base = 0x3000000030, iov_len = 140735816424384}, { iov_base = 0x7fff9c585af0, iov_len = 17289586712112670817}, {iov_base = 0xffffffffffffffff, iov_len = 140737086564416}, {iov_base = 0x7fffe80d30a8, iov_len = 0}, {iov_base = 0x7fff9c585b50, iov_len = 140737086566048}} nvec = 2 #8 0x00007ffff7fa6da8 in send_brigade_blocking (s=0x7fffe80d28e0, bb=0x7fffe80d30c8, bytes_written=0x7fffe80d2fc0, c=0x7fffe80d2af8) at core_filters.c:735 rv = 0 #9 0x00007ffff7fa640b in ap_core_output_filter (f=0x7fffe80d2e78, new_bb=0x7fffe80d30c8) at core_filters.c:544 c = 0x7fffe80d2af8 net = 0x7fffe80d2e30 ctx = 0x7fffe80d2fa8 bb = 0x7fffe80d30c8 bucket = 0x7fffe80d30d0 next = 0x7fffe80d30d0 flush_upto = 0x7fffe80d30d0 bytes_in_brigade = 0 non_file_bytes_in_brigade = 0 eor_buckets_in_brigade = 0 morphing_bucket_in_brigade = 0 rv = 32767 #10 0x00007ffff7f8afe7 in ap_pass_brigade (next=0x7fffe80d2e78, bb=0x7fffe80d30c8) at util_filter.c:590 e = 0x7fff8c000a68 #11 0x00007ffff7fd624e in ap_process_request (r=0x7fff8c002970) at http_request.c:369 bb = 0x7fffe80d30c8 b = 0x7fff8c000a68 c = 0x7fffe80d2af8 rv = 32767 #12 0x00007ffff7fd1cb3 in ap_process_http_sync_connection (c=0x7fffe80d2af8) at http_core.c:190 r = 0x7fff8c002970 cs = 0x0 csd = 0x0 mpm_state = 0 #13 0x00007ffff7fd1ddd in ap_process_http_connection (c=0x7fffe80d2af8) at http_core.c:231 No locals. #14 0x00007ffff7fbb74f in ap_run_process_connection (c=0x7fffe80d2af8) at connection.c:41 pHook = 0x7ffff83c9638 n = 1 rv = -1 #15 0x00007ffff7fbbc7a in ap_process_connection (c=0x7fffe80d2af8, csd=0x7fffe80d28e0) at connection.c:203 rc = -2 #16 0x00007ffff42856b4 in process_socket (thd=0x7fffe80733d8, p=0x7fffe80d2868, sock=0x7fffe80d28e0, my_child_num=0, my_thread_num=126, bucket_alloc=0x7fff8c0008e8) at worker.c:619 current_conn = 0x7fffe80d2af8 conn_id = 126 sbh = 0x7fffe80d2af0 #17 0x00007ffff4286676 in worker_thread (thd=0x7fffe80733d8, dummy=0x7fffe80008c0) at worker.c:978 ti = 0x7fffe80008c0 process_slot = 0 thread_slot = 126 csd = 0x7fffe80d28e0 bucket_alloc = 0x7fff8c0008e8 last_ptrans = 0x0 ptrans = 0x7fffe80d2868 rv = 0 is_idle = 0 #18 0x00007ffff74427fa in dummy_worker (opaque=0x7fffe80733d8) at threadproc/unix/thread.c:142 thread = 0x7fffe80733d8 #19 0x00007ffff6dbc9d1 in start_thread () from /lib64/libpthread.so.0 No symbol table info available. #20 0x00007ffff69058fd in clone () from /lib64/libc.so.6 No symbol table info available.