HomeFreeBSD

ZIL: Fix another use-after-free.

Description

ZIL: Fix another use-after-free.

lwb->lwb_issued_txg can not be accessed after lwb_state is set to
LWB_STATE_FLUSH_DONE and zl_lock is dropped, since the lwb may be
freed by zil_sync(). We must save the txg number before that.

This is similar to the 55b1842f92, but as I see the bug is not new.
It existed for quite a while, just was not triggered due to smaller
race window.

Reviewed-by: Allan Jude <allan@klarasystems.com>
Reviewed-by: Brian Atkinson <batkinson@lanl.gov>
Signed-off-by: Alexander Motin <mav@FreeBSD.org>
Sponsored by: iXsystems, Inc.
Closes #14988
Closes #14999

Details

Provenance
mavAuthored on Jun 28 2023, 12:03 AM
GitHub <noreply@github.com>Committed on Jun 28 2023, 12:03 AM
Parents
rGb0cbc1aa9a1f: Use big transactions for small recordsize writes.
Branches
Unknown
Tags
Unknown