bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bash cores if nscd disabled on Solaris LDAP sasl/gssapi client


From: Serge Dussud
Subject: Re: bash cores if nscd disabled on Solaris LDAP sasl/gssapi client
Date: Mon, 06 Oct 2008 17:01:59 +0200
User-agent: Thunderbird 2.0.0.14 (X11/20080505)


Hi Chet,

thanks for the quick answer. More in-line:

On 10/ 3/08 10:52 PM, Chet Ramey wrote:
Serge Dussud - Sun Microsystems wrote:
Hello bug-bash,

please find attached a bashbug report. I am not sure how to follow-up
then, could you advise ?

This is the appropriate venue for these reports.  I have a few questions

OK.

about this one.

1.  The trace shows that the process is not, in fact, using the bash
    malloc when it dies.  The traced _malloc_unlocked and cleanfree
    functions are not in the bash malloc, but are present in libc.

 ff137068 sigacthandler (efe08, f7065555, 0, f8ca0, 0, 0)
 --- called from signal handler with signal 982536 (SIG Unknown) ---
 ff0e62a4 cleanfree (0, 8, ff1e64f8, ff1de63c, f83ec, 2) + 58
 ff0e53d8 _malloc_unlocked (20, f7065554, efe00, f7065555, ff1e0468,
ffffffdf) + 104
 ff0e52b8 malloc   (20, 0, 1, ff1de63c, f93c8, ff1e4864) + 48

I saw that, still, when I tried to analyze the core some while back, I had the feeling that debugger (mdb at the time ?) was confused with these malloc routines. That's when I realized about the malloc bash internal routines and tried compiling with --witthou-bash-malloc.


2.  What library installs the `sigacthandler'?  It's not a function in
    bash.  It is a symbol in libc, but there's no indication which
    library installs it as a signal handler.


I have just tried psig on on running bash (in another config), and see that the function that set signals handler for SIGV is indeed:

bash-3.2# pgrep bash
16384
bash-3.2# psig 16384 | grep "^SEGV"
SEGV blocked,caught termsig_sighandler 0 HUP,INT,ILL,TRAP,ABRT,EMT,FPE,BUS,SEGV,SYS,PIPE,ALRM,TERM,USR1,USR2,VTALRM,XCPU,XFSZ,LOST
bash-3.2#

termsig_sighandler() is part bash source code (sig.c) if I am not mistaken.


3.  What does the traceback look like when bash is run under gdb and
    allowed to fail?

I suspect that the libraries are pre-bound to use the system's malloc,
and the calls to different malloc libraries are causing the core dumps.
Another possibility is that libc functions are using private pseudo-
global libc malloc interfaces, causing the libc malloc to be linked in.
Either way, the trace and library load address maps indicate that the
process is dying in the libc malloc.  One way to confirm my suspicion
is to start bash under gdb, set a breakpoint in malloc, and see where
it stops.

OK, I'll try that and come back to you.

Thanks,
Serge


If it's documented that applications on Solaris may no longer link
with their own versions of malloc, that's fine -- I can arrange things
so that bash doesn't try to use it's internal malloc on Solaris 10
and 11.

Chet




reply via email to

[Prev in Thread] Current Thread [Next in Thread]