Skip site navigation (1)Skip section navigation (2)
Date:      09 May 2003 20:16:28 -0400
From:      Joe Marcus Clarke <marcus@marcuscom.com>
To:        current@freebsd.org
Subject:   Bug on libc_r?
Message-ID:  <1052525788.89237.8.camel@shumai.marcuscom.com>

next in thread | raw e-mail | index | archive | help

--=-NBq6O8G1s4gB1WTBYrH+
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

Users testing the GNOME 2.3.x snapshots recently ran into a strange
crash in Nautilus.  I updated my own -CURRENT machine, and found the
problem is quite reproduceable.  I'm still trying to track down why this
suddenly started happening, but it looks like there might be a bug in
libc_r on -CURRENT.  This problem is not seen on -STABLE with the same
version of Nautilus and dependent libraries.

The version of -CURRENT in question is:

FreeBSD jclarke-pc.cisco.com 5.1-BETA FreeBSD 5.1-BETA #15: Thu May  8
12:45:49 EDT 2003   =20
marcus@jclarke-pc.cisco.com:/usr/obj/usr/src/sys/JCLARKE-PC  i386

The stack trace with thread locking debugging enabled is:

Program received signal SIGSEGV, Segmentation fault.
_atomic_lock () at {standard input}:15
15      {standard input}: No such file or directory.
        in {standard input}
Current language:  auto; currently asm
#0  _atomic_lock () at {standard input}:15
#1  0x28de9f44 in _spinlock_debug (lck=3D0x28a15678,
    fname=3D0x1 <Error reading address 0x1: Bad address>,
lineno=3D-1078989016)
    at /usr/src/lib/libc_r/uthread/uthread_spinlock.c:110
#2  0x28defbf4 in mutex_unlock_common (mutex=3D0x28a15678,
add_reference=3D1)
    at /usr/src/lib/libc_r/uthread/uthread_mutex.c:851
#3  0x28defa89 in _mutex_cv_unlock (mutex=3D0x1)
    at /usr/src/lib/libc_r/uthread/uthread_mutex.c:756
#4  0x28df4ae1 in _pthread_cond_wait (cond=3D0x28a15678, mutex=3D0x28a15678=
)
    at /usr/src/lib/libc_r/uthread/uthread_cond.c:254
#5  0x28df4c4e in __pthread_cond_wait (cond=3D0x1, mutex=3D0x1)
    at /usr/src/lib/libc_r/uthread/uthread_cond.c:343
#6  0x28d46595 in pthread_cond_wait () from /usr/lib/libc.so.5
#7  0x28a05a98 in gnome_vfs_thread_pool_wait_for_work (state=3D0x8400560)
    at gnome-vfs-thread-pool.c:152
#8  0x28a05af3 in thread_entry (cast_to_state=3D0x8400560)
    at gnome-vfs-thread-pool.c:172
#9  0x28b0acb2 in g_thread_create_proxy ()
   from /usr/local/lib/libglib-2.0.so.200
#10 0x28de848e in _thread_start ()
    at /usr/src/lib/libc_r/uthread/uthread_create.c:275

With thread locking debugging disabled, I get:

Program received signal SIGSEGV, Segmentation fault.
_atomic_lock () at {standard input}:15
15      {standard input}: No such file or directory.
        in {standard input}
Current language:  auto; currently asm
(gdb) bt
#0  _atomic_lock () at {standard input}:15
#1  0x28de9ba9 in _spinlock (lck=3D0x3957c)
    at /usr/src/lib/libc_r/uthread/uthread_spinlock.c:71
#2  0x28def742 in mutex_unlock_common (mutex=3D0x28a15678,
add_reference=3D1)
    at /usr/src/lib/libc_r/uthread/uthread_mutex.c:851
#3  0x28def5e9 in _mutex_cv_unlock (mutex=3D0x1)
    at /usr/src/lib/libc_r/uthread/uthread_mutex.c:756
#4  0x28df430f in _pthread_cond_wait (cond=3D0x28a15678, mutex=3D0x28a15678=
)
    at /usr/src/lib/libc_r/uthread/uthread_cond.c:254
#5  0x28df446e in __pthread_cond_wait (cond=3D0x1, mutex=3D0x1)
    at /usr/src/lib/libc_r/uthread/uthread_cond.c:343
#6  0x28d46595 in pthread_cond_wait () from /usr/lib/libc.so.5
#7  0x28a05a98 in gnome_vfs_thread_pool_wait_for_work (state=3D0x8400560)
    at gnome-vfs-thread-pool.c:152
#8  0x28a05af3 in thread_entry (cast_to_state=3D0x8400560)
    at gnome-vfs-thread-pool.c:172
#9  0x28b0acb2 in g_thread_create_proxy ()
   from /usr/local/lib/libglib-2.0.so.200
#10 0x28de82fe in _thread_start ()
    at /usr/src/lib/libc_r/uthread/uthread_create.c:275
(gdb) frame 1
#1  0x28de9ba9 in _spinlock (lck=3D0x3957c)
    at /usr/src/lib/libc_r/uthread/uthread_spinlock.c:71
71                      _thread_kern_sched_state(PS_SPINBLOCK, __FILE__,
__LINE__);
Current language:  auto; currently c
(gdb) print lck
$1 =3D (struct {...} *) 0x3957c
(gdb) print *lck
Error accessing memory address 0x3957c: Bad address.

Any idea if this is something in the GNOME stuff or in libc_r itself?=20
Thanks.

Joe

--=20
PGP Key : http://www.marcuscom.com/pgp.asc

--=-NBq6O8G1s4gB1WTBYrH+
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.2 (FreeBSD)

iD8DBQA+vETcb2iPiv4Uz4cRAqdpAKCpu1Q9NPoyg/G3guDQBQZSrYRVuwCffDjf
WUhtUNeweNkUxJC54atxz48=
=XQbF
-----END PGP SIGNATURE-----

--=-NBq6O8G1s4gB1WTBYrH+--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1052525788.89237.8.camel>