]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
MFC r337025: MFV r337022:
authormav <mav@FreeBSD.org>
Wed, 3 Oct 2018 02:48:31 +0000 (02:48 +0000)
committermav <mav@FreeBSD.org>
Wed, 3 Oct 2018 02:48:31 +0000 (02:48 +0000)
commitf1b7710817c89b38f041569891c2c9bd95548db7
tree7daa20926c816ed168e9d6af78d9a367a8f2156b
parent148145ce0a780e413f158246e17d53b13d7931b4
MFC r337025: 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