httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From dave <man...@gmail.com>
Subject Re: WELCOME to modules-dev@httpd.apache.org
Date Wed, 11 Feb 2009 04:38:35 GMT
On Tue, Feb 10, 2009 at 19:11, Joe Lewis <joe@joe-lewis.com> wrote:

> With your last post (the creation), it looks like you understand it well.
>  Are you only creating one process?  For example, run it with a -X parameter
> (to prevent fork()ing) so you can ensure that you aren't working across
> processes?  Printing the PID along with the %d?  Is the %d in the handler
> always the same?
>
> Joe
>

So I was in the process of creating a simple test module when I discovered
the problem had gone away (both in the test module and in the module I am
developing.) I did some more digging and discovered that it was a
configuration that is actually causing the problem. In my virtual host
definition, I have this:

#               SetHandler test
                SetHandler mymod
                MyModConfig /var/www/file

If I comment out that last line, I get a relatively simple configuration
sequence when Apache first boots (yes, this is all run with -X). cfg is the
address of the module_config variable. server/path is the address of either
the server_rec or the path variable pass into the callback.

sudo APACHE_RUN_USER=www-data APACHE_RUN_GROUP=www-data /usr/sbin/apache2 -X
server_config    {pid: 13878    cfg:0x2b7c26e32ac0    server:
0x2b7c26db4568}
dir_config    {pid: 13878    cfg:0x2b7c26e32ad8    path: (null)}
server_config    {pid: 13878    cfg:0x2b7c26e399d0    server:
0x2b7c26db1968}
dir_config    {pid: 13878    cfg:0x2b7c26e399e8    path: (null)}
child_init    {pid: 13878    cfg:0x2b7c26e399d0        server:
0x2b7c26db1968}
create new <-- this is my code creating the resources that it needs for the
process
handler        {pid: 13878    cfg:0x2b7c26e399d0        server:
0x2b7c2fa881b8} <-- notice the cfg/server addresses are the same as the line
above


When I run with the line uncommented, I get the following:

server_config    {pid: 13979    cfg:0x2b2cf82ebac0    server:
0x2b2cf826d568}
dir_config    {pid: 13979    cfg:0x2b2cf82ebad8    path: (null)}
dir_config    {pid: 13979    cfg:0x2b2d00f415c8    path: (null)}
server_config    {pid: 13979    cfg:0x2b2d00f415e0    server:
0x2b2d00f3f1a8}
mymodconfig    {pid: 13979    cfg:0x2b2d00f415c8        cmd_parms:
0x7fffb2ad90c0} <-- call to process the config
server_config    {pid: 13979    cfg:0x2b2cf82f29d0    server:
0x2b2cf826a968}
dir_config    {pid: 13979    cfg:0x2b2cf82f29e8    path: (null)}
dir_config    {pid: 13979    cfg:0x2b2d00f435d8    path: (null)}
server_config    {pid: 13979    cfg:0x2b2d00f435f0    server:
0x2b2d00f411b8}
mymodconnfig    {pid: 13979    cfg:0x2b2d00f435d8        cmd_parms:
0x7fffb2ad90c0} <-- call to process the config again
child_init    {pid: 13979    cfg:0x2b2cf82f29d0        server:
0x2b2cf826a968}
create new <-- creating the resources where it should
handler        {pid: 13979    cfg:0x2b2d00f7aff0        server:
0x2b2d00f411b8} <-- notice the cfg/server addresses are different than the
line above
create new <-- thinks the resources have not been created, so doing it again

I tried defining a merge callback for both the server level and the
directory level, but that doesn't seem to change anything.

-dave
mankyd@gmail.com

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message