I've been getting intermittent segfaults for a couple of days now on our dev server, and i'm not really sure why. I can more or less reproduce them, but it's a hit or miss process. It only seems to affect 2 handlers for some reason, and based on what i'm seeing it seems like one is some how managing to corrupt the childs configuration, then the other is making it segfault.

Here are some examples of the weird messages i'm seeing in the error log. ZZZ::AuthSmb is a simple auth handler we've been using for years without any issues. The random corruption of the name is what makes me thing that the config is getting corrupted, but i don't really know what i'm talking about.

[Tue Aug 12 09:39:06 2008] [error] lookup of 'ZZZ::AuthzSmb::8<C\n\x0c' failed
[Tue Aug 12 10:01:53 2008] [error] lookup of 'ZZZ::AuthzSmb::`' failed
[Tue Aug 12 10:05:11 2008] [error] lookup of '@\xa5J\bP\xa5J\bRESU' failed
[Tue Aug 12 10:05:52 2008] [error] lookup of '@\xa5J\bP\xa5J\bRESU' failed
[Tue Aug 12 16:13:57 2008] [error] lookup of 'ZZZ::AuthzSmb' failed
[Tue Aug 12 16:15:10 2008] [error] lookup of 'ZZZ::AuthzSmb' failed
[Tue Aug 12 16:15:17 2008] [error] lookup of 'ZZZ::AuthzSmb' failed
[Tue Aug 12 16:15:19 2008] [error] lookup of 'ZZZ::\xf8w\v\n\x0c' failed
[Tue Aug 12 16:31:36 2008] [error] lookup of 'ZZZ::AuthzSmb`\x89' failed
[Tue Aug 12 16:55:34 2008] [error] lookup of 'ZZZ::AuthzSmb\xf8\xde' failed
[Tue Aug 12 16:55:47 2008] [error] lookup of 'ZZZ::AuthzSmbX@' failed
[Tue Aug 12 17:24:32 2008] [error] lookup of 'h\xfd\xfa\t' failed

here's the backtrace or a core file with MP_DEBUG=1. Any help would be appreciated, i'm at a loss.

(gdb) bt full
#0 0xb7d618cb in modperl_mgv_as_string (symbol=0x9fadc28, p=0x9fae240, package=0)
    at modperl_mgv.c:393
        string = 0x9fadc28 "\002"
        ptr = 0x0
        mgv = (modperl_mgv_t *) 0x2
        len = 2
#1 0xb7d56b21 in modperl_callback (handler=0x85146c0, p=0x9fae240, r=0x9fae280, s=0x8504330,
    args=0xa104b04) at modperl_callback.c:85
        name = 0x11 <Address 0x11 out of bounds>
        symbol = (modperl_mgv_t *) 0x9fadc28
        gv = (GV *) 0x0
        cv = (CV *) 0x0
        flags = 4
        sp = (SV **) 0xa24319c
        count = 169833880
        status = 0
        __func__ = "modperl_callback"
#2 0xb7d573ae in modperl_callback_run_handlers (idx=3, type=4, r=0x9fae280, c=0x0, s=0x8504330, pconf=0x0, plog=0x0, ptemp=0x0, run_mode=MP_HOOK_RUN_FIRST) at modperl_callback.c:262
        scfg = (modperl_config_srv_t *) 0x855d0d8
        dcfg = (modperl_config_dir_t *) 0x9fad130
        rcfg = (modperl_config_req_t *) 0x9faeff0
        handlers = (modperl_handler_t **) 0x9fadd00
        p = (apr_pool_t *) 0x9fae240
        av = (MpAV *) 0x9fadc88
        avp = (MpAV **) 0x9faf010
        i = 0
        status = 0
        desc = 0xb7d7c372 "PerlAuthzHandler"
        av_args = (AV *) 0xa104b04
        __func__ = "modperl_callback_run_handlers"
#3 0xb7d57848 in modperl_callback_per_dir (idx=3, r=0x9fae280, run_mode=MP_HOOK_RUN_FIRST)
    at modperl_callback.c:369
No locals.
#4  0xb7d731ed in modperl_authz_handler (r=0x9fae280) at modperl_hooks.c:47
No locals.
#5  0x08076867 in ap_run_auth_checker (r=0x9fae280) at request.c:78
        n = 0
        rv = 159247752
#6  0x080785d5 in ap_process_request_internal (r=0x9fae280) at request.c:198
        file_req = 0
        access_status = <value optimized out>
#7  0x08094b98 in ap_process_request (r=0x9fae280) at http_request.c:256
        access_status = 2
#8  0x08091e0e in ap_process_http_connection (c=0xa0545f0) at http_core.c:190
        r = (request_rec *) 0x9fae280
        csd = (apr_socket_t *) 0x0
#9  0x08081e27 in ap_run_process_connection (c=0xa0545f0) at connection.c:43
        n = 1
        rv = 159247752
#10 0x080a821d in child_main (child_num_arg=<value optimized out>) at prefork.c:650
        numdesc = 0
        pdesc = (const apr_pollfd_t *) 0x0
        current_conn = (conn_rec *) 0xa0545f0
        csd = (void *) 0xa054458
        ptrans = (apr_pool_t *) 0xa054418
        allocator = (apr_allocator_t *) 0x9f43550
        status = <value optimized out>
        i = <value optimized out>
        lr = <value optimized out>
        pollset = (apr_pollset_t *) 0xa052468
        sbh = (ap_sb_handle_t *) 0xa052460
        bucket_alloc = (apr_bucket_alloc_t *) 0x9faa230
        last_poll_idx = 0
#11 0x080a84f6 in make_child (s=0x80d4ce0, slot=4) at prefork.c:746
        pid = 0
#12 0x080a85aa in startup_children (number_to_start=1) at prefork.c:764
        i = 4
#13 0x080a91d7 in ap_mpm_run (_pconf=0x80d00a8, plog=0x810e1a0, s=0x80d4ce0) at prefork.c:985
        active_children = <value optimized out>
        cutoff = <value optimized out>
        index = <value optimized out>
        remaining_children_to_start = 5
        rv = <value optimized out>
#14 0x08068948 in main (argc=135061664, argv=0xa052410) at main.c:730
        c = 68 'D'
        configtestonly = 0
        confname = 0xbfbb07c0 "/www/conf/httpd.conf"
        def_server_root = 0x80b2523 "/www/apache/heavy"
        temp_error_log = 0x0
        error = <value optimized out>
        process = (process_rec *) 0x80ce130
        server_conf = <value optimized out>
        pglobal = (apr_pool_t *) 0x80ce0a0
        pconf = (apr_pool_t *) 0x80d00a8
        plog = (apr_pool_t *) 0x810e1a0
        ptemp = (apr_pool_t *) 0x80d60c0
        pcommands = (apr_pool_t *) 0x80d20b0
        opt = (apr_getopt_t *) 0x80d2150
        rv = <value optimized out>
        optarg = 0xbfbb07d7 "BackEnd"


Reply via email to