On Wednesday, June 28, 2017 01:59:20 PM Andriy Gapon wrote: > A side bonus of this change is that now a vdev zio has a pointer > to its corresponding bio while the zio is active.
> @@ -1094,6 +1088,15 @@ sendreq: > static void > vdev_geom_io_done(zio_t *zio) > { > + struct bio *bp = zio->io_bio; > + > + if (zio->io_type == ZIO_TYPE_READ) { > + abd_return_buf_copy(zio->io_abd, bp->bio_data, zio->io_size); > + } else if (zio->io_type == ZIO_TYPE_WRITE) { > + abd_return_buf(zio->io_abd, bp->bio_data, zio->io_size); > + } > + > + g_destroy_bio(bp); > } We are getting a 100% repeatable failure when trying to boot machines with degraded volumes in the freebsd.org cluster. <118>Setting hostname: tiny.nyi.freebsd.org. <118>Setting up harvesting: [UMA], [FS_ATIME],SWI,INTERRUPT,NET_NG,NET_ETHER,NET_TUN,MOUSE,KEYBOARD,D <118>Feeding entropy: . Fatal trap 12: page fault while in kernel mode cpuid = 1; apic id = 01 fault virtual address = 0x28 Fatal trap 12: page fault while in kernel mode cpuid = 3; apic id = 07 fault virtual address = 0x28 Fatal trap 12: page fault while in kernel mode cpuid = 2; apic id = 06 apic id = 00 fault virtual address = 0x28 = DPL 0, pres 1, long 1, def32 0, gran 1 processor eflags = interrupt enabled, resume, fault virtual address = 0x28 fault code = supervisor read data, page not present instruction pointer = 0x20:0xffffffff803aab56 stack pointer = 0x28:0xfffffe0239fa3a90 fault code = supervisor read data, page not present IOPL = 0 current process = 0 (zio_write_intr_0) frame pointer = 0x28:0xfffffe0239fa3aa0 db> where Tracing pid 0 tid 100471 td 0xfffff80005452000 vdev_geom_io_done() at vdev_geom_io_done+0x36/frame 0xfffffe0239f9eaa0 zio_vdev_io_done() at zio_vdev_io_done+0x176/frame 0xfffffe0239f9ead0 zio_execute() at zio_execute+0xac/frame 0xfffffe0239f9eb20 This is dereferencing a null bp (ie: zio->io_bio). It traps on multiple cores concurrently. FreeBSD 12.0-CURRENT #0 r320900: Wed Jul 12 03:00:15 UTC 2017 (This is a smoke-test machine, recycled from somewhere else) -- Peter Wemm - pe...@wemm.org; pe...@freebsd.org; pe...@yahoo-inc.com; KI6FJV UTF-8: for when a ' or ... just won\342\200\231t do\342\200\246
signature.asc
Description: This is a digitally signed message part.