Sleepycat::DbXml problem "httpd: symbol lookup error" - modperl

This is a discussion on Sleepycat::DbXml problem "httpd: symbol lookup error" - modperl ; Hi My english is not good (sorry) but I try to explain my problem I have apache2.2.9 with modperl 2.0.4 static; I have some perl modules (development by me) with Sleepycat: bXml library; when ran "make test" for its modules ...

+ Reply to Thread
Results 1 to 8 of 8

Thread: Sleepycat::DbXml problem "httpd: symbol lookup error"

  1. Sleepycat::DbXml problem "httpd: symbol lookup error"

    Hi

    My english is not good (sorry) but I try to explain my problem

    I have apache2.2.9 with modperl 2.0.4 static; I have some perl modules
    (development by me) with Sleepycat:bXml library; when ran "make test" for
    its modules all is fine (I also develop the test); I also use mason (1.37).

    When i tried to acces some page generated for maso I gotten the next
    messages (log/error):

    /usr/local/apache2.2/bin/httpd: symbol lookup error:
    /usr/lib/perl5/vendor_perl/5.8.8/i686-linux/auto/Sleepycat/DbXml/DbXml.so:
    undefined symbol: _ZN5DbXml12XmlContainer10getManagerEv


    if I execute "ldd
    /usr/lib/perl5/vendor_perl/5.8.8/i686-linux/auto/Sleepycat/DbXml/DbXml.so"
    the output is:

    linux-gate.so.1 => (0xb7f25000)
    libdbxml-2.4.so => /usr/lib/libdbxml-2.4.so (0xb7b97000)
    libdb_cxx-4.6.so => /usr/lib/libdb_cxx-4.6.so (0xb7a4b000)
    libxerces-c.so.28 => /usr/lib/libxerces-c.so.28 (0xb7643000)
    libxqilla.so.4 => /usr/lib/libxqilla.so.4 (0xb726f000)
    libgcc_s.so.1 => /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libgcc_s.so.1
    (0xb7263000)
    libc.so.6 => /lib/libc.so.6 (0xb7139000)
    libstdc++.so.6 =>
    /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6 (0xb7055000)
    libm.so.6 => /lib/libm.so.6 (0xb7030000)
    libpthread.so.0 => /lib/libpthread.so.0 (0xb7019000)
    libnsl.so.1 => /lib/libnsl.so.1 (0xb7002000)
    /lib/ld-linux.so.2 (0x80000000)

    my distribution is gentoo...

    maybe the problem is caused by
    - duplicate libraries with different versions
    - or old libraries

    I updated my system and delete duplicate libraries, but the problem
    continue

    anybody can help me? .... where can investigate?

    another question is: why the problem is present only with apache?

    thanks in advance


  2. Re: Sleepycat::DbXml problem "httpd: symbol lookup error"

    Felipe de Jesús Molina Bravo wrote:
    > Hi
    >
    > My english is not good (sorry) but I try to explain my problem
    >
    > I have apache2.2.9 with modperl 2.0.4 static; I have some perl modules
    > (development by me) with Sleepycat:bXml library; when ran "make test"
    > for its modules all is fine (I also develop the test); I also use mason
    > (1.37).
    >
    > When i tried to acces some page generated for maso I gotten the next
    > messages (log/error):
    >
    > /usr/local/apache2.2/bin/httpd: symbol lookup error:
    > /usr/lib/perl5/vendor_perl/5.8.8/i686-linux/auto/Sleepycat/DbXml/DbXml.so:
    > undefined symbol: _ZN5DbXml12XmlContainer10getManagerEv
    >
    >
    > if I execute "ldd
    > /usr/lib/perl5/vendor_perl/5.8.8/i686-linux/auto/Sleepycat/DbXml/DbXml.so"
    > the output is:
    >
    > linux-gate.so.1 => (0xb7f25000)
    > libdbxml-2.4.so =>
    > /usr/lib/libdbxml-2.4.so (0xb7b97000)
    > libdb_cxx-4.6.so =>
    > /usr/lib/libdb_cxx-4.6.so (0xb7a4b000)
    > libxerces-c.so.28 => /usr/lib/libxerces-c.so.28 (0xb7643000)
    > libxqilla.so.4 => /usr/lib/libxqilla.so.4 (0xb726f000)
    > libgcc_s.so.1 =>
    > /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libgcc_s.so.1 (0xb7263000)
    > libc.so.6 => /lib/libc.so.6 (0xb7139000)
    > libstdc++.so.6 =>
    > /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6 (0xb7055000)
    > libm.so.6 => /lib/libm.so.6 (0xb7030000)
    > libpthread.so.0 => /lib/libpthread.so.0 (0xb7019000)
    > libnsl.so.1 => /lib/libnsl.so.1 (0xb7002000)
    > /lib/ld-linux.so.2 (0x80000000)


    This looks ok, but I'll defer to the wisdom of those with more ldd-fu.

    > my distribution is gentoo...
    >
    > maybe the problem is caused by
    > - duplicate libraries with different versions
    > - or old libraries
    >
    > I updated my system and delete duplicate libraries, but the problem
    > continue
    >
    > anybody can help me? .... where can investigate?
    >
    > another question is: why the problem is present only with apache?


    Try rebuilding apache and mod_perl - it may be trying to load a version
    of DbXML at runtime different than what it was built with. I've seen
    similar problems in the past and rebuilding mp/httpd is usually a good
    fix after eliminating the duplicate libs.


  3. Re: Sleepycat::DbXml problem "httpd: symbol lookup error"

    2008/10/10 Fred Moyer

    > Felipe de Jesús Molina Bravo wrote:
    >
    >> Hi
    >>
    >> My english is not good (sorry) but I try to explain my problem
    >>
    >> I have apache2.2.9 with modperl 2.0.4 static; I have some perl modules
    >> (development by me) with Sleepycat:bXml library; when ran "make test"for
    >> its modules all is fine (I also develop the test); I also use mason (1.37).
    >>
    >> When i tried to acces some page generated for maso I gotten the next
    >> messages (log/error):
    >>
    >> /usr/local/apache2.2/bin/httpd: symbol lookup error:
    >> /usr/lib/perl5/vendor_perl/5.8.8/i686-linux/auto/Sleepycat/DbXml/DbXml.so:
    >> undefined symbol: _ZN5DbXml12XmlContainer10getManagerEv
    >>
    >>
    >> if I execute "ldd
    >> /usr/lib/perl5/vendor_perl/5.8.8/i686-linux/auto/Sleepycat/DbXml/DbXml.so"
    >> the output is:
    >>
    >> linux-gate.so.1 => (0xb7f25000)
    >> libdbxml-2.4.so => /usr/lib/
    >> libdbxml-2.4.so (0xb7b97000)
    >> libdb_cxx-4.6.so => /usr/lib/
    >> libdb_cxx-4.6.so (0xb7a4b000)
    >> libxerces-c.so.28 => /usr/lib/libxerces-c.so.28 (0xb7643000)
    >> libxqilla.so.4 => /usr/lib/libxqilla.so.4 (0xb726f000)
    >> libgcc_s.so.1 => /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libgcc_s.so.1
    >> (0xb7263000)
    >> libc.so.6 => /lib/libc.so.6 (0xb7139000)
    >> libstdc++.so.6 =>
    >> /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6 (0xb7055000)
    >> libm.so.6 => /lib/libm.so.6 (0xb7030000)
    >> libpthread.so.0 => /lib/libpthread.so.0 (0xb7019000)
    >> libnsl.so.1 => /lib/libnsl.so.1 (0xb7002000)
    >> /lib/ld-linux.so.2 (0x80000000)
    >>

    >
    > This looks ok, but I'll defer to the wisdom of those with more ldd-fu.
    >
    > my distribution is gentoo...
    >>
    >> maybe the problem is caused by
    >> - duplicate libraries with different versions
    >> - or old libraries
    >>
    >> I updated my system and delete duplicate libraries, but the problem
    >> continue
    >>
    >> anybody can help me? .... where can investigate?
    >>
    >> another question is: why the problem is present only with apache?
    >>

    >
    > Try rebuilding apache and mod_perl - it may be trying to load a version of
    > DbXML at runtime different than what it was built with. I've seen similar
    > problems in the past and rebuilding mp/httpd is usually a good fix after
    > eliminating the duplicate libs.
    >
    >

    thanks ... i did it, but the problem continue... any idea?


  4. Re: Sleepycat::DbXml problem "httpd: symbol lookup error"

    2008/10/10 Felipe de Jesús Molina Bravo

    >
    >
    > 2008/10/10 Fred Moyer
    >
    > Felipe de Jesús Molina Bravo wrote:
    >>
    >>> Hi
    >>>
    >>> My english is not good (sorry) but I try to explain my problem
    >>>
    >>> I have apache2.2.9 with modperl 2.0.4 static; I have some perl modules
    >>> (development by me) with Sleepycat:bXml library; when ran "make test" for
    >>> its modules all is fine (I also develop the test); I also use mason (1.37).
    >>>
    >>> When i tried to acces some page generated for maso I gotten the next
    >>> messages (log/error):
    >>>
    >>> /usr/local/apache2.2/bin/httpd: symbol lookup error:
    >>> /usr/lib/perl5/vendor_perl/5.8.8/i686-linux/auto/Sleepycat/DbXml/DbXml.so:
    >>> undefined symbol: _ZN5DbXml12XmlContainer10getManagerEv
    >>>
    >>>
    >>> if I execute "ldd
    >>> /usr/lib/perl5/vendor_perl/5.8.8/i686-linux/auto/Sleepycat/DbXml/DbXml.so"
    >>> the output is:
    >>>
    >>> linux-gate.so.1 => (0xb7f25000)
    >>> libdbxml-2.4.so => /usr/lib/
    >>> libdbxml-2.4.so (0xb7b97000)
    >>> libdb_cxx-4.6.so => /usr/lib/
    >>> libdb_cxx-4.6.so (0xb7a4b000)
    >>> libxerces-c.so.28 => /usr/lib/libxerces-c.so.28 (0xb7643000)
    >>> libxqilla.so.4 => /usr/lib/libxqilla.so.4 (0xb726f000)
    >>> libgcc_s.so.1 =>
    >>> /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libgcc_s.so.1 (0xb7263000)
    >>> libc.so.6 => /lib/libc.so.6 (0xb7139000)
    >>> libstdc++.so.6 =>
    >>> /usr/lib/gcc/i686-pc-linux-gnu/4.1.2/libstdc++.so.6 (0xb7055000)
    >>> libm.so.6 => /lib/libm.so.6 (0xb7030000)
    >>> libpthread.so.0 => /lib/libpthread.so.0 (0xb7019000)
    >>> libnsl.so.1 => /lib/libnsl.so.1 (0xb7002000)
    >>> /lib/ld-linux.so.2 (0x80000000)
    >>>

    >>
    >> This looks ok, but I'll defer to the wisdom of those with more ldd-fu.
    >>
    >> my distribution is gentoo...
    >>>
    >>> maybe the problem is caused by
    >>> - duplicate libraries with different versions
    >>> - or old libraries
    >>>
    >>> I updated my system and delete duplicate libraries, but the problem
    >>> continue
    >>>
    >>> anybody can help me? .... where can investigate?
    >>>
    >>> another question is: why the problem is present only with apache?
    >>>

    >>
    >> Try rebuilding apache and mod_perl - it may be trying to load a version of
    >> DbXML at runtime different than what it was built with. I've seen similar
    >> problems in the past and rebuilding mp/httpd is usually a good fix after
    >> eliminating the duplicate libs.
    >>
    >>

    > thanks ... i did it, but the problem continue... any idea?
    >


    maybe is important to say how compile apache and modperl .... (it was very
    difficult):
    1. download apache and modperl
    2. unpack apache and modperl.
    3. in directory httpd-2.2.9:
    - ./buildconf
    - cd srclib/apr
    - ./configure
    - cd ../apr-util
    - ./configure --with-apr=../apr/apr-1-config
    4. in directory mod_perl-2.0.4
    - perl Makefile.PL MP_USE_STATIC=1 MP_AP_PREFIX=../httpd-2.2.9/
    MP_AP_CONFIGURE="--prefix=/usr/local/apache2.2 --with-mpm=prefork
    --with-included-apr"
    5. in directory httpd-2.2.9:
    - edit the file: "srclib/apr/include/apr.h" and change (line 285):

    typedef off64_t apr_off_t; => typedef long long apr_off_t;

    (see http://www.cwp.mines.edu/pipermail/s...05/001081.html)
    6. in directory mod_perl-2.0.4
    - edit the file: "src/modules/perl/modperl_exports.c" and comments
    the lines 1169 y 1173
    7 make


  5. Re: Sleepycat::DbXml problem "httpd: symbol lookup error"

    Felipe de Jesús Molina Bravo wrote:
    >


    > Try rebuilding apache and mod_perl - it may be trying to load a
    > version of DbXML at runtime different than what it was built
    > with. I've seen similar problems in the past and rebuilding
    > mp/httpd is usually a good fix after eliminating the duplicate libs.
    >
    >
    > thanks ... i did it, but the problem continue... any idea?
    >
    >
    > maybe is important to say how compile apache and modperl .... (it was
    > very difficult):


    Can you try compiling mod_perl as a shared object? Static module
    support for mp2 is not as well supported.

    perl Makefile.PL MP_APXS=/path/to/httpd/apxs




    > 1. download apache and modperl
    > 2. unpack apache and modperl.
    > 3. in directory httpd-2.2.9:
    > - ./buildconf
    > - cd srclib/apr
    > - ./configure
    > - cd ../apr-util
    > - ./configure --with-apr=../apr/apr-1-config
    > 4. in directory mod_perl-2.0.4
    > - perl Makefile.PL MP_USE_STATIC=1 MP_AP_PREFIX=../httpd-2.2.9/
    > MP_AP_CONFIGURE="--prefix=/usr/local/apache2.2 --with-mpm=prefork
    > --with-included-apr"
    > 5. in directory httpd-2.2.9:
    > - edit the file: "srclib/apr/include/apr.h" and change (line
    > 285):
    > typedef off64_t apr_off_t; => typedef long long apr_off_t;
    >
    > (see http://www.cwp.mines.edu/pipermail/s...05/001081.html)
    > 6. in directory mod_perl-2.0.4
    > - edit the file: "src/modules/perl/modperl_exports.c" and
    > comments the lines 1169 y 1173
    > 7 make
    >
    >



    --
    Red Hot Penguin Consulting LLC
    mod_perl/PostgreSQL consulting and implementation
    http://www.redhotpenguin.com/


  6. Re: Sleepycat::DbXml problem "httpd: symbol lookup error"

    2008/10/11 Fred Moyer

    > Felipe de Jesús Molina Bravo wrote:
    >
    >>
    >>

    > Try rebuilding apache and mod_perl - it may be trying to load a
    >> version of DbXML at runtime different than what it was built
    >> with. I've seen similar problems in the past and rebuilding
    >> mp/httpd is usually a good fix after eliminating the duplicate
    >> libs.
    >>
    >>
    >> thanks ... i did it, but the problem continue... any idea?
    >>
    >>
    >> maybe is important to say how compile apache and modperl .... (it was
    >> very difficult):
    >>

    >
    > Can you try compiling mod_perl as a shared object? Static module support
    > for mp2 is not as well supported.
    >
    > perl Makefile.PL MP_APXS=/path/to/httpd/apxs




    I will try it .....

    mmm.... maybe it is another thread... but I prefer static modper for the
    next arguments:

    1. I guess the static modperl is faster than dynamic .... I know that
    dynamic is more maintainable that static; for my aplication i require
    modperl more soon;
    2. When modperl is dynamic i had some segment fault when i share objects at
    the start of apache; when is static i don't have problem ... (maybe i some
    errors in my code)

    there are things that worry me:
    1. In my linux distribution (gentoo) there are not any package with static
    modperl
    2. I see that most of the community uses modperl as dynamic ... maybe is
    it a sign of die the static modperl?

    what is the opinion of community ?


    greetings


  7. Re: Sleepycat::DbXml problem "httpd: symbol lookup error"

    Felipe de Jesús Molina Bravo wrote:
    >
    > maybe is important to say how compile apache and modperl ....
    > (it was very difficult):
    >
    >
    > Can you try compiling mod_perl as a shared object? Static module
    > support for mp2 is not as well supported.
    >
    > perl Makefile.PL MP_APXS=/path/to/httpd/apxs
    >
    > I will try it .....
    >
    > mmm.... maybe it is another thread... but I prefer static modper for
    > the next arguments:
    >
    > 1. I guess the static modperl is faster than dynamic .... I know that
    > dynamic is more maintainable that static; for my aplication i
    > require modperl more soon;


    Maybe it is faster, maybe it isn't. Either way, it is very unlikely
    that you would run up against this difference as a bottleneck in your
    application.

    > 2. When modperl is dynamic i had some segment fault when i share objects
    > at the start of apache; when is static i don't have problem ... (maybe
    > i some errors in my code)


    That could be - if you could post those faults and also your startup.pl
    program we may be able to help.

    > there are things that worry me:
    > 1. In my linux distribution (gentoo) there are not any package with
    > static modperl
    >
    > 2. I see that most of the community uses modperl as dynamic ... maybe
    > is it a sign of die the static modperl?


    Building mod_perl as a static module was the defacto standard with
    mod_perl1, just as building as a dynamic module is defacto with
    mod_perl2. I would not try to get caught up in the differences though
    and suggest that you try to get a working build as a dynamically loaded
    module. If you encounter problems there, they will definitely be of
    interest to the rest of us who build mod_perl as a shared object.



    >
    > what is the opinion of community ?
    >
    >
    > greetings
    >



  8. Re: Sleepycat::DbXml problem "httpd: symbol lookup error"

    2008/10/13 Fred Moyer

    > Felipe de Jesús Molina Bravo wrote:
    >
    >>
    >> maybe is important to say how compile apache and modperl ....
    >> (it was very difficult):
    >>
    >>
    >> Can you try compiling mod_perl as a shared object? Static module
    >> support for mp2 is not as well supported.
    >>
    >> perl Makefile.PL MP_APXS=/path/to/httpd/apxs
    >>
    >> I will try it .....
    >>
    >> mmm.... maybe it is another thread... but I prefer static modper for the
    >> next arguments:
    >>
    >> 1. I guess the static modperl is faster than dynamic .... I know that
    >> dynamic is more maintainable that static; for my aplication i require
    >> modperl more soon;
    >>

    >
    > Maybe it is faster, maybe it isn't. Either way, it is very unlikely that
    > you would run up against this difference as a bottleneck in your
    > application.
    >
    > 2. When modperl is dynamic i had some segment fault when i share objects
    >> at the start of apache; when is static i don't have problem ... (maybe i
    >> some errors in my code)
    >>

    >
    > That could be - if you could post those faults and also your startup.pl
    > program we may be able to help.
    >
    > there are things that worry me:
    >> 1. In my linux distribution (gentoo) there are not any package with static
    >> modperl
    >>
    > >

    >
    >> 2. I see that most of the community uses modperl as dynamic ... maybe is
    >> it a sign of die the static modperl?
    >>

    >
    > Building mod_perl as a static module was the defacto standard with
    > mod_perl1, just as building as a dynamic module is defacto with mod_perl2..
    > I would not try to get caught up in the differences though and suggest that
    > you try to get a working build as a dynamically loaded module. If you
    > encounter problems there, they will definitely be of interest to the restof
    > us who build mod_perl as a shared object.
    >
    >
    >
    >
    >
    >> what is the opinion of community ?
    >>
    >>
    >> greetings
    >>

    >

    well.... my problem was resolved with next steps:

    my distribution is gentoo ... i have installed several versions of gcc
    (maybe this cause my problem), then with gcc-config command configure
    default version of gcc to 4.1.2 .... follow the instructions at:
    http://www.gentoo.org/doc/en/gcc-upgrading.xml

    and that's all

    see you


+ Reply to Thread