[mod_python] old libexpat shared library

Graham Dumpleton graham.dumpleton at gmail.com
Sun Apr 6 06:14:25 EDT 2008


Try getting the following option passed through to configure of apr-util:

  --with-expat=/usr

Can't remember if top level Apache configure will pass it through automatically.

Think that is the correct directory to give as argument.

Graham

2008/4/6 Luyi Chen <lychen1109 at gmail.com>:
> Thanks Graham,
>
>  Here's the info:
>
>  $ ldd /usr/local/apache2/bin/httpd
>         libz.so.1 => /usr/lib/libz.so.1 (0x00002b02938de000)
>         libm.so.6 => /lib/libm.so.6 (0x00002b02939f4000)
>         libaprutil-1.so.0 => /usr/local/apache2/lib/libaprutil-1.so.0
>  (0x00002b0293b79000)
>
>         libexpat.so.0 => /usr/local/apache2/lib/libexpat.so.0
>  (0x00002b0293c91000)
>         libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00002b0293db3000)
>         libapr-1.so.0 => /usr/local/apache2/lib/libapr-1.so.0
>  (0x00002b0293ed6000)
>         librt.so.1 => /lib/librt.so.1 (0x00002b0293ffe000)
>         libcrypt.so.1 => /lib/libcrypt.so.1 (0x00002b0294107000)
>         libpthread.so.0 => /lib/libpthread.so.0 (0x00002b029423a000)
>         libdl.so.2 => /lib/libdl.so.2 (0x00002b029434f000)
>         libc.so.6 => /lib/libc.so.6 (0x00002b0294452000)
>         /lib64/ld-linux-x86-64.so.2 (0x00002b02937c7000)
>  $ ldd /usr/lib/libz.so.1
>         libc.so.6 => /lib/libc.so.6 (0x00002b2764dc5000)
>         /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
>  $ ldd /lib/libm.so.6
>         libc.so.6 => /lib/libc.so.6 (0x00002b8bf9a3c000)
>         /lib/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2
>  (0x0000555555554000)
>  $ ldd /usr/local/apache2/lib/libaprutil-1.so.0
>
>         libexpat.so.0 => /usr/local/apache2/lib/libexpat.so.0
>  (0x00002b61001d0000)
>         libapr-1.so.0 => /usr/local/apache2/lib/libapr-1.so.0
>  (0x00002b61002f2000)
>         librt.so.1 => /lib/librt.so.1 (0x00002b610041e000)
>         libcrypt.so.1 => /lib/libcrypt.so.1 (0x00002b6100526000)
>         libpthread.so.0 => /lib/libpthread.so.0 (0x00002b610065a000)
>         libdl.so.2 => /lib/libdl.so.2 (0x00002b610076f000)
>         libc.so.6 => /lib/libc.so.6 (0x00002b6100871000)
>         /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
>  $ ldd /usr/local/apache2/lib/libexpat.so.0
>         libc.so.6 => /lib/libc.so.6 (0x00002af851439000)
>         /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
>  $ ldd /usr/lib/libexpat.so.1
>         libc.so.6 => /lib/libc.so.6 (0x00002b96d0162000)
>         /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
>  $ ldd /usr/local/apache2/lib/libapr-1.so.0
>         librt.so.1 => /lib/librt.so.1 (0x00002ba649f41000)
>         libcrypt.so.1 => /lib/libcrypt.so.1 (0x00002ba64a04a000)
>         libpthread.so.0 => /lib/libpthread.so.0 (0x00002ba64a17d000)
>         libdl.so.2 => /lib/libdl.so.2 (0x00002ba64a292000)
>         libc.so.6 => /lib/libc.so.6 (0x00002ba64a395000)
>         /lib64/ld-linux-x86-64.so.2 (0x0000555555554000)
>  $ ldd /lib/librt.so.1
>         libc.so.6 => /lib/libc.so.6 (0x00002aab3a499000)
>         libpthread.so.0 => /lib/libpthread.so.0 (0x00002aab3a6d3000)
>         /lib/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2
>  (0x0000555555554000)
>  $ ldd /lib/libcrypt.so.1
>         libc.so.6 => /lib/libc.so.6 (0x00002ae20b9dd000)
>         /lib/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2
>  (0x0000555555554000)
>  $ ldd /lib/libpthread.so.0
>         libc.so.6 => /lib/libc.so.6 (0x00002b15ada6d000)
>         /lib/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2
>  (0x0000555555554000)
>  $ ldd /lib/libdl.so.2
>         libc.so.6 => /lib/libc.so.6 (0x00002b4f78de5000)
>         /lib/ld-linux-x86-64.so.2 => /lib64/ld-linux-x86-64.so.2
>  (0x0000555555554000)
>  $ ldd /lib/libc.so.6
>         /lib/ld-linux-x86-64.so.2 (0x00002b7744489000)
>
>  My own analysis is that apr-util depends on the old version of
>  libexpat. So I checked Apache installation doc, and found that I can
>  use --with-included-apr to force Apache use the bundled apr. Since my
>  os (Ubuntu 6.06) is an old version, I thought this is very likely to
>  be the cause.
>
>  I tried to recompile Apache with the --with-included-apr option,
>  here's my newest config.nice
>  #! /bin/sh
>  #
>  # Created by configure
>
>  "./configure" \
>  "--prefix=/usr/local/apache2" \
>  "--enable-proxy" \
>  "--enable-proxy-http" \
>  "--enable-proxy-balancer" \
>  "--enable-dav" \
>  "--enable-rewrite" \
>  "--enable-deflate" \
>  "--with-included-apr" \
>  "$@"
>
>
>  But it didn't solve the problem. The above information from ldd
>  command is actually after I recompiled Apache, which is unchanged.
>
>  The libexpat on my OS is the latest version, because I have runned this command:
>  apt-get install libexpat1
>  And it says it's already the newest version, which is 1.95.8-3
>  according to the ubuntu's pachage directory.
>
>  Luyi
>
>
>
>
>
>
>
>
>  On Sun, Apr 6, 2008 at 3:09 PM, Graham Dumpleton
>  <graham.dumpleton at gmail.com> wrote:
>  > 2008/4/5 Luyi Chen <lychen1109 at gmail.com>:
>  >
>  > > Hi,
>  >  >
>  >  >  I am trying to make mod_python working on Apache 2.2.6, ubuntu dapper
>  >  >  6.06. But I was hit by the problem of wrong expat library issue, as
>  >  >  stated by Graham Dumpleton, on this page
>  >  >  http://www.dscpl.com.au/wiki/ModPython/Articles/ExpatCausingApacheCrash
>  >  >
>  >  >  I am using a custom compiled Apache2 in /usr/local/apache2, so I
>  >  >  checked version of libexpat with the following line,
>  >  >
>  >  >  ldd /usr/local/apache2/bin/httpd
>  >  >
>  >  >  in the result there're two lines
>  >  >   libexpat.so.0 => /usr/local/apache2/lib/libexpat.so.0 (0x00002b4f4e1c5000)
>  >  >   libexpat.so.1 => /usr/lib/libexpat.so.1 (0x00002b4f4e2e7000)
>  >
>  >  If you have this, then something is quite broken with your Apache
>  >  httpd to start with, before even mod_python is loaded.
>  >
>  >  What is the full 'ldd' output from running it against 'httpd'.
>  >
>  >  Also go through each of the .so file it is dependent upon and run
>  >  'ldd' on them as well and post all the results.
>  >
>  >  As far as I can tell, one of the .so files depended on by httpd is
>  >  itself dependent on libexpat (a different version), as I can't see
>  >  otherwise how you can get an executable dependent on two different
>  >  versions of a shared library.
>  >
>  >  Graham
>  >
>  >
>  >  >  The one in /usr/local/apache2/lib is an old version 1.95.2, while the
>  >  >  one in /usr/lib is 1.95.8, which is identical to the version of
>  >  >  libexpat used by python.
>  >  >
>  >  >  How do I tell Apache to use the new version of libexpat only?
>  >  >
>  >  >  Luyi
>  >  >  _______________________________________________
>  >  >  Mod_python mailing list
>  >  >  Mod_python at modpython.org
>  >  >  http://mailman.modpython.org/mailman/listinfo/mod_python
>  >  >
>  >
>


More information about the Mod_python mailing list