Date: Mon, 2 Jun 2014 22:15:10 +0100 From: "Steven Hartland" <killing@multiplay.co.uk> To: <mike@bayphoto.com>, <freebsd-fs@freebsd.org> Subject: Re: ZFS Kernel Panic on 10.0-RELEASE Message-ID: <85184EB23AA84607A360E601D03E1741@multiplay.co.uk> References: <5388D64D.4030400@bayphoto.com> <EC2EA442-56FC-46B4-A1E2-97523029B7B3@mail.turbofuzz.com> <5388E5B4.3030002@bayphoto.com> <538BBEB7.4070008@bayphoto.com> <782C34792E95484DBA631A96FE3BEF20@multiplay.co.uk> <538C9CF3.6070208@bayphoto.com> <16ADD4D9DC73403C9669D8F34FDBD316@multiplay.co.uk> <538CB3EA.9010807@bayphoto.com> <6C6FB182781541CEBF627998B73B1DB4@multiplay.co.uk> <538CC16A.6060207@bayphoto.com> <F959477921CD4552A94BF932A55961F4@multiplay.co.uk> <538CDB7F.2060408@bayphoto.com> <88B3A7562A5F4F9B9EEF0E83BCAD2FB0@multiplay.co.uk> <538CE2B3.8090008@bayphoto.com>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
----- Original Message -----
From: "Mike Carlson" <mike@bayphoto.com>
>> Thats the line I gathered it was on but no I need to know what the value
>> of vd is, so what you need to do is:
>> print vd
>>
>> If thats valid then:
>> print *vd
>>
>It reports:
>
>(kgdb) print *vd
> No symbol "vd" in current context.
Dam optimiser :(
> Should I rebuild the kernel with additional options?
Likely wont help as kernel with zero optimisations tends to fail
to build in my experience :(
Can you try applying the attached patch to your src e.g.
cd /usr/src
patch < zfs-dsize-dva-check.patch
The rebuild, install the kernel and then reproduce the issue again.
Hopefully it will provide some more information on the cause, but
I suspect you might be seeing the effect os have some corruption.
Regards
Steve
[-- Attachment #2 --]
Index: sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c
===================================================================
--- sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c (revision 266009)
+++ sys/cddl/contrib/opensolaris/uts/common/fs/zfs/spa_misc.c (working copy)
@@ -1631,7 +1631,14 @@ dva_get_dsize_sync(spa_t *spa, const dva_t *dva)
ASSERT(spa_config_held(spa, SCL_ALL, RW_READER) != 0);
if (asize != 0 && spa->spa_deflate) {
- vdev_t *vd = vdev_lookup_top(spa, DVA_GET_VDEV(dva));
+ uint64_t vdev = DVA_GET_VDEV(dva);
+ vdev_t *vd = vdev_lookup_top(spa, vdev);
+ if (vd == NULL) {
+ cmn_err(CE_WARN, "dva_get_dsize_sync(): bad DVA %llu:%llu",
+ (u_longlong_t)vdev, (u_longlong_t)asize);
+ ASSERT(0);
+ return (dsize);
+ }
dsize = (asize >> SPA_MINBLOCKSHIFT) * vd->vdev_deflate_ratio;
}
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?85184EB23AA84607A360E601D03E1741>
