Mozilla crash and burn?
Alexander Leidinger
Alexander at Leidinger.net
Tue Mar 23 03:15:08 PST 2004
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...
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
More information about the freebsd-gnome
mailing list