Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix the PANIC: metaslab_free_dva(): bad DVA with zfs #3937 #4730

Closed
wants to merge 1 commit into from

Conversation

hsepeng
Copy link
Contributor

@hsepeng hsepeng commented Jun 5, 2016

the panic was introduced by the following scenario:
in the previous transaction group, the bonus buffer
was entirely used to store the attributes for the
dnode which override the dn_spill field.
however, when adding more attributes to the file,
it will need the spill block to hold the extra
attributes overflowing the bonus buffer.
make sure to clear the garbage left in the dn_spill
field which was the previous attributes in bonus
buffer, otherwise, after writing out the spill block
data to the new allocated dva, it will try to free
the old block pointed by the invalid dn_spill, that
would introduce the panic

    the panic was introduced by the following scenario:
    in the previous transaction group, the bonus buffer
    was entirely used to store the attributes for the
    dnode which override the dn_spill field.
    however, when adding more attributes to the file,
    it will need the spill block to hold the extra
    attributes overflowing the bonus buffer.
    make sure to clear the garbage left in the dn_spill
    field which was the previous attributes in bonus
    buffer, otherwise, after writing out the spill block
    data to the new allocated dva, it will try to free
    the old block pointed by the invalid dn_spill, that
    would introduce the panic
@hsepeng
Copy link
Contributor Author

hsepeng commented Jun 6, 2016

@behlendorf did the failure relate to my fix patch?

@behlendorf
Copy link
Contributor

@hsepeng both kernel.org builders failed due to compatibility issues with the latest kernel.org kernel. These problems have been fixed in master if you rebase the PR. The other two failures look unrelated to your patch, but it would still be good to refresh the PR against master to resolve the kernel.org build issue.

@behlendorf behlendorf closed this Jun 9, 2016
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants