Date: Tue, 11 Jul 2017 23:08:15 -0700 From: Peter Wemm <peter@wemm.org> To: Andriy Gapon <avg@freebsd.org> Cc: svn-src-head@freebsd.org, src-committers@freebsd.org, svn-src-all@freebsd.org Subject: Re: svn commit: r320452 - in head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs: . sys Message-ID: <2865573.6VCVxXl8ZR@overcee.wemm.org> In-Reply-To: <201706281359.v5SDxKDB033681@repo.freebsd.org> References: <201706281359.v5SDxKDB033681@repo.freebsd.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
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@wemm.org; peter@FreeBSD.org; peter@yahoo-inc.com; KI6FJV
UTF-8: for when a ' or ... just won\342\200\231t do\342\200\246
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
iQEzBAABCAAdFiEEBgrA0Vr/vfNVuPoUNdaXCeyAngQFAlllvM8ACgkQNdaXCeyA
ngR9Vwf/dqaqhTJA8ny6hZyEsbB+lEJyfw198wADxJ+uzz9opjem/qk7wtp8dFRC
zHF6JeHkQXJ9x6z2AqLeySLmoDEGCfYi6fjlZq0Qw0si8sAclgZVjIl9Vklc1aYd
3Z9cTG41RwwZsEi3oPsgx1tNWsdo3lZJAwzg9fCb2x/U+WSJlQCvOgtCEqNTgMR+
+5SeqX7vLEJ+0m0Ylf4YJbTfQC+/87TYdnlvTyYbYY8FZNODFR1gCkXNLA7uWoI2
SMM6h9HqEpg/WP4yU1nZrbg71jH5sfyV3PQcCqUcPZgZX6n8YV7Aa52kK0ndY/S5
80YWn4xVc3rqIcVm997FAWKrO7E9FA==
=IFnl
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?2865573.6VCVxXl8ZR>
