]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFV r337022:
authorAlexander Motin <mav@FreeBSD.org>
Wed, 1 Aug 2018 02:39:44 +0000 (02:39 +0000)
committerAlexander Motin <mav@FreeBSD.org>
Wed, 1 Aug 2018 02:39:44 +0000 (02:39 +0000)
commitf12261798c73f94ab747846dc2aaa0cf92289b29
tree789011bf56263af3408cd9109b9b3f04f2036f0d
parentbe963beee62a77ae16d14c568c246994abf3f07c
parent82104b77fb7c3db11f137dfd2847a2e99c1b2829
MFV r337022:
9403 assertion failed in arc_buf_destroy() when concurrently reading block with checksum error

This assertion (VERIFY) failure was reported when reading a block. Turns out
the problem is that if we get an i/o error (ECKSUM in this case), and there
are multiple concurrent ARC reads of the same block (from different clones),
then the ARC will put multiple buf's on the same ANON hdr, which isn't
supposed to happen, and then causes a panic when we try to arc_buf_destroy()
the buf.

illumos/illumos-gate@fa98e487a9619b7902f218663be219e787a57dad

Reviewed by: George Wilson <george.wilson@delphix.com>
Reviewed by: Paul Dagnelie <pcd@delphix.com>
Reviewed by: Pavel Zakharov <pavel.zakharov@delphix.com>
Approved by: Matt Ahrens <mahrens@delphix.com>
Author:     Matthew Ahrens <mahrens@delphix.com>
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/arc.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/dbuf.c
sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zio_compress.c