Hi, can anybody look into apr_buckets_heap.c ? I'm not familiar with the apr code, but I don't see the free_func called anywhere ( which frees up the memory ), or am I mistaken ?
Thanks ! Peter. Peter Van Biesen wrote: > > Hi, > > I started my server with MaxClients=1, started the download and attached > to the process with gdb. The process crashed; This is the trace : > > vfsi3>gdb httpd 7840 > GNU gdb 5.2.1 > Copyright 2002 Free Software Foundation, Inc. > GDB is free software, covered by the GNU General Public License, and you > are > welcome to change it and/or distribute copies of it under certain > conditions. > Type "show copying" to see the conditions. > There is absolutely no warranty for GDB. Type "show warranty" for > details. > This GDB was configured as "hppa2.0n-hp-hpux11.00"... > Attaching to program: /opt/httpd/bin/httpd, process 7840 > > warning: The shared libraries were not privately mapped; setting a > breakpoint in a shared library will not work until you rerun the > program. > > Reading symbols from /opt/openssl/lib/libssl.sl.0.9.6...done. > Reading symbols from /opt/openssl/lib/libcrypto.sl.0.9.6...done. > Reading symbols from /opt/httpd/lib/libaprutil.sl.0...done. > Reading symbols from /opt/httpd/lib/libexpat.sl.1...done. > Reading symbols from /opt/httpd/lib/libapr.sl.0...done. > Reading symbols from /usr/lib/libnsl.1...done. > Reading symbols from /usr/lib/libxti.2...done. > Reading symbols from /usr/lib/libpthread.1...done. > Reading symbols from /usr/lib/libc.2...done. > Reading symbols from /usr/lib/libdld.2...done. > Reading symbols from /usr/lib/libnss_files.1...done. > Reading symbols from /usr/lib/libnss_nis.1...done. > Reading symbols from /usr/lib/libnss_dns.1...done. > 0xc0115b68 in _select_sys () from /usr/lib/libc.2 > (gdb) continue > Continuing. > > Program received signal SIGSEGV, Segmentation fault. > 0xc1bfb06c in apr_bucket_alloc () from /opt/httpd/lib/libaprutil.sl.0 > (gdb) where > #0 0xc1bfb06c in apr_bucket_alloc () from > /opt/httpd/lib/libaprutil.sl.0 > #1 0xc1bf8d18 in socket_bucket_read () from > /opt/httpd/lib/libaprutil.sl.0 > #2 0x00129ffc in core_input_filter () > #3 0x0011a630 in ap_get_brigade () > #4 0x000bb26c in ap_http_filter () > #5 0x0011a630 in ap_get_brigade () > #6 0x0012999c in net_time_filter () > #7 0x0011a630 in ap_get_brigade () > #8 0x00092f3c in ap_proxy_http_process_response () > #9 0x000935e0 in ap_proxy_http_handler () > #10 0x0008484c in proxy_run_scheme_handler () > #11 0x0008259c in proxy_handler () > #12 0x000fdc40 in ap_run_handler () > #13 0x000fea04 in ap_invoke_handler () > #14 0x000c0d9c in ap_process_request () > #15 0x000b8348 in ap_process_http_connection () > #16 0x00115a00 in ap_run_process_connection () > #17 0x001160c0 in ap_process_connection () > #18 0x000fae00 in child_main () > #19 0x000fb0ac in make_child () > #20 0x000fb47c in perform_idle_server_maintenance () > #21 0x000fbc88 in ap_mpm_run () > #22 0x001079f0 in main () > (gdb) > > The resources used by the process increase linearly until the maximum > per process is reached after which the crash occurs. Did we do an alloc > without a free ? > > Peter.
