Hello Daniel,
On Mon, Apr 22, 2013 at 04:09:51PM -0400, Daniel Kahn Gillmor wrote:
> On 04/22/2013 02:11 PM, Guido Günther wrote:
> > Could you check if enigmal (or any other not icedove related extension)
> > shows up?
>
> I thought maybe i should look for shared objects, since that's part of
> the current enigmail implementation, but these are the only references
> to '\.so' files in the backtrace:
>
> from /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
> from /usr/lib/x86_64-linux-gnu/libevent-2.0.so.5
> from /usr/lib/x86_64-linux-gnu/libevent-2.0.so.5
> #90 0x00007ffff459cd6f in SharedStub () from /usr/lib/icedove/libxul.so
> exePath = "/usr/lib/icedove/\000ibxpcom.so", '\000' <repeats 68
> times>, ...
>
> i would have thought that
> /usr/lib/xul-ext/enigmail/platform/Linux_x86_64-gcc3/lib/libsubprocess-x86_64-gcc3.so
> or
> /usr/lib/xul-ext/enigmail/platform/Linux_x86_64-gcc3/components/libenigmime-x86_64-gcc3.so
> would have shown up here if enigmail was involved.
>
> there is no "enig" in the backtrace at all. however, looking at the
> code from the relevant backtrace, it really does look like it's stuff
> that happens after a child process terminates, so maybe enigmail isn't
> in the loop by that point.
>
> Anything else i should look for?
it's some time gone after this mail from you. The current Icedove
version 24.3.0-2 has a fixed LDFLAGS variable. We had include
'-Wl,--as-needed' which broke libraries dependencies while linking. So
maybe theese crashes are also possibly gone.
On the other hand the code line and function that shown in the gdb logs
are from the nspr thing and normaly should't depend on the fixed linker
option I think.
mozilla/nsprpub/pr/src/md/unix/uxproces.c
507 static void
508 ProcessReapedChildInternal(pid_t pid, int status)
509 {
510 pr_PidRecord *pRec;
511
512 pRec = FindPidTable(pid);
513 if (NULL == pRec) {
514 pRec = PR_NEW(pr_PidRecord);
515 pRec->pid = pid;
516 pRec->state = _PR_PID_REAPED;
517 pRec->exitStatus = ExtractExitStatus(status);
518 pRec->reapedCV = NULL;
519 InsertPidTable(pRec);
520 } else {
521 PR_ASSERT(pRec->state != _PR_PID_REAPED); <----
522 if (_PR_PID_DETACHED == pRec->state) {
523 PR_ASSERT(NULL == pRec->reapedCV);
524 DeletePidTable(pRec);
525 PR_DELETE(pRec);
526 } else {
527 PR_ASSERT(_PR_PID_WAITING == pRec->state);
528 PR_ASSERT(NULL != pRec->reapedCV);
529 pRec->exitStatus = ExtractExitStatus(status);
530 pRec->state = _PR_PID_REAPED;
531 PR_NotifyCondVar(pRec->reapedCV);
532 }
533 }
534 }
As far as I can see the PR_ASSERT comes from
mozilla/nsprpub/pr/include/prlog.h, but this header is for debugging
stuff.
206 #define PR_ASSERT(_expr) \
207 ((_expr)?((void)0):PR_Assert(# _expr,__FILE__,__LINE__))
Regards
Carsten
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]