Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 8 Dec 2002 16:52:41 -0600
From:      Sean Kelly <smkelly@zombie.org>
To:        current@freebsd.org
Subject:   Repeatable panic from nautilus2
Message-ID:  <20021208225241.GA8630@edgemaster.zombie.org>

next in thread | raw e-mail | index | archive | help
Whenever x11-fm/nautilus2 starts up and goes to display my home directory
in a window, my kernel panics. This is currently 100% repeatable, but I'm
unable to get a full backtrace because the backtrace is never totally
completed.

While the backtrace is being spit out to my scree from the panic, my system
freezes. It freezes at random times during teh backtrace. Each time it
happens, I'll get different amounts of backtrace before my system is locked
solid. My watchdog patch I posted on -arch a few weeks ago doesn't even
manage to recover it.

I copied down the backtrace by hand, but it might not be too accurate. So
here is my backtrace, with a bit of gdb goodness mixed in.

(I apologize ahead of time for the verbosity of this, but I'm hoping
somebody can make heads or tails of it.)

panic(c03455f2,0,c03455b4,eb,316) at panic+0x95
(kgdb) list *(panic+0x95)
0xc01cbfc5 is in panic (/usr/src/sys/kern/kern_shutdown.c:502).
499     #if defined(DDB)
500             if (newpanic && trace_on_panic)
501                     db_print_backtrace();

lockmgr(c6ddd44c,2,0,c72100e0,e583a920) at lockmgr+0x473
(kgdb) list *(lockmgr+0x473)
0xc01b3063 is in lockmgr (/usr/src/sys/kern/kern_lock.c:443).
440                     if (lkp->lk_lockholder == pid)
441                             panic("lockmgr: draining against myself");
442
443                     error = acquiredrain(lkp, extflags);
444                     if (error)
445                             break;

_vm_map_lock_read(c6ddd410,c035cd8e,a7c,20000ce,0) at _vm_map_lock_read+0x2e
(kgdb) list *(_vm_map_lock_read+0x2a)
0xc02d496a is in _vm_map_lock_read (/usr/src/sys/vm/vm_map.c:386).
381     {
382             int error;
383
384             if (map->system_map)
385                     GIANT_REQUIRED;
386             error = lockmgr(&map->lock, LK_EXCLUSIVE, NULL, curthread);
387             KASSERT(error == 0, ("%s: failed to get lock", __func__));
388     }


vm_map_lookup(e583a9c0,0,2,e583a9c4,e583a9b4) at vm_map_lookup+0x2e
(kgdb) list *(vm_map_lookup+0x2a)
0xc02d79aa is in vm_map_lookup (/usr/src/sys/vm/vm_map.c:2684).
2681             * Lookup the faulting address.
2682             */
2683
2684            vm_map_lock_read(map);
2685    #define RETURN(why) \
2686                    { \
2687                    vm_map_unlock_read(map); \
2688                    return (why); \

vm_fault(c6ddd410,0,2,8,c72100e0) at vm_fault+0xa2
(kgdb) list *(vm_fault+0xa2)
0xc02d0fc2 is in vm_fault (/usr/src/sys/vm/vm_fault.c:214).
213             fs.map = map;
214             result = vm_map_lookup(&fs.map, vaddr, fault_type, &fs.entry,
215                 &fs.first_object, &fs.first_pindex, &prot, &wired);

trap_pfault(e583aa90,0,3e,c0379480,3e) at trap_pfault+0xf2
(kgdb) list *(trap_pfault+0xf2)
0xc0316132 is in trap_pfault (/usr/src/sys/i386/i386/trap.c:734).
733                     /* Fault in the user page: */
734                     rv = vm_fault(map, va, ftype,
735                                   (ftype & VM_PROT_WRITE) ? VM_FAULT_DIRTY
736                                                           : VM_FAULT_NORMAL)
;
trap(18,10,10,0,1b) at trap+0x3a2
(kgdb) list *(trap+0x3a2)
0xc0315da2 is in trap (/usr/src/sys/i386/i386/trap.c:446).
444                     case T_PAGEFLT:                 /* page fault */
445                             (void) trap_pfault(&frame, FALSE, eva);
446                             goto out;

calltrap at calltrap+0x5

--- trap 0xc, eip = 0xc02da109, esp = 0xe583aad0, ebp = 0xe583aad0
vm_object_set_flag(0,1000,805c000,e583ab24,e583ab28) at vm_object_set_flag+0x9
(kgdb) list *(vm_object_set_flag+0x9)
0xc02da109 is in vm_object_set_flag (/usr/src/sys/vm/vm_object.c:271).
268     void
269     vm_object_set_flag(vm_object_t object, u_short bits)
270     {
271             object->flags |= bits;
272     }

vm_uiomove(c6d *freeze*

I wish I had a core to go along with this, but the thing freezes hard
before getting to dumping one. If anybody needs any more data, I'm willing
to provide it. It is rather interesting that I have a 100% repeatability
rate with this.

I've fsck'd all my filesystems, and there is no filesystem brokenness that
could remotely cause this.

Help?!

-- 
Sean Kelly         | PGP KeyID: D2E5E296
smkelly@zombie.org | http://www.zombie.org

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-current" in the body of the message




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