durusmail: quixote-users: Re: scgi 1.9 apache2 mod bug?
 
Re: scgi 1.9 apache2 mod bug?
2006-01-16
Re: scgi 1.9 apache2 mod bug?
Thomas Yandell
2006-01-16
Hi Neil

I managed to kludge it into working by removing the bits from config. i.e
replacing:

    rv = apr_sockaddr_info_get(&sockaddr,
                               CONFIG_VALUE(m->addr, "localhost"),
                               APR_UNSPEC,
                               CONFIG_VALUE(m->port, 4000),
                               0,
                               r->pool);

with:

    rv = apr_sockaddr_info_get(&sockaddr,
                               "localhost",
                               APR_UNSPEC,
                               9090,
                               0,
                               r->pool);

However this brings up an unrelated problem in the following code:

    add_header(t, "SCRIPT_NAME", r->uri);
    if (r->path_info) {
        int path_info_start = find_path_info(r->uri, r->path_info);
        add_header(t, "SCRIPT_NAME", apr_pstrndup(r->pool, r->uri,
                                                  path_info_start));
        add_header(t, "PATH_INFO", r->path_info);
    }
    else {
        /* skip PATH_INFO, don't know it */
        add_header(t, "SCRIPT_NAME", r->uri);
    }

This results in the SCRIPT_NAME header being duplicated.

Thanks,
Tom


On Monday 16 January 2006 15:23, Thomas Yandell wrote:
> Hi Neil,
>
> Please see below.
>
> On Friday 13 January 2006 21:13, you wrote:
> > On Wed, Jan 11, 2006 at 10:39:22AM +0000, Thomas Yandell wrote:
> > > [Wed Jan 11 10:33:44 2006] [notice] child pid 4656 exit signal
> > > Segmentation fault (11)
> >
> > Ouch.
>
> Yep.
>
> > Unfortunately that doesn't provide much of a clue as to
> > what's wrong.  An easy thing to try is to set LogLevel to "debug".
> > You should get a better idea of what mod_scgi is doing when it dies.
>
> I got this:
>
> [Mon Jan 16 14:56:53 2006] [debug] mod_scgi.c(498): [client 127.0.0.5]
> connecting to server
>
> I tried to add extra debug warnings to narrow it down. In particular in the
> open_socket function i replaced the following:
>
>     rv = apr_sockaddr_info_get(&sockaddr,
>                                CONFIG_VALUE(m->addr, "localhost"),
>                                APR_UNSPEC,
>                                CONFIG_VALUE(m->port, 4000),
>                                0,
>                                r->pool);
>     if (rv) {
>         log_err(APLOG_MARK, r, rv, "apr_sockaddr_info_get() error");
>         return rv;
>     }
>
> with
>
>     log_debug(APLOG_MARK, r, "open_socket: 5");
>
>     rv = apr_sockaddr_info_get(&sockaddr,
>                                CONFIG_VALUE(m->addr, "localhost"),
>                                APR_UNSPEC,
>                                CONFIG_VALUE(m->port, 4000),
>                                0,
>                                r->pool);
>     if (rv) {
>         log_err(APLOG_MARK, r, rv, "apr_sockaddr_info_get() error");
>         return rv;
>     }
>
>     log_debug(APLOG_MARK, r, "open_socket: 6");
>
> and in the error log I get:
>
> ...
> [Mon Jan 16 15:10:15 2006] [debug] mod_scgi.c(434): [client 127.0.0.5]
> open_socket: 3
> [Mon Jan 16 15:10:15 2006] [debug] mod_scgi.c(438): [client 127.0.0.5]
> open_socket: 4
> [Mon Jan 16 15:10:15 2006] [debug] mod_scgi.c(442): [client 127.0.0.5]
> open_socket: 5
>
> and then nothing.
>
> > You may also want to add move debug messages to the source to narrow
> > it down.  Another idea is to attach to the Apache process using gdb.
> > That's a little tricky though.
> >
> > > I am using the libapache2-mod-scgi from debian unstable, but have also
> > > compiled the module myself with the same results.
> >
> > What's the version of Apache?  Are you just doing a simple GET
> > request or something more complicated?
>
> Current apache2 from unstable. Happens with prefork and worker mpm's. Is a
> simple GET request.
>
> > > I hope you don't mind me asking you, I could not find an appropriate
> > > mailing list.
> >
> > Contacting me is fine.  You can also try the
> > quixote-users@mems-exchange.org list as mod_scgi users tend to hang
> > out there too.
> >
> >   Neil
>
> Cc'd to list.
>
> Thanks,
> Tom

--
Thomas Yandell
Technical Consultant
Viper Code Limited
t: +44 (0)7855 399853
e: tom@vipercode.com
w: www.vipercode.com
reply