Login | Register For Free | Help
Search for: (Advanced)

Mailing List Archive: ModPerl: ModPerl

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

 

 

ModPerl modperl RSS feed   Index | Next | Previous | View Threaded


fjmolinabravo at gmail

Oct 10, 2008, 11:22 AM

Post #1 of 8 (863 views)
Permalink
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::DbXml 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


fred at redhotpenguin

Oct 10, 2008, 11:28 AM

Post #2 of 8 (842 views)
Permalink
Re: Sleepycat::DbXml problem "httpd: symbol lookup error" [In reply to]

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::DbXml 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 <http://libdbxml-2.4.so> =>
> /usr/lib/libdbxml-2.4.so <http://libdbxml-2.4.so> (0xb7b97000)
> libdb_cxx-4.6.so <http://libdb_cxx-4.6.so> =>
> /usr/lib/libdb_cxx-4.6.so <http://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.


fjmolinabravo at gmail

Oct 10, 2008, 11:44 AM

Post #3 of 8 (846 views)
Permalink
Re: Sleepycat::DbXml problem "httpd: symbol lookup error" [In reply to]

2008/10/10 Fred Moyer <fred [at] redhotpenguin>

> 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::DbXml 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 <http://libdbxml-2.4.so> => /usr/lib/
>> libdbxml-2.4.so <http://libdbxml-2.4.so> (0xb7b97000)
>> libdb_cxx-4.6.so <http://libdb_cxx-4.6.so> => /usr/lib/
>> libdb_cxx-4.6.so <http://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?


fjmolinabravo at gmail

Oct 10, 2008, 12:04 PM

Post #4 of 8 (835 views)
Permalink
Re: Sleepycat::DbXml problem "httpd: symbol lookup error" [In reply to]

2008/10/10 Felipe de Jesús Molina Bravo <fjmolinabravo [at] gmail>

>
>
> 2008/10/10 Fred Moyer <fred [at] redhotpenguin>
>
> 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::DbXml 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 <http://libdbxml-2.4.so> => /usr/lib/
>>> libdbxml-2.4.so <http://libdbxml-2.4.so> (0xb7b97000)
>>> libdb_cxx-4.6.so <http://libdb_cxx-4.6.so> => /usr/lib/
>>> libdb_cxx-4.6.so <http://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/seisunix/2005/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


fred at silverliningnetworks

Oct 11, 2008, 5:46 PM

Post #5 of 8 (803 views)
Permalink
Re: Sleepycat::DbXml problem "httpd: symbol lookup error" [In reply to]

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/seisunix/2005/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/


fjmolinabravo at gmail

Oct 13, 2008, 7:46 AM

Post #6 of 8 (807 views)
Permalink
Re: Sleepycat::DbXml problem "httpd: symbol lookup error" [In reply to]

2008/10/11 Fred Moyer <fred [at] silverliningnetworks>

> 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


fred at redhotpenguin

Oct 13, 2008, 12:30 PM

Post #7 of 8 (803 views)
Permalink
Re: Sleepycat::DbXml problem "httpd: symbol lookup error" [In reply to]

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
>


fjmolinabravo at gmail

Oct 22, 2008, 8:48 AM

Post #8 of 8 (722 views)
Permalink
Re: Sleepycat::DbXml problem "httpd: symbol lookup error" [In reply to]

2008/10/13 Fred Moyer <fred [at] redhotpenguin>

> 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
>>
>
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

ModPerl modperl RSS feed   Index | Next | Previous | View Threaded
 
 


Interested in having your list archived? Contact Gossamer Threads
 
  Web Applications & Managed Hosting Powered by Gossamer Threads Inc.