Date: Tue, 24 Sep 2002 23:35:00 +0300 From: Giorgos Keramidas <keramida@ceid.upatras.gr> To: current@FreeBSD.org Subject: "Strange" crash dump data. Message-ID: <20020924203500.GA795@hades.hell.gr>
next in thread | raw e-mail | index | archive | help
I left my FreeBSD-current workstation at home running for a few hours, and returned to find the configured "snake" saver running. When I pressed "Shift" to get the screen saver to stop, the console went blank and stopped updating. I broke into DDB and used "panic" to stop everything (mostly a couple of compiles in /usr/ports running). The resulting crash dump seems strange though :-/ Looking at the code, I'd expect atkbd_isa_intr() to be called with a non-NULL pointer as its only argument. The debugger shows that this isn't the case though. Look for the lines that start with >>> for comments that I've added to the script log. %%% Script started on Tue Sep 24 21:02:44 2002 root@hades[21:03]/var/crash# gdb -k /usr/obj/usr/src/sys/HADES5/kernel.debug vmcore.0 GNU gdb 5.2.0 (FreeBSD) 20020627 Copyright 2002 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you are welcome to change it and/or distribute copies of it under certain conditions. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "i386-undermydesk-freebsd"... panic: bwrite: buffer is not busy??? panic messages: --- panic: from debugger syncing disks... panic: bwrite: buffer is not busy??? Uptime: 33m43s Dumping 64 MB ata0: resetting devices .. done 16 32 48 --- #0 doadump () at /usr/src/sys/kern/kern_shutdown.c:223 223 dumping++; (kgdb) bt #0 doadump () at /usr/src/sys/kern/kern_shutdown.c:223 #1 0xc01d2b1c in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:355 #2 0xc01d2cf0 in poweroff_wait (junk=0xc033086b, howto=-1038164136) at /usr/src/sys/kern/kern_shutdown.c:508 #3 0xc020aedd in bwrite (bp=0x104) at /usr/src/sys/kern/vfs_bio.c:798 #4 0xc020c245 in vfs_bio_awrite (bp=0xc21edeb0) at /usr/src/sys/kern/vfs_bio.c:1639 #5 0xc01a89d8 in spec_fsync (ap=0xc5b1aa10) at /usr/src/sys/fs/specfs/spec_vnops.c:406 #6 0xc01a85b7 in spec_vnoperate (ap=0x0) at /usr/src/sys/fs/specfs/spec_vnops.c:124 #7 0xc02b38a8 in ffs_sync (mp=0xc0f32800, waitfor=2, cred=0xc06ade80, td=0xc037d580) at vnode_if.h:615 #8 0xc021b3f4 in sync (td=0xc037d580, uap=0x0) at /usr/src/sys/kern/vfs_syscalls.c:130 #9 0xc01d2759 in boot (howto=256) at /usr/src/sys/kern/kern_shutdown.c:264 #10 0xc01d2cf0 in poweroff_wait (junk=0xc031a5a8, howto=-978211964) at /usr/src/sys/kern/kern_shutdown.c:508 #11 0xc0140b61 in db_panic () at /usr/src/sys/ddb/db_command.c:449 #12 0xc0140b00 in db_command (last_cmdp=0xc035d760, cmd_table=0xc031a5a8, aux_cmd_tablep=0xc06bc180, aux_cmd_tablep_end=0x100) at /usr/src/sys/ddb/db_command.c:345 #13 0xc0140bcf in db_command_loop () at /usr/src/sys/ddb/db_command.c:471 #14 0xc01430be in db_trap (type=3, code=0) at /usr/src/sys/ddb/db_trap.c:72 #15 0xc02ecf92 in kdb_trap (type=3, code=0, regs=0xc5b1ac20) at /usr/src/sys/i386/i386/db_interface.c:166 #16 0xc02fbb88 in trap (frame= {tf_fs = -1069678568, tf_es = -978255856, tf_ds = 16, tf_edi = -1069627712, tf_esi = -1069708480, tf_ebp = -978211740, tf_isp = -978211764, tf_ebx = 0, tf_edx = 0, tf_ecx = -1069781504, tf_eax = 38, tf_trapno = 3, tf_err = 0, tf_eip = -1070673419, tf_cs = -1070333944, tf_eflags = 662, tf_esp = 0, tf_ss = -978211668}) at /usr/src/sys/i386/i386/trap.c:605 #17 0xc02ee3a8 in calltrap () at /var/tmp/ccn56iVL.s:98 #18 0xc02e9dac in scgetc (sc=0xc03ec6c0, flags=2) at /usr/src/sys/dev/syscons/syscons.c:3301 #19 0xc02e6148 in sckbdevent (thiskbd=0xc03c7180, event=0, arg=0xc03ec6c0) at /usr/src/sys/dev/syscons/syscons.c:622 #20 0xc02d9b14 in atkbd_intr (kbd=0xc03c7180, arg=0x0) at /usr/src/sys/dev/kbd/atkbd.c:458 #21 0xc03048aa in atkbd_isa_intr (arg=0x0) at /usr/src/sys/isa/atkbd_isa.c:175 #22 0xc01c2560 in ithread_loop (arg=0xc06b0900) at /usr/src/sys/kern/kern_intr.c:534 #23 0xc01c17a9 in fork_exit (callout=0xc01c23ec <ithread_loop>, arg=0xc06b0900, frame=0xc5b1ad48) at /usr/src/sys/kern/kern_fork.c:848 (kgdb) up 23 #23 0xc01c17a9 in fork_exit (callout=0xc01c23ec <ithread_loop>, arg=0xc06b0900, frame=0xc5b1ad48) at /usr/src/sys/kern/kern_fork.c:848 848 callout(arg, frame); (kgdb) down 1 #22 0xc01c2560 in ithread_loop (arg=0xc06b0900) at /usr/src/sys/kern/kern_intr.c:534 534 ih->ih_handler(ih->ih_argument); (kgdb) p *ih $1 = {ih_handler = 0xc0304894 <atkbd_isa_intr>, ih_argument = 0xc03c7180, ih_flags = 0, ih_name = 0xc067d7f0 "atkbd0", ih_ithread = 0xc06b0900, ih_need = 0, ih_next = {tqe_next = 0x0, tqe_prev = 0xc06b0950}, ih_pri = 24 '\030'} (kgdb) down 1 #21 0xc03048aa in atkbd_isa_intr (arg=0x0) at /usr/src/sys/isa/atkbd_isa.c:175 175 (*kbdsw[kbd->kb_index]->intr)(kbd, NULL); >>> Shouldn't arg be equal to 0xc03c7180 here? >>> I mean, the same as ih->ih_argument in the previous stack frame? (kgdb) list 170 atkbd_isa_intr(void *arg) 171 { 172 keyboard_t *kbd; 173 174 kbd = (keyboard_t *)arg; 175 (*kbdsw[kbd->kb_index]->intr)(kbd, NULL); 176 } 177 178 DRIVER_MODULE(atkbd, atkbdc, atkbd_driver, atkbd_devclass, 0, 0); (kgdb) quit root@hades[21:04]/var/crash# exit Script done on Tue Sep 24 21:04:53 2002 %%% 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?20020924203500.GA795>