HomeFreeBSD

OpenZFS 9456 - ztest failure in zil_commit_waiter_timeout

Description

OpenZFS 9456 - ztest failure in zil_commit_waiter_timeout

Problem

Illumos bug 8373 was integrated, which now presents a code path where
"dmu_tx_assign" can fail. When "dmu_tx_assign" fails, it will not issue
the lwb that was passed in to "zil_lwb_write_issue". As a result, when
"zil_lwb_write_issue" returns, the lwb will still be in the "opened"
state, just as it was when "zil_lwb_write_issue" was originally called.

Solution

As a result of this new call path, the failed assertion needs to be
modified to be aware of this new possibility. Thus, we can only assert
that the lwb is no longer in the "opened" state if the returned lwb is
non-null, since we cannot differentiate between the case of
"dmu_tx_assign" failing or "zio_alloc_zil" failing within the call to
"zil_lwb_write_issue".

Authored by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: Matt Ahrens <matt@delphix.com>
Reviewed by: Serapheim Dimitropoulos <serapheim.dimitro@delphix.com>
Reviewed by: Prakash Surya <prakash.surya@delphix.com>
Reviewed by: George Melikov <mail@gmelikov.ru>
Ported-by: Brian Behlendorf <behlendorf1@llnl.gov>
Approved by: Matt Ahrens <mahrens@delphix.com>

OpenZFS-issue: https://www.illumos.org/issues/9456
OpenZFS-commit: https://github.com/openzfs/openzfs/commit/a8b09f4e
Closes #7695

Details

Provenance
Prakash Surya <prakash.surya@delphix.com>Authored on Sep 7 2017, 10:12 PM
Brian Behlendorf <behlendorf1@llnl.gov>Committed on Jul 10 2018, 5:25 PM
Parents
rGa7ed98d8b5ce: OpenZFS 9330 - stack overflow when creating a deeply nested dataset
Branches
Unknown
Tags
Unknown

Event Timeline

Brian Behlendorf <behlendorf1@llnl.gov> committed rGab11916583e5: OpenZFS 9456 - ztest failure in zil_commit_waiter_timeout (authored by Prakash Surya <prakash.surya@delphix.com>).Jul 10 2018, 5:25 PM