The following reply was made to PR kern/162036; it has been noted by GNATS.
From: Fabian Keil <f...@fabiankeil.de> To: bug-follo...@freebsd.org Cc: Subject: Re: kern/162036: [geom] Fatal trap 12: page fault while in kernel mode -- Stopped at atomic_subtract_int+0x4 Date: Fri, 18 Nov 2011 13:08:43 +0100 --Sig_/j78gnomfcy4BkUup5X1_Qyd Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable With the patch from: http://lists.freebsd.org/pipermail/freebsd-current/2011-November/029226.html and sources after r227637 dumping core works. I didn't test with r227637 and without the scheduler-stopping patch. fk@r500 /usr/crash $kgdb kernel.6/kernel vmcore.6 GNU gdb 6.1.1 [FreeBSD] Copyright 2004 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 condition= s. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "amd64-marcel-freebsd"... Unread portion of the kernel message buffer: (da0:ugen7.2: <vendor 0x14cd> at usbus7 (disconnected) umass-sim0:0:0:0): Request completed with CAM_REQ_CMP_ERR umass0: at uhub7, port 2, addr 2 (disconnected) (da0:umass-sim0:0:0:0): Retrying command (da0:umass-sim0:0:0:0): Selection timeout (da0:umass-sim0:0:0:0): Retrying command (da0:umass-sim0:0:0:0): Selection timeout (da0:umass-sim0:0:0:0): Retrying command (da0:umass-sim0:0:0:0): Selection timeout (da0:umass-sim0:0:0:0): Retrying command (da0:umass-sim0:0:0:0): lost device - 1 outstanding GEOM_ELI(pass2:: umass-sim0:0:Crypto WRITE request failed (error=3D6).0: 0)= : lost device label/extreme.eli[WRITE(offset=3D2791427072, length=3D131072)] (pass2:umass-sim0:0:0:0): removing device entry GEOM_ELI(da0:umass-sim0:0:0:0): Error 6, Retries exhausted (da0:umass-sim0:0:0:0): oustanding 0 : Crypto WRITE request failed (error=3D6). label/extreme.eli[WRITE(offset= =3D2791558144, length=3D131072)] GEOM_ELI: Crypto WRITE request failed (error=3D6). label/extreme.eli[WRITE(= offset=3D2791689216, length=3D131072)] GEOM_ELI: Crypto WRITE request failed (error=3D6). label/extreme.eli[WRITE(= offset=3D2791886848, length=3D131072)] GEOM_ELI: Crypto WRITE request failed (error=3D6). label/extreme.eli[WRITE(= offset=3D2792017920, length=3D131072)] GEOM_ELI: Crypto WRITE request failed (error=3D6). label/extreme.eli[WRITE(= offset=3D2792148992, length=3D131072)] GEOM_ELI: Crypto WRITE request failed (error=3D6). label/extreme.eli[WRITE(= offset=3D2792280064, length=3D131072)] GEOM_ELI: Crypto WRITE request failed (error=3D6). label/extreme.eli[WRITE(= offset=3D2792411136, length=3D131072)] GEOM_ELI: Crypto WRITE request failed (error=3D6). label/extreme.eli[WRITE(= offset=3D2792542208, length=3D131072)] GEOM_ELI: Crypto WRITE request failed (error=3D6). label/extreme.eli[WRITE(= offset=3D2791296000, length=3D131072)] GEOM_ELI: g_eli_read_done() failed label/extreme.eli[READ(offset=3D270336, = length=3D8192)] GEOM_ELI: g_eli_read_done() failed label/extreme.eli[READ(offset=3D40226078= 72, length=3D8192)] GEOM_ELI: g_eli_read_done() failed label/extreme.eli[READ(offset=3D40228700= 16, length=3D8192)] zio_vdev_io_start: Setting zio->io_error to ENXIO for vdev extreme /dev/lab= el/extreme.eli zio_vdev_io_start: Setting zio->io_error to ENXIO for vdev extreme /dev/lab= el/extreme.eli zio_vdev_io_start: Setting zio->io_error to ENXIO for vdev extreme /dev/lab= el/extreme.eli zio_vdev_io_start: Setting zio->io_error to ENXIO for vdev extreme /dev/lab= el/extreme.eli zio_vdev_io_start: Setting zio->io_error to ENXIO for vdev extreme /dev/lab= el/extreme.eli zio_vdev_io_start: Setting zio->io_error to ENXIO for vdev extreme /dev/lab= el/extreme.eli zio_vdev_io_start: Setting zio->io_error to ENXIO for vdev extreme /dev/lab= el/extreme.eli zio_vdev_io_start: Setting zio->io_error to ENXIO for vdev extreme /dev/lab= el/extreme.eli zio_vdev_io_start: Setting zio->io_error to ENXIO for vdev extreme /dev/lab= el/extreme.eli zio_vdev_io_start: Setting zio->io_error to ENXIO for vdev extreme /dev/lab= el/extreme.eli GEOM_ELI: Crypto WRITE request failed (error=3D6). label/extreme.eli[WRITE(= offset=3D2792673280, length=3D131072)] zio_vdev_io_start: Setting zio->io_error to ENXIO for vdev extreme /dev/lab= el/extreme.eli GEOM_ELI: Crypto WRITE request failed (error=3D6). label/extreme.eli[WRITE(= offset=3D2792804352, length=3D131072)] zio_vdev_io_start: Setting zio->io_error to ENXIO for vdev extreme /dev/lab= el/extreme.eli GEOM_ELI: Crypto WRITE request failed (error=3D6). label/extreme.eli[WRITE(= offset=3D2792935424, length=3D131072)] Fatal trap 12: page fault while in kernel mode (da0:cpuid =3D 1; apic id =3D 01 umass-sim0:0:fault virtual address =3D 0x288 0:fault code =3D supervisor write data, page not present 0): removing device entry instruction pointer =3D 0x20:0xffffffff808dbef4 stack pointer =3D 0x28:0xffffff8000244ba0 frame pointer =3D 0x28:0xffffff8000244bb0 code segment =3D base 0x0, limit 0xfffff, type 0x1b =3D DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags =3D interrupt enabled, resume, IOPL =3D 0 current process =3D 13 (g_up) Reading symbols from /boot/kernel/zfs.ko...Reading symbols from /boot/kerne= l/zfs.ko.symbols...done. done. [...] Reading symbols from /boot/kernel/fdescfs.ko...Reading symbols from /boot/k= ernel/fdescfs.ko.symbols...done. done. Loaded symbols for /boot/kernel/fdescfs.ko #0 doadump (textdump=3D0) at /usr/src/sys/kern/kern_shutdown.c:267 267 if (textdump && textdump_pending) { (kgdb) where #0 doadump (textdump=3D0) at /usr/src/sys/kern/kern_shutdown.c:267 #1 0xffffffff80315990 in db_dump (dummy=3DVariable "dummy" is not availabl= e. ) at /usr/src/sys/ddb/db_command.c:537 #2 0xffffffff803152c1 in db_command (last_cmdp=3D0xffffffff80df1800, cmd_t= able=3DVariable "cmd_table" is not available. ) at /usr/src/sys/ddb/db_command.c:448 #3 0xffffffff80315510 in db_command_loop () at /usr/src/sys/ddb/db_command= .c:501 #4 0xffffffff80317649 in db_trap (type=3DVariable "type" is not available. ) at /usr/src/sys/ddb/db_main.c:229 #5 0xffffffff80690581 in kdb_trap (type=3D12, code=3D0, tf=3D0xffffff80002= 44af0) at /usr/src/sys/kern/subr_kdb.c:626 #6 0xffffffff808f48cd in trap_fatal (frame=3D0xffffff8000244af0, eva=3DVar= iable "eva" is not available. ) at /usr/src/sys/amd64/amd64/trap.c:814 #7 0xffffffff808f4c36 in trap_pfault (frame=3D0xffffff8000244af0, usermode= =3D0) at /usr/src/sys/amd64/amd64/trap.c:735 #8 0xffffffff808f50ff in trap (frame=3D0xffffff8000244af0) at /usr/src/sys= /amd64/amd64/trap.c:474 #9 0xffffffff808def33 in calltrap () at /usr/src/sys/amd64/amd64/exception= .S:228 #10 0xffffffff808dbef4 in atomic_subtract_int (p=3D0x288, v=3D1) at atomic.= h:289 #11 0xffffffff805eeb16 in g_io_schedule_up (tp=3DVariable "tp" is not avail= able. ) at /usr/src/sys/geom/geom_io.c:679 #12 0xffffffff805ef09c in g_up_procbody (arg=3DVariable "arg" is not availa= ble. ) at /usr/src/sys/geom/geom_kern.c:97 #13 0xffffffff80628b6f in fork_exit (callout=3D0xffffffff805ef040 <g_up_pro= cbody>, arg=3D0x0, frame=3D0xffffff8000244c50) at /usr/src/sys/kern/kern_fo= rk.c:995 #14 0xffffffff808df45e in fork_trampoline () at /usr/src/sys/amd64/amd64/ex= ception.S:602 #15 0x0000000000000000 in ?? () [...] #38 0x0000000000000000 in ?? () #39 0xffffffff80e2cf80 in tdq_cpu () #40 0x0000000000000001 in ?? () #41 0x0000000000000000 in ?? () #42 0xfffffe0002723460 in ?? () #43 0xffffff8000244360 in ?? () #44 0xffffff8000244308 in ?? () #45 0xfffffe0004ca9000 in ?? () ---Type <return> to continue, or q <return> to quit--- #46 0xffffffff80683250 in sched_switch (td=3D0xffffffff805ef040, newtd=3D0x= 0, flags=3DVariable "flags" is not available. ) at /usr/src/sys/kern/sched_ule.c:1853 (kgdb) f 11 #11 0xffffffff805eeb16 in g_io_schedule_up (tp=3DVariable "tp" is not avail= able. ) at /usr/src/sys/geom/geom_io.c:679 679 biodone(bp); Current language: auto; currently c (kgdb) l 674 g_bioq_unlock(&g_bio_run_up); 675 THREAD_NO_SLEEPING(); 676 CTR4(KTR_GEOM, "g_up biodone bp %p provider= %s off " 677 "%jd len %ld", bp, bp->bio_to->name, 678 bp->bio_offset, bp->bio_length); 679 biodone(bp); 680 THREAD_SLEEPING_OK(); 681 continue; 682 } 683 CTR0(KTR_GEOM, "g_up going to sleep"); (kgdb) p *bp $1 =3D {bio_cmd =3D 2 '\002', bio_flags =3D 2 '\002', bio_cflags =3D 0 '\0'= , bio_pflags =3D 0 '\0', bio_dev =3D 0x0, bio_disk =3D 0x0, bio_offset =3D = 2792935424, bio_bcount =3D 131072, bio_data =3D 0xffffff800a581000 <Address 0xffffff800a581000 out of bounds= >, bio_error =3D 6, bio_resid =3D 131072, bio_done =3D 0xffffffff813597d0 <= g_eli_write_done>, bio_driver1 =3D 0x0, bio_driver2 =3D 0x0, bio_caller1 =3D 0x0, bio_caller= 2 =3D 0x0, bio_queue =3D {tqe_next =3D 0x0, tqe_prev =3D 0xffffffff80e10f60= }, bio_attribute =3D 0x0, bio_from =3D 0xfffffe0012877d00, bio_to =3D 0xfffffe0004c65100, bio_lengt= h =3D 131072, bio_completed =3D 0, bio_children =3D 0, bio_inbed =3D 0, bio= _parent =3D 0xfffffe0017121bc8, bio_t0 =3D {sec =3D 201, frac =3D 2813861954672982723}, bio_task =3D 0, b= io_task_arg =3D 0x0, bio_classifier1 =3D 0x0, bio_classifier2 =3D 0x0, bio_= pblkno =3D 0} The "zio_vdev_io_start: ..." messages are the result of: commit 541719565e4daf8cb6f93896013ae57b867546c4 Author: Fabian Keil <f...@fabiankeil.de> Date: Mon Mar 14 18:27:13 2011 +0100 Print a message when ENXIOing a device diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c b/sys/cdd= l/contrib/opensolaris/uts/common/fs/zfs/zio.c index b38fb0b..7269258 100644 --- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c +++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio.c @@ -2370,6 +2370,8 @@ zio_vdev_io_start(zio_t *zio) return (ZIO_PIPELINE_STOP); if (!vdev_accessible(vd, zio)) { + printf("%s: Setting zio->io_error to ENXIO for vdev= %s %s\n", + __func__, vd->vdev_spa->spa_name, vd->vdev_p= ath); zio->io_error =3D ENXIO; zio_interrupt(zio); return (ZIO_PIPELINE_STOP); Fabian --Sig_/j78gnomfcy4BkUup5X1_Qyd Content-Type: application/pgp-signature; name=signature.asc Content-Disposition: attachment; filename=signature.asc -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.18 (FreeBSD) iEYEARECAAYFAk7GStIACgkQSMVSH78upWNTBQCeO6B3YovPxFDqiarhtceE+WHK ys4AnjfIblRvmELA3zLdpeLCqgDY+QYZ =/0Et -----END PGP SIGNATURE----- --Sig_/j78gnomfcy4BkUup5X1_Qyd-- _______________________________________________ freebsd-bugs@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-bugs To unsubscribe, send any mail to "freebsd-bugs-unsubscr...@freebsd.org"