Package: apache2-mpm-worker
Version: 2.0.47-1
Severity: important

seed:~# apt-get --purge remove apache2-common
Reading Package Lists... Done
Building Dependency Tree... Done
The following packages will be REMOVED:
  apache2-common* apache2-mpm-worker*
0 upgraded, 0 newly installed, 2 to remove and 0 not upgraded.
Need to get 0B of archives.
After unpacking 15.8MB disk space will be freed.
Do you want to continue? [Y/n]
Reading changelogs... Done
(Reading database ... 156772 files and directories currently installed.)
Removing apache2-mpm-worker ...
Stopping web server: Apache2/usr/sbin/apache2: relocation error: 
/usr/lib/libaprutil-0.so.0: undefined symbol: gdbm_errno
invoke-rc.d: initscript apache2, action "stop" failed.
dpkg: error processing apache2-mpm-worker (--purge):
 subprocess pre-removal script returned error exit status 127
Starting web server: Apache2/usr/sbin/apache2: relocation error:  
/usr/lib/libaprutil-0.so.0: undefined symbol: gdbm_errno
invoke-rc.d: initscript apache2, action "start" failed.
dpkg: error while cleaning up:
 subprocess post-installation script returned error exit status 127
Removing apache2-common ...
Purging configuration files for apache2-common ...
Errors were encountered while processing:
 apache2-mpm-worker

seed:~# /usr/sbin/apache2 --version
/usr/sbin/apache2: relocation error: /usr/lib/libaprutil-0.so.0: undefined 
symbol: gdbm_errno
seed:~# LD_PRELOAD=/usr/lib/libgdbm.so.3 /usr/sbin/apache2 --version
apache2: could not open document config file /etc/apache2/apache2.conf

Upgrading apache2-common and apache2-mpm-worker to 2.0.48-5 fixed the
problem. Looks like the dependency on libapr0 should be tightened to
avoid mixing different versions of libapr0 and the apache2 executables,
or libaprutil-0.so.0 should be linked with libgdbm3:

seed:~# ldd /usr/lib/libaprutil-0.so.0
                libdl.so.2 => /lib/tls/libdl.so.2 (0x40023000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0x40026000)
        libc.so.6 => /lib/tls/libc.so.6 (0x40035000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x80000000)

seed:~# nm --dynamic /usr/lib/libaprutil-0.so.0 | fgrep gdbm
000155c0 D apr_dbm_type_gdbm
         U gdbm_close
         U gdbm_delete
         U gdbm_errno
         U gdbm_exists
         U gdbm_fetch
         U gdbm_firstkey
         U gdbm_nextkey
         U gdbm_open
         U gdbm_store
         U gdbm_strerror

libgdbm3 was probably being brought in by the main apache2 executable,
which was the wrong version. Because of that, libapr0 was magically
depending on apache2 too, and the versions need to be exactly matched.
Making the libraries on libapr0 depend on the proprer libraries would
probably allow the current looser versioning on the dependency.

-- System Information:
Debian Release: testing/unstable
Architecture: i386
Kernel: Linux seed 2.6.1-rc1-reiserfsaclea-seed #1 Thu Jan 1 18:44:41 BRST 2004 
i586
Locale: LANG=C, LC_CTYPE=en_US.UTF-8

Versions of packages apache2-mpm-worker depends on:
pn  apache2-common                           Not found.
ii  libapr0                     2.0.48-5     The Apache Portable Runtime
ii  libc6                       2.3.2.ds1-10 GNU C Library: Shared libraries an
ii  libdb4.1                    4.1.25-16    Berkeley v4.1 Database Libraries [
ii  libexpat1                   1.95.6-6     XML parsing C library - runtime li
ii  libldap2                    2.1.23-1     OpenLDAP libraries
ii  libssl0.9.7                 0.9.7c-5     SSL shared libraries
ii  zlib1g                      1:1.2.1-3    compression library - runtime

-- no debconf information



Reply via email to