Re: Mozilla crash and burn?

From: Joe Marcus Clarke <marcus_at_FreeBSD.org>
Date: Tue, 23 Mar 2004 09:03:48 -0500
On Tue, 2004-03-23 at 06:14, Alexander Leidinger wrote:
> On Mon, 22 Mar 2004 18:07:54 -0800 (PST)
> Doug White <dwhite_at_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_at_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...

Me, either.  Mozilla works just fine for me.  I've never seen any of the
crashes you describe.  The URLs you mentioned above work fine for me (I
go to GnomeDesktop a lot).  I'm running -CURRENT from yesterday with all
debugging disabled.  Perhaps this is something triggered by WITNESS...

Joe

> 
> Bye,
> Alexander.
-- 
Joe Marcus Clarke
FreeBSD GNOME Team	::	marcus_at_FreeBSD.org
gnome_at_FreeBSD.org
FreeNode / #freebsd-gnome
http://www.FreeBSD.org/gnome


Received on Tue Mar 23 2004 - 05:03:25 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:37:48 UTC