httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Rainer Jung <rainer.j...@kippdata.de>
Subject Crash in scoreboard for 2.3.4 after restart (register_hooks)
Date Wed, 02 Dec 2009 20:09:13 GMT
Platform: Solaris 8 (sic!)
MPM: worker dynamically loaded
APR etc: Bundled
PCRE: 7.8

During testing of 2.3.4 I noticed crashes after restart.

I did a build with lots of modules, especially including mod_logio. The 
scoreboard uses in ap_increment_counts() the optional function 
ap_logio_get_last_bytes() from mod_logio if available.

In my case after restart the memory location of mod_logio and the 
address of the optional function changed, but the scoreboard still tries 
to call to the original address retrieved after the initial start.

I don't know about the full implementation of the optional functions, 
but it seems either

APR_REGISTER_OPTIONAL_FN(ap_logio_get_last_bytes);

in register_hooks in mod_logio needs to run after restarts too, or there 
is a problem resulting in an unwanted change of load order of the 
modules during restart. I did not edit the config files between start 
and restart.

The problem happens with normal restarts and graceful restarts.

Wild guess: it might have to do with dynamic MPM loading.

The diff between pmap of the main process after initial start and after 
restart is:

--- pmap_22741_a        2009-12-02 21:02:46.000000000 +0100
+++ pmap_22741_c        2009-12-02 21:03:44.000000000 +0100
@@ -12,19 +12,19 @@
  FDF0C000      8K read/write/exec     [ anon ]
  FDF10000      8K read/write/exec     [ anon ]
  FE00E000      8K read/write/exec     [ anon ]
-FE370000     24K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_status.so
-FE384000      8K read/write/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_status.so
-FE390000      8K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_unixd.so
-FE3A0000      8K read/write/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_unixd.so
-FE3B0000     40K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_mpm_worker.so
-FE3C8000      8K read/write/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_mpm_worker.so
-FE3D0000      8K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_logio.so
-FE3E0000      8K read/write/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_logio.so
  FE3F0000      8K read/write/exec     [ anon ]
+FEA80000    496K read/write/shared   [ anon ]
  FEB20000    240K read/write/shared   [ anon ]
  FEB60000      8K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/lib/apr-util-1/apr_ldap-1.so
  FEB70000      8K read/write/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/lib/apr-util-1/apr_ldap-1.so
-FEB80000    496K read/write/shared   [ anon ]
+FEBA0000     24K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_status.so
+FEBB4000      8K read/write/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_status.so
+FEBC0000      8K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_unixd.so
+FEBD0000      8K read/write/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_unixd.so
+FEBE0000     40K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_mpm_worker.so
+FEBF8000      8K read/write/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_mpm_worker.so
+FEC00000      8K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_logio.so
+FEC10000      8K read/write/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_logio.so
  FEC20000     24K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_log_config.so
  FEC34000      8K read/write/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_log_config.so
  FEC40000     48K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_ldap.so
@@ -38,14 +38,14 @@
  FECD0000      8K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_auth_basic.so
  FECE0000      8K read/write/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_auth_basic.so
  FECF0000      8K read/write/exec     [ anon ]
-FED00000      8K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_access_compat.so
-FED10000      8K read/write/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_access_compat.so
+FED00000     32K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_authnz_ldap.so
+FED16000      8K read/write/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_authnz_ldap.so
  FED20000    216K read/exec         /usr/lib/libresolv.so.2
  FED66000     24K read/write/exec   /usr/lib/libresolv.so.2
  FED70000    144K read/exec         /usr/lib/libldap.so.4
  FEDA4000     16K read/write/exec   /usr/lib/libldap.so.4
-FEDB0000     32K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_authnz_ldap.so
-FEDC6000      8K read/write/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_authnz_ldap.so
+FEDB0000      8K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_access_compat.so
+FEDC0000      8K read/write/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_access_compat.so
  FEDD0000     16K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_authz_core.so
  FEDE2000      8K read/write/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_authz_core.so
  FEDF0000      8K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_authz_dbd.so
@@ -72,7 +72,7 @@
  FEF40000      8K read/write/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_authn_dbm.so
  FEF50000      8K read/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_authn_file.so
  FEF60000      8K read/write/exec 
/shared/build/autobuild/workdirs/20091202a-httpd-2.3.4/run/modules/mod_authn_file.so
-FEF70000      8K read/write/exec/shared  [ shmid=0xc02 ]
+FEF70000      8K read/write/exec/shared  [ shmid=0xd02 ]
  FEF84000      8K read/write/exec     [ anon ]
  FEF90000      8K read/write/exec     [ anon ]
  FEFA0000    112K read/exec         /usr/lib/libthread.so.1

The address used for pfn_ap_logio_get_last_bytes is '0xfe3d0ad4' after 
start and after restart (which is wrong).

Any ideas?

I can easily reproduce and debug further once there is an idea which 
code to look at.

Regards,

Rainer


Mime
View raw message