svn commit: r320452 - in head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys

Peter Wemm peter at wemm.org
Wed Jul 12 06:08:20 UTC 2017


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 - peter at wemm.org; peter at FreeBSD.org; peter at yahoo-inc.com; KI6FJV
UTF-8: for when a ' or ... just won\342\200\231t do\342\200\246
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 488 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.freebsd.org/pipermail/svn-src-head/attachments/20170711/b2c39cfe/attachment-0001.sig>


More information about the svn-src-head mailing list