-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
dmu_zfetch_run() panic #11936
Comments
We haven't observed this on either Linux or FreeBSD to my knowledge. However, from the stack you've posted it looks like the You could test this theory easily enough by commenting out the cc: @amotin |
The move functionality looks like a one big bug in context of zfetch. I've looked on it briefly while tried to debug previously reported issue, but then gave up, since the issue appeared to be different, while this code is indeed not use on either Linux or FreeBSD. It would be good to check whether the dnode_move() code is indeed related and then try to sort it out somehow. |
@ikozhukhov Could you please test the linked PR? |
will do it, thanks. |
Previous code tried to keep prefetch streams while moving dnode. But it was at least not updating per-stream zs_fetchback pointers, causing use-after-free on next access. Instead of that I see much easier and cleaner to just drop old prefetch state and start new from scratch. Signed-off-by: Alexander Motin <mav@FreeBSD.org> Sponsored-By: iXsystems, Inc. Closes openzfs#11936
Previous code tried to keep prefetch streams while moving dnode. But it was at least not updating per-stream zs_fetchback pointers, causing use-after-free on next access. Instead of that I see much easier and cleaner to just drop old prefetch state and start new from scratch. Reviewed-by: Matthew Ahrens <mahrens@delphix.com> Reviewed-by: Igor Kozhukhov <igor@dilos.org> Signed-off-by: Alexander Motin <mav@FreeBSD.org> Sponsored-By: iXsystems, Inc. Closes #11936 Closes #11998
Previous code tried to keep prefetch streams while moving dnode. But it was at least not updating per-stream zs_fetchback pointers, causing use-after-free on next access. Instead of that I see much easier and cleaner to just drop old prefetch state and start new from scratch. Reviewed-by: Matthew Ahrens <mahrens@delphix.com> Reviewed-by: Igor Kozhukhov <igor@dilos.org> Signed-off-by: Alexander Motin <mav@FreeBSD.org> Sponsored-By: iXsystems, Inc. Closes openzfs#11936 Closes openzfs#11998
Previous code tried to keep prefetch streams while moving dnode. But it was at least not updating per-stream zs_fetchback pointers, causing use-after-free on next access. Instead of that I see much easier and cleaner to just drop old prefetch state and start new from scratch. Reviewed-by: Matthew Ahrens <mahrens@delphix.com> Reviewed-by: Igor Kozhukhov <igor@dilos.org> Signed-off-by: Alexander Motin <mav@FreeBSD.org> Sponsored-By: iXsystems, Inc. Closes openzfs#11936 Closes openzfs#11998
System information
Describe the problem you're observing
we have 4 vm as vmware guests under vmware esxi and 2 vm as bhyve guests with sporadic/periodic panics with the same stack trace below in different scenarios. we have no panic in the same place, but we can see instability and just revert of commit 891568c (issue #11652) fixed this issue.
Describe how to reproduce the problem
ZTS tests on several different vms in loop
Include any warning/errors/backtraces from the system logs
The text was updated successfully, but these errors were encountered: