Re: Mozilla crash and burn?

From: Alexander Leidinger (Alexander_at_Leidinger.net)
Date: 03/23/04

  • Next message: Andy Hilker: "CPUTYPE in /etc/make.conf"
    Date: Tue, 23 Mar 2004 12:14:41 +0100
    To: Doug White <dwhite@gumbysoft.com>
    
    

    On Mon, 22 Mar 2004 18:07:54 -0800 (PST)
    Doug White <dwhite@gumbysoft.com> wrote:

    > On Mon, 22 Mar 2004, Russell D. Murphy Jr. wrote:
    >
    > >
    > > Mozilla has been non-functional since I updated my machine on Friday.
    > >
    > > FreeBSD knock.econ.vt.edu 5.2-CURRENT FreeBSD 5.2-CURRENT #0:
    > > Fri Mar 19 05:13:08 EST 2004
    > > root@knock.econ.vt.edu:/usr/obj/usr/src/sys/KNOCK i386
    > >
    > > I've rebuilt mozilla (portupgrade -fRr mozilla), gotten rid of all
    > > plugins and it still dies.
    > >
    > > The symptom is that it starts and opens up the initial window (a
    > > collection of bookmarks - a local file). If I click on one of the
    > > links, the title is displayed in the window frame, the URL is
    > > displayed in the address box, and mozilla claims to be "transferring
    > > data from ...". Then mozilla crashes. No window, no remaining
    > > process.
    >
    > Any output on the terminal you launched mozilla from?

    No. And trying to run mozilla within gdb ("mozilla -g"), doesn't work
    (gdb aborts). I can reproduce it with www.gnomedesktop.org and
    www.invdeo.org.

    I'm building a debug version of mozilla (--enable-debug, --enable-tests,
    --disable-strip) and I get abort traps while building mozilla (this is
    with mozilla-devel, but I've also seen the above mentioned behavior with
    1.6, I reverted to 1.5 a while ago, but decided to give 1.7 a try after
    a resolver, expat and freetype recompile orgy):

    ---snip---
    gmake[4]: Leaving directory `/big/usr/ports/www/mozilla-devel/work/mozilla/secur
    ity/nss/cmd/shlibsign/mangle'
    FreeBSD5.2_DBG.OBJ/shlibsign -v -i /big/usr/ports/www/mozilla-devel/work/mozilla
    /dist/lib/libsoftokn3.so
    Assertion failure: _PT_PTHREAD_MUTEX_IS_LOCKED(lock->mutex), at ptsynch.c:207
    Abort trap (core dumped)
    gmake[3]: *** [/big/usr/ports/www/mozilla-devel/work/mozilla/dist/lib/libsoftokn
    3.chk] Error 134
    gmake[3]: Leaving directory `/big/usr/ports/www/mozilla-devel/work/mozilla/secur
    ity/nss/cmd/shlibsign'
    gmake[2]: *** [libs] Error 2
    gmake[2]: Leaving directory `/big/usr/ports/www/mozilla-devel/work/mozilla/secur
    ity/manager'
    gmake[1]: *** [tier_40] Error 2
    gmake[1]: Leaving directory `/big/usr/ports/www/mozilla-devel/work/mozilla'
    gmake: *** [default] Error 2
    *** Error code 2
    ---snip--

    Running this application within gdb works as intented (no abort), but
    further in the build I get:

    ---snip---
    gmake[1]: Leaving directory `/big/usr/ports/www/mozilla-devel/work/mozilla'
    /usr/bin/sed -e "s|%%PREFIX%%|/usr/X11R6|g" -e "s|%%MOZILLA%%|mozilla-devel|g"
    /big/usr/ports/www/mozilla-devel/files/mozilla.sh >/big/usr/ports/www/mozilla-de
    vel/work/mozilla/mozilla-devel
    (cd /big/usr/ports/www/mozilla-devel/work/mozilla/dist/bin; /usr/bin/env LD_LIB
    RARY_PATH=. MOZILLA_FIVE_HOME=. ./regxpcom; /usr/bin/env LD_LIBRARY_PATH=. MOZI
    LLA_FIVE_HOME=. ./regchrome; /usr/bin/touch ./chrome/user-skins.rdf ./chrome/us
    er-locales.rdf)
    Assertion failure: _PT_PTHREAD_MUTEX_IS_LOCKED(lock->mutex), at ptsynch.c:207
    Abort trap (core dumped)
    *** Error code 134

    # cd /big/usr/ports/www/mozilla-devel/work/mozilla/dist/bin; /usr/bin/env LD_LI
    BRARY_PATH=. MOZILLA_FIVE_HOME=. gdb ./regxpcom; /usr/bin/env LD_LIBRARY_PATH=.
     MOZILLA_FIVE_HOME=. gdb ./regchrome; /usr/bin/touch ./chrome/user-skins.rdf ./
    chrome/user-locales.rdf
    GNU gdb 5.2.1 (FreeBSD)
    Copyright 2002 Free Software Foundation, Inc.

    Starting program: /big/usr/ports/www/mozilla-devel/work/mozilla/xpcom/tools/regi
    stry/regxpcom
    Assertion failure: _PT_PTHREAD_MUTEX_IS_LOCKED(lock->mutex), at ptsynch.c:207

    Program received signal SIGABRT, Aborted.
    0x281d97e7 in kill () from /lib/libc.so.5
    tarting program: /big/usr/ports/www/mozilla-devel/work/mozilla/rdf/chrome/tools/
    chromereg/regchrome
    Assertion failure: _PT_PTHREAD_MUTEX_IS_LOCKED(lock->mutex), at ptsynch.c:207

    Program received signal SIGABRT, Aborted.
    0x2839f7e7 in kill () from /lib/libc.so.5
    (gdb) bt
    #0 0x2839f7e7 in kill () from /lib/libc.so.5
    #1 0x282822e2 in raise () from /usr/lib/libpthread.so.1
    #2 0x283f4a37 in abort () from /lib/libc.so.5
    #3 0x2825951b in PR_Assert () at prlog.c:530
    #4 0x2826892f in PR_Unlock (lock=0x28272b80) at ptsynch.c:207
    #5 0x282613f0 in PR_GetEnv (var=0x28272263 "NSPR_FD_CACHE_SIZE_LOW")
        at prenv.c:80
    #6 0x28255553 in _PR_InitFdCache () at prfdcach.c:259
    #7 0x2826a4d7 in _PR_InitIO () at ptio.c:1153
    #8 0x28261b87 in _PR_InitStuff () at prinit.c:235
    #9 0x282591de in PR_NewLogModule (name=0x2813e5cb "nsTimerImpl")
        at prlog.c:343
    #10 0x28113aec in __static_initialization_and_destruction_0 (__initialize_p=1,
        __priority=65535) at nsTimerImpl.h:52
    #11 0x28113b07 in _GLOBAL__I__ZN11TimerThread6AddRefEv () at nsTimerImpl.h:494
    #12 0x2813e235 in __do_global_ctors_aux () from ./libxpcom.so
    #13 0x280b8242 in _init () from ./libxpcom.so
    #14 0x280517ce in _rtld () from /libexec/ld-elf.so.1
    (gdb) up 5
    #5 0x282613f0 in PR_GetEnv (var=0x28272263 "NSPR_FD_CACHE_SIZE_LOW")
        at prenv.c:80
    80 _PR_UNLOCK_ENV();
    Current language: auto; currently c
    (gdb) list
    75
    76 if (!_pr_initialized) _PR_ImplicitInitialization();
    77
    78 _PR_LOCK_ENV();
    79 ev = _PR_MD_GET_ENV(var);
    80 _PR_UNLOCK_ENV();
    81 return ev;
    82 }
    83
    84 PR_IMPLEMENT(PRStatus) PR_SetEnv(const char *string)
    (gdb) down 1
    #4 0x2826892f in PR_Unlock (lock=0x28272b80) at ptsynch.c:207
    207 PR_ASSERT(_PT_PTHREAD_MUTEX_IS_LOCKED(lock->mutex));
    (gdb) list
    202 PR_IMPLEMENT(PRStatus) PR_Unlock(PRLock *lock)
    203 {
    204 PRIntn rv;
    205
    206 PR_ASSERT(lock != NULL);
    207 PR_ASSERT(_PT_PTHREAD_MUTEX_IS_LOCKED(lock->mutex));
    208 PR_ASSERT(PR_TRUE == lock->locked);
    209 PR_ASSERT(pthread_equal(lock->owner, pthread_self()));
    210
    211 if (!lock->locked || !pthread_equal(lock->owner, pthread_self()))
    (gdb) quit

    #0 0x281d97e7 in kill () from /lib/libc.so.5
    #1 0x280bc2e2 in raise () from /usr/lib/libpthread.so.1
    #2 0x2822ea37 in abort () from /lib/libc.so.5
    #3 0x2809351b in PR_Assert () at prlog.c:530
    #4 0x280a292f in PR_Unlock (lock=0x280acb80) at ptsynch.c:207
    #5 0x2809b3f0 in PR_GetEnv (var=0x280ac263 "NSPR_FD_CACHE_SIZE_LOW")
        at prenv.c:80
    #6 0x2808f553 in _PR_InitFdCache () at prfdcach.c:259
    #7 0x280a44d7 in _PR_InitIO () at ptio.c:1153
    #8 0x2809bb87 in _PR_InitStuff () at prinit.c:235
    #9 0x280969f9 in pr_LoadLibraryByPathname (name=0x804b80a "libxpcom.so",
        flags=671832520) at prlink.c:921
    #10 0x2809698d in PR_LoadLibraryWithFlags (libSpec=
              {type = PR_LibSpec_Pathname, value = {pathname = 0x804b80a "libxpcom.s
    o", mac_named_fragment = {fsspec = 0x804b80a, name = 0x1068310 <Error reading ad
    dress 0x1068310: Bad address>}, mac_indexed_fragment = {fsspec = 0x804b80a, inde
    x = 17203984}}}, flags=33434) at prlink.c:612
    #11 0x0804a331 in XPCOMGlueStartup (xpcomFile=0x0) at nsXPCOMGlue.cpp:108
    #12 0x080491df in startup_xpcom() () at regxpcom.cpp:141
    #13 0x080497de in main (argc=0, argv=0xbfbfeaf8) at regxpcom.cpp:389
    #14 0x08048d14 in _start ()
    (gdb) up 5
    #5 0x2809b3f0 in PR_GetEnv (var=0x280ac263 "NSPR_FD_CACHE_SIZE_LOW")
        at prenv.c:80
    80 _PR_UNLOCK_ENV();
    Current language: auto; currently c
    (gdb) list
    75
    76 if (!_pr_initialized) _PR_ImplicitInitialization();
    77
    78 _PR_LOCK_ENV();
    79 ev = _PR_MD_GET_ENV(var);
    80 _PR_UNLOCK_ENV();
    81 return ev;
    82 }
    83
    84 PR_IMPLEMENT(PRStatus) PR_SetEnv(const char *string)
    (gdb) print ev
    $1 = 0x0
    (gdb) down 1
    #4 0x280a292f in PR_Unlock (lock=0x280acb80) at ptsynch.c:207
    207 PR_ASSERT(_PT_PTHREAD_MUTEX_IS_LOCKED(lock->mutex));
    (gdb) list
    202 PR_IMPLEMENT(PRStatus) PR_Unlock(PRLock *lock)
    203 {
    204 PRIntn rv;
    205
    206 PR_ASSERT(lock != NULL);
    207 PR_ASSERT(_PT_PTHREAD_MUTEX_IS_LOCKED(lock->mutex));
    208 PR_ASSERT(PR_TRUE == lock->locked);
    209 PR_ASSERT(pthread_equal(lock->owner, pthread_self()));
    210
    211 if (!lock->locked || !pthread_equal(lock->owner, pthread_self()))
    (gdb) print lock
    $2 = (PRLock *) 0x280acb80
    (gdb) print *lock
    $3 = {mutex = 0x65737341, notified = {length = 1869182066, cv = {{
            cv = 0x6166206e, times = 1920298089}, {cv = 0x25203a65,
            times = 1629498483}, {cv = 0x73252074, times = 174335290}, {
            cv = 0x6d727000, times = 779116909}, {cv = 0x63, times = 0}, {
            cv = 0x0, times = 0}}, link = 0x0}, locked = 0, owner = 0x746f7270}
    (gdb) up 6
    #10 0x2809698d in PR_LoadLibraryWithFlags (libSpec=
              {type = PR_LibSpec_Pathname, value = {pathname = 0x804b80a "libxpcom.s
    o", mac_named_fragment = {fsspec = 0x804b80a, name = 0x1068310 <Error reading ad
    dress 0x1068310: Bad address>}, mac_indexed_fragment = {fsspec = 0x804b80a, inde
    x = 17203984}}}, flags=33434) at prlink.c:612
    612 return pr_LoadLibraryByPathname(libSpec.value.pathname, flag
    s);
    (gdb) list
    607 if (flags == 0) {
    608 flags = _PR_DEFAULT_LD_FLAGS;
    609 }
    610 switch (libSpec.type) {
    611 case PR_LibSpec_Pathname:
    612 return pr_LoadLibraryByPathname(libSpec.value.pathname, flag
    s);
    613 #ifdef XP_MAC
    614 case PR_LibSpec_MacNamedFragment:
    615 return pr_Mac_LoadNamedFragment(
    616 libSpec.value.mac_named_fragment.fsspec,
    (gdb) print libSpec.value.pathname
    $5 = 0x804b80a "libxpcom.so"
    (gdb) print flags
    $6 = 33434
    (gdb) quit
    ---snip---

    I reviewed:
    ---snip---
    # grep -R _PT_PTHREAD_MUTEX_IS_LOCKED . | grep define
    ./nsprpub/pr/include/md/_pth.h:#define _PT_PTHREAD_MUTEX_IS_LOCKED(m) (0 == p
    thread_mutex_trylock(&(m)))
    ./nsprpub/pr/include/md/_pth.h:#define _PT_PTHREAD_MUTEX_IS_LOCKED(m) (EBUSY
    == pthread_mutex_trylock(&(m)))
    ./nsprpub/pr/include/md/_pth.h:#define _PT_PTHREAD_MUTEX_IS_LOCKED(m) (EBUSY
    == pthread_mutex_trylock(&(m)))
    ./dist/include/nspr/md/_pth.h:#define _PT_PTHREAD_MUTEX_IS_LOCKED(m) (0 == pt
    hread_mutex_trylock(&(m)))
    ./dist/include/nspr/md/_pth.h:#define _PT_PTHREAD_MUTEX_IS_LOCKED(m) (EBUSY =
    = pthread_mutex_trylock(&(m)))
    ./dist/include/nspr/md/_pth.h:#define _PT_PTHREAD_MUTEX_IS_LOCKED(m) (EBUSY =
    = pthread_mutex_trylock(&(m)))
    ./dist/sdk/nspr/include/md/_pth.h:#define _PT_PTHREAD_MUTEX_IS_LOCKED(m) (0 =
    = pthread_mutex_trylock(&(m)))
    ./dist/sdk/nspr/include/md/_pth.h:#define _PT_PTHREAD_MUTEX_IS_LOCKED(m) (EBU
    SY == pthread_mutex_trylock(&(m)))
    ./dist/sdk/nspr/include/md/_pth.h:#define _PT_PTHREAD_MUTEX_IS_LOCKED(m) (EBU
    SY == pthread_mutex_trylock(&(m)))

    # grep -R _PR_LOCK_ENV . | grep define
    ./nsprpub/pr/src/misc/prenv.c:#define _PR_LOCK_ENV()
    ./nsprpub/pr/src/misc/prenv.c:#define _PR_LOCK_ENV() if (_pr_primordialCPU) _PR_
    INTSOFF(_is);
    ./nsprpub/pr/src/misc/prenv.c:#define _PR_LOCK_ENV() { if (_pr_envLock) PR_Lock(
    _pr_envLock); }
    ---snip---

    Unfortunately I haven't found a problem. And I don't know where to look
    further... :-(

    Feel free to make suggestions. I keep the work directory of the port in
    case someone has a clever idea what to try next...

    Bye,
    Alexander.

    -- 
               I will be available to get hired in April 2004.
    http://www.Leidinger.net                       Alexander @ Leidinger.net
      GPG fingerprint = C518 BC70 E67F 143F BE91  3365 79E2 9C60 B006 3FE7
    _______________________________________________
    freebsd-current@freebsd.org mailing list
    http://lists.freebsd.org/mailman/listinfo/freebsd-current
    To unsubscribe, send any mail to "freebsd-current-unsubscribe@freebsd.org"
    

  • Next message: Andy Hilker: "CPUTYPE in /etc/make.conf"

    Relevant Pages

    • Re: Mozilla crash and burn?
      ... On Tue, 2004-03-23 at 06:14, Alexander Leidinger wrote: ... > Abort trap ... > (gdb) bt ... Mozilla works just fine for me. ...
      (freebsd-current)
    • Mozilla bug?
      ... I frequently get crashes in mozilla (sid) when opening links to media files ... I'm not too wellknown with the debian bug ... Anyway, I ran mozilla-bin in gdb, and here's the relevant output: ...
      (Debian-User)
    • Re: 6-STABLE snapshot (background fsck) lock-up
      ... After some amount of time, the system will lock up, presumably hung ... How can I use kgdb to get more debugging information from this? ... there is stuff that can be done with the vmcore. ...
      (freebsd-hackers)
    • Re: 6-STABLE snapshot (background fsck) lock-up
      ... After some amount of time, the system will lock up, presumably hung ... How can I use kgdb to get more debugging information from this? ... there is stuff that can be done with the vmcore. ...
      (freebsd-hackers)
    • [Full-Disclosure] Bug in "lockdev" on Redhat 8.x
      ... Bug in "lockdev" on Redhat 8.x ... The lock is acquired ... GNU gdb Red Hat Linux ...
      (Full-Disclosure)