A threading deadlock in perl's C code -- that's a perl bug ;)

--j.

SZALAY Attila writes:
> Hi All!
> 
> I don't know if the problem is in spamassassin or perl or both but I
> have a bad experience with spamassassin. And this problems have occured
> when I upgraded spamassassin from 3.0.3-2sarge1 to 3.1.7-1~bpo.1.
> 
> And it's look like if nothing else is changed.
> 
> I use pyzor and razor.
> 
> (gdb) bt
> #0  0x40046604 in __pthread_sigsuspend (set=0x4004cd00) at 
> ../linuxthreads/sysdeps/unix/sysv/linux/pt-sigsuspend.c:54
> #1  0x400463c8 in __pthread_wait_for_restart_signal (self=0x4004bf20) at 
> pthread.c:1203
> #2  0x40047d99 in __pthread_alt_lock (lock=0x401bf350, self=0x4004bf20) at 
> restart.h:34
> #3  0x40044ba5 in *__GI___pthread_mutex_lock (mutex=0x401bf340) at mutex.c:123
> #4  0x40100262 in __libc_realloc (oldmem=0x9f82ad8, bytes=56) at malloc.c:3434
> #5  0x080aa290 in Perl_safesysrealloc ()
> #6  0x080c5b28 in Perl_sv_grow ()
> #7  0x080ca093 in Perl_sv_setpvn ()
> #8  0x080ebb96 in Perl_die_where ()
> #9  0x080abb93 in Perl_vdie ()
> #10 0x080abde5 in Perl_die ()
> #11 0x080f2ea1 in Perl_pp_die ()
> #12 0x080bbd69 in Perl_runops_standard ()
> #13 0x080640c9 in Perl_call_sv ()
> #14 0x08063ec1 in Perl_call_sv ()
> #15 0x080b4b27 in Perl_sighandler ()
> #16 0x40049825 in __pthread_sighandler (signo=14, ctx=
>       {gs = 0, __gsh = 0, fs = 0, __fsh = 0, es = 43, __esh = 0, ds = 43, 
> __dsh = 0, edi = 166750360, esi = 1075573568, ebp = 3221224072, esp = 
> 3221224060, ebx = 1074056448, edx = 1075573584, ecx = 72, eax = 1075573584, 
> trapno = 0, err = 0, eip = 1074036598, cs = 35, __csh = 0, eflags = 582, 
> esp_at_signal = 3221224060, ss = 43, __ssh = 0, fpstate = 0xbffff800, oldmask 
> = 2147483648, cr2 = 0}) at sighandler.c:39
> #17 <signal handler called>
> #18 0x40047f76 in __pthread_alt_unlock (lock=0x401bf350) at spinlock.c:515
> #19 0x40044d7a in *__GI___pthread_mutex_unlock (mutex=0x401bf340) at 
> mutex.c:199
> #20 0x400fff52 in __libc_malloc (bytes=24) at malloc.c:3319
> #21 0x080aa1bf in Perl_safesysmalloc ()
> #22 0x080cad32 in Perl_sv_magicext ()
> #23 0x080caf8c in Perl_sv_magic ()
> #24 0x080d0463 in Perl_sv_taint ()
> #25 0x080ce759 in Perl_sv_mortalcopy ()
> #26 0x080ed5fc in Perl_pp_return ()
> #27 0x080bbd69 in Perl_runops_standard ()
> #28 0x080635e8 in perl_run ()
> #29 0x080633f5 in perl_run ()
> #30 0x0805fb9f in main ()
> 
> The main problem is obvious, calling realloc from signal handler is not
> safe but I don't know who do this.
> 
> Is this a known problem?
> Which one I have to upgrade? Perl or spamassassin? May I disable pyzor
> and razor?

Reply via email to