http://qs1969.pair.com?node_id=524464

jithoosin has asked for the wisdom of the Perl Monks concerning the following question:

Hi monks,

I am using perlembed ( calling perl function from inside C code) and this was working correctly in until i shifted the code to a new linux machine. I am getting segmentation fault (0x00aab049 in _int_free () from /lib/tls/libc.so.6).


Let me be frank and tell you that i am engineering college student and i certainly know this perlMonk forums is not a place to do homeworks. I tried my best to solve the problem,but i failed . Actually the new machine is the one at my college. In my home machine it is working correctly.


Both linux machines have same perl version(5.8.0). Then i doubted that error was in libperl.so in the new linux machine(1.2MB) as it was half the size of libperl.so in my home machine(2.5MB). Then i copied libperl.so from college machine to home machine.But to my astonishment it worked correctly again at my home machine.Could any one tell what the error is in the linux machine at my college.I got following info when i gave a "bt" in "gdb" debugger.
0x00aab049 in _int_free () from /lib/tls/libc.so.6 #1 0x00aa9ff8 in free () from /lib/tls/libc.so.6 #2 0x00f47145 in Perl_safesysfree () from /usr/lib/perl5/5.8.0/i386-l +inux-thread-multi/CORE/libperl.so #3 0x00f6ce5f in Perl_sv_clear () from /usr/lib/perl5/5.8.0/i386-linu +x-thread-multi/CORE/libperl.so #4 0x00f6d5d4 in Perl_sv_free () from /usr/lib/perl5/5.8.0/i386-linux +-thread-multi/CORE/libperl.so #5 0x00f4d452 in Perl_mg_free () from /usr/lib/perl5/5.8.0/i386-linux +-thread-multi/CORE/libperl.so #6 0x00f6cfe1 in Perl_sv_clear () from /usr/lib/perl5/5.8.0/i386-linu +x-thread-multi/CORE/libperl.so #7 0x00f6d5d4 in Perl_sv_free () from /usr/lib/perl5/5.8.0/i386-linux +-thread-multi/CORE/libperl.so #8 0x00f6cc03 in Perl_sv_clear () from /usr/lib/perl5/5.8.0/i386-linu +x-thread-multi/CORE/libperl.so #9 0x00f6d5d4 in Perl_sv_free () from /usr/lib/perl5/5.8.0/i386-linux +-thread-multi/CORE/libperl.so #10 0x00f4d452 in Perl_mg_free () from /usr/lib/perl5/5.8.0/i386-linux +-thread-multi/CORE/libperl.so #11 0x00f6cfe1 in Perl_sv_clear () from /usr/lib/perl5/5.8.0/i386-linu +x-thread-multi/CORE/libperl.so #12 0x00f6d5d4 in Perl_sv_free () from /usr/lib/perl5/5.8.0/i386-linux +-thread-multi/CORE/libperl.so #13 0x00f89051 in Perl_free_tmps () from /usr/lib/perl5/5.8.0/i386-lin +ux-thread-multi/CORE/libperl.so #14 0x00f5afd8 in Perl_pp_nextstate () from /usr/lib/perl5/5.8.0/i386- +linux-thread-multi/CORE/libperl.so #15 0x00f4682a in Perl_runops_debug () from /usr/lib/perl5/5.8.0/i386- +linux-thread-multi/CORE/libperl.so #16 0x00efb759 in Perl_call_sv () from /usr/lib/perl5/5.8.0/i386-linux +-thread-multi/CORE/libperl.so #17 0x00efb3e3 in Perl_call_sv () from /usr/lib/perl5/5.8.0/i386-linux +-thread-multi/CORE/libperl.so #18 0x00f6d1a6 in Perl_sv_clear () from /usr/lib/perl5/5.8.0/i386-linu +x-thread-multi/CORE/libperl.so #19 0x00f6d5d4 in Perl_sv_free () from /usr/lib/perl5/5.8.0/i386-linux +-thread-multi/CORE/libperl.so #20 0x00f6cc03 in Perl_sv_clear () from /usr/lib/perl5/5.8.0/i386-linu +x-thread-multi/CORE/libperl.so #21 0x00f6d5d4 in Perl_sv_free () from /usr/lib/perl5/5.8.0/i386-linux +-thread-multi/CORE/libperl.so #22 0x00f569c7 in Perl_hv_free_ent () from /usr/lib/perl5/5.8.0/i386-l +inux-thread-multi/CORE/libperl.so #23 0x00f56c5b in Perl_hv_clear () from /usr/lib/perl5/5.8.0/i386-linu +x-thread-multi/CORE/libperl.so #24 0x00f56cc2 in Perl_hv_undef () from /usr/lib/perl5/5.8.0/i386-linu +x-thread-multi/CORE/libperl.so #25 0x00f6cf57 in Perl_sv_clear () from /usr/lib/perl5/5.8.0/i386-linu +x-thread-multi/CORE/libperl.so #26 0x00f6d5d4 in Perl_sv_free () from /usr/lib/perl5/5.8.0/i386-linux +-thread-multi/CORE/libperl.so #27 0x00f6cc03 in Perl_sv_clear () from /usr/lib/perl5/5.8.0/i386-linu +x-thread-multi/CORE/libperl.so #28 0x00f6d5d4 in Perl_sv_free () from /usr/lib/perl5/5.8.0/i386-linux +-thread-multi/CORE/libperl.so #29 0x00f569c7 in Perl_hv_free_ent () from /usr/lib/perl5/5.8.0/i386-l +inux-thread-multi/CORE/libperl.so #30 0x00f56c5b in Perl_hv_clear () from /usr/lib/perl5/5.8.0/i386-linu +x-thread-multi/CORE/libperl.so #31 0x00f56cc2 in Perl_hv_undef () from /usr/lib/perl5/5.8.0/i386-linu +x-thread-multi/CORE/libperl.so #32 0x00f6cf57 in Perl_sv_clear () from /usr/lib/perl5/5.8.0/i386-linu +x-thread-multi/CORE/libperl.so #33 0x00f6d5d4 in Perl_sv_free () from /usr/lib/perl5/5.8.0/i386-linux +-thread-multi/CORE/libperl.so #34 0x00f720e2 in Perl_sv_unref_flags () from /usr/lib/perl5/5.8.0/i38 +6-linux-thread-multi/CORE/libperl.so #35 0x00f6b54a in Perl_sv_force_normal_flags () from /usr/lib/perl5/5. +8.0/i386-linux-thread-multi/CORE/libperl.so #36 0x00f8ad38 in Perl_leave_scope () from /usr/lib/perl5/5.8.0/i386-l +inux-thread-multi/CORE/libperl.so #37 0x00f88ebc in Perl_pop_scope () from /usr/lib/perl5/5.8.0/i386-lin +ux-thread-multi/CORE/libperl.so #38 0x00f91a38 in Perl_pp_return () from /usr/lib/perl5/5.8.0/i386-lin +ux-thread-multi/CORE/libperl.so #39 0x00f4682a in Perl_runops_debug () from /usr/lib/perl5/5.8.0/i386- +linux-thread-multi/CORE/libperl.so #40 0x00efb759 in Perl_call_sv () from /usr/lib/perl5/5.8.0/i386-linux +-thread-multi/CORE/libperl.so #41 0x00efb617 in Perl_call_sv () from /usr/lib/perl5/5.8.0/i386-linux +-thread-multi/CORE/libperl.so #42 0x00efadd4 in Perl_call_pv () from /usr/lib/perl5/5.8.0/i386-linux +-thread-multi/CORE/libperl.so #43 0x0806f7fe in ParseTags ( htmfile=0x8d288c8 "<html>\r\n <head>\r\n <meta http-equiv=\ +"refresh\" content=\"0;url=EN/index.html\">\r\n</head><body>\r\n </ +body>\r\n</html>", pParent=0x8cf2f88) at httpsock.c:3879 #44 0x0806eb5b in ExtractTags (htmfile=0xbfff7580 "/home/mug/public_ht +ml/reports/w/001/019/0709/09-06325/1/p1.htm", buf=0x8d288c8 "<html>\r\n <head>\r\n <meta http-equiv=\"ref +resh\" content=\"0;url=EN/index.html\">\r\n</head><body>\r\n </body +>\r\n</html>", pParent=0x8cf2f88) at httpsock.c:3615 #45 0x0806e844 in ProcessFile (pURL=0x8cf2f88) at httpsock.c:3511 #46 0x0806a07c in cgiMain () at httpsock.c:1121 #47 0x0808ae71 in main ()

Edited by planetscape - added readmore tags

Replies are listed 'Best First'.
Re: perlembed - error in _int_free () from /lib/tls/libc.so.6
by polettix (Vicar) on Jan 20, 2006 at 18:08 UTC
    Are you simply transferring binaries or are you recompiling your application in both environments? Could you provide a closer look to the environments themselves (e.g. the output of "uname -a" would be a good start)?

    You'll also notice that the offending library is /lib/tls/libc.so.6, so the perl lib stuff doesn't surprise me very much.

    Flavio
    perl -ple'$_=reverse' <<<ti.xittelop@oivalf

    Don't fool yourself.