improper handling of dlpened's C++/atexit() code?

Alexander Kabaev kabaev at gmail.com
Sun May 21 15:19:18 PDT 2006


On Sun, 21 May 2006 13:13:35 -0400
"m m" <needacoder at gmail.com> wrote:

> Any hints on this available?  Suggestions, more info, anything else?
> 
> On 5/15/06, m m <needacoder at gmail.com> wrote:
> > On 5/14/06, Alexander Kabaev <kabaev at gmail.com> wrote:
> > > On Thu, 11 May 2006 20:57:20 -0400
> > > "m m" <needacoder at gmail.com> wrote:
> > >
> > > >  I am writing in regard to PR at
> > > > http://www.freebsd.org/cgi/query-pr.cgi?pr=bin%2F59552 .  I am
> > > > experiencing behavior on 6.1-PRERELEASE FreeBSD 6.1-PRERELEASE
> > > > #11: Sun Mar 26 00:03:52 EST 2006 which looks a lot like
> > > > something that would be caused by this PR. This happens when
> > > > apache-1.3 processes that run with Mason code receive a SIGUSR1
> > > > (when newsyslog does log rotation) and apache gracefully kills
> > > > off all processes when restarting.  The following is the stack
> > > > trace that lead me to this PR:
> > > You'll need to build ld-elf.so.1 and libc.so.6 to get a sensible
> > > backtrace.
> >
> > Please find the new stack trace below.  If there is more
> > information I can provide, just ask.  (This is 6.1-STABLE, cvsup
> > very shortly before May 11 23:14 EDT)
> >
> > Program received signal SIGSEGV, Segmentation fault.
> > 0x00000000 in ?? ()
> > (gdb) bt
> > #0  0x00000000 in ?? ()
> > #1  0x294c0ad8 in __do_global_dtors_aux () from
> > /usr/local/lib/perl5/5.8.8/mach/auto/Sys/Syslog/Syslog.so
> > #2  0x294c1d4c in _fini () from
> > /usr/local/lib/perl5/5.8.8/mach/auto/Sys/Syslog/Syslog.so
> > #3  0x280b4c80 in ?? ()
> > #4  0x280aaab8 in ?? () from /libexec/ld-elf.so.1
> > #5  0xbfbfe6e8 in ?? ()
> > #6  0x2808dca6 in objlist_call_fini (list=0x280a96d8) at
> > /usr/src/libexec/rtld-elf/rtld.c:1336
> > #7  0x2808e1d4 in rtld_exit ()
> > at /usr/src/libexec/rtld-elf/rtld.c:1528 #8  0x281d58ea in
> > __cxa_finalize (dso=0x0) at /usr/src/lib/libc/stdlib/atexit.c:184
> > #9  0x281d55ba in exit (status=0)
> > at /usr/src/lib/libc/stdlib/exit.c:69 #10 0x0805d0cb in
> > clean_child_exit () #11 0x0805ea77 in just_die ()
> > #12 0x0805ea9a in usr1_handler ()
> > #13 0xbfbfffb4 in ?? ()
> > #14 0x0000001e in ?? ()
> > #15 0x00000000 in ?? ()
> > #16 0xbfbfe7c0 in ?? ()
> > #17 0x00000002 in ?? ()
> > #18 0x0805ea80 in just_die ()
> > #19 0x0806011e in child_main ()
> > #20 0x080607de in make_child ()
> > #21 0x08060868 in startup_children ()
> > #22 0x08060e81 in standalone_main ()
> > #23 0x08061702 in main ()
> >
Looks like normal atexit path to me. At this point a close look at
Syslog.so is needed IMHO. I do not see anything criminal implicating
FreeBSD in this crash in any way.

-- 
Alexander Kabaev
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-stable/attachments/20060521/387b8db5/signature.pgp


More information about the freebsd-stable mailing list