Kernel panic zio.c, line: 270 FreeBSD 10.2 (or 10.3)
Andriy Gapon
avg at FreeBSD.org
Fri Apr 8 13:40:50 UTC 2016
On 13/03/2016 23:02, DemIS wrote:
> #10 0xffffffff8244ef8b in dbuf_read (db=0xfffff803b1e8de00, zio=0xfffff80071def398, flags=6)
> at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c:621
...
> #11 0xffffffff8245a777 in dmu_spill_hold_by_dnode (dn=0xfffff805c8be5000, flags=6, tag=0x0, dbp=0xfffff802f48dfa28)
> at /usr/src/sys/modules/zfs/../../cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c:333
> db = (dmu_buf_impl_t *) 0xfffff803b1e8de00
> err = -512
If you still have this crash dump, then can you please do the following in kgdb?
set print pretty
fr 11
p/x *dn
fr 10
p/x *db
I suspect that the following change might be able to prevent future corruption
of your files, but it won't help with already corrupted files:
https://github.com/openzfs/openzfs/pull/81/commits/ee09d80ceafa7ff7930d1e45dddc21ca3d7a87cb
The following completely untested patch might help to avoid panics with the
corrupted files, but no promises:
diff --git a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
index 4396c01334015..94b353d62e3e6 100644
--- a/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
+++ b/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dmu.c
@@ -329,7 +329,10 @@ dmu_spill_hold_by_dnode
rw_exit(&dn->dn_struct_rwlock);
ASSERT(db != NULL);
- err = dbuf_read(db, NULL, flags);
+ if (db->db.db_size > 0)
+ err = dbuf_read(db, NULL, flags);
+ else
+ err = ENOENT;
if (err == 0)
*dbp = &db->db;
else
--
Andriy Gapon
More information about the freebsd-fs
mailing list