27 Mar 2010 00:39
libpager deadlock
Samuel Thibault <samuel.thibault <at> gnu.org>
2010-03-26 23:39:19 GMT
2010-03-26 23:39:19 GMT
Hello,
From times to times, ext2fs deadlocks on the pager->interlock mutex.
This is an excerpt of what I could find in the process:
#2 0x08106e59 in memory_object_lock_request ()
#3 0x0806fdeb in _pager_lock_object (p=0x81c97b8, offset=0, size=827392, should_return=2, should_flush=0,
lock_value=8, sync=0) at /var/tmp/hurd-20090404/./libpager/lock-object.c:68
#4 0x0806da18 in pager_sync (p=0x81c97b8, wait=0) at /var/tmp/hurd-20090404/./libpager/pager-sync.c:31
...
#9 0x0805a9ac in periodic_sync (interval=5) at /var/tmp/hurd-20090404/./libdiskfs/sync-interval.c:119
This is the periodic sync, calling memory_object_lock_request() on the
pager. Note that before doing this, _pager_lock_object takes
pager->interlock.
#3 0x08079662 in __mutex_lock_solid (ptr=0x81c97f0) at /var/tmp/hurd-20090404/./libthreads/cprocs.c:955
#4 0x0806f7ff in _pager_do_write_request (object=1305, seqno=413, control=1819, offset=618496,
data=6467584,
length=98304, dirty=1, kcopy=1, initializing=0) at /var/tmp/hurd-20090404/./libpager/data-return.c:174
#5 0x0806f88a in _pager_seqnos_memory_object_data_return (object=1305, seqno=413, control=1819,
offset=618496, data=6467584, length=98304, dirty=1, kcopy=1)
at /var/tmp/hurd-20090404/./libpager/data-return.c:272
#6 0x0806e65e in _Xmemory_object_data_return (InHeadP=0x1, OutHeadP=0x10fbf40) at memory_objectServer.c:837
This is a memory_object_data_return() call from the kernel, trying to
take the pager->interlock mutex, but waiting for the periodic sync
thread to free it.
I don't have the gdb under the hand any more so can't check it for sure,
(Continue reading)
RSS Feed