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
Corrupted data using raw zfs send/recv with encryption #8852
Comments
After accessing the problematic directory,
|
Additional datapoints:
|
@dsnet based on your description and debugging I agree this is unlikely related to resumable sends or issue #8168 which was resolved. Based on the errors you're seeing it sounds as if a dnode block on the receive side isn't exactly matching its counterpart from the source. This would result in authentication errors and the symptoms you're seeing. Can you run Any hints you can provide which would help us reproduce this locally would be very helpful. |
Not sure what to look for, but here's the full printout: $ sudo zpool events -v TIME CLASS Jun 3 2019 15:10:40.835224357 ereport.fs.zfs.zpool class = "ereport.fs.zfs.zpool" ena = 0x3992fbba301c01 detector = (embedded nvlist) version = 0x0 scheme = "zfs" pool = 0x79cb7bbee62fca18 (end detector) pool = "zfs-crypt" pool_guid = 0x79cb7bbee62fca18 pool_state = 0x0 pool_context = 0x2 pool_failmode = "wait" time = 0x5cf59ae0 0x31c88325 eid = 0x1 I didn't bother mangling my dataset names like I did before. The pool with issues is called |
I confirm that the patch removes the IO errors. I'm hashing the contents of everything to make sure it checks out. EDIT: Hashing all contents reports that the received snapshot matches the source. |
Thank you for the quick fix! Once I update to a hypothetical 0.8.1, how would I clear the errors that |
@dsnet you'll need to run |
This patch re-adds a check that was removed in 369aa50. The check confirms that a raw receive is not occuring before truncating an object's dn_maxblkid. At the time, it was believed that all cases that would hit this code path would be handled in other places, but that was not the case. Reviewed-by: Matt Ahrens <mahrens@delphix.com> Reviewed-by: Paul Dagnelie <pcd@delphix.com> Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Signed-off-by: Tom Caputi <tcaputi@datto.com> Closes #8852 Closes #8857
Using
zfsonlinux 0.8
.I have two machines
src
anddst
.On
src
, I have an encrypted dataset that is 77G large. The non-default properties are:I send that dataset from
src
todst
using (running on thedst
machine):In the middle of the send/recv I had a network failure and had to use the resumable send/recv feature to resume the send. At the very end, the operation completes successfully.
To test that the data really is the same between
src
anddst
, I began hashing files on both ends to verify integrity, but ran into some input/output errors. Specifically, there are no errors on thesrc
dataset, but there are errors on thedst
machine:This suggests that either a problem with the send or the recv.
This may not be the most helpful, but I'm happy to run more commands to help diagnose the problem.
The text was updated successfully, but these errors were encountered: