bupstash: Possible corruption detected

From the public chat:

after bupstash put, I am running a bupstash get to check the data. Here, I am getting the following error: bupstash get: entry path/to/some/file content hash differs from index hash, possible corruption detected . 

This issue is interesting because the expected symptom of disk or ram corruption would be a different error such a corrupt chunk error. This error is triggered during the second set of checksum checks - which suggests either a bug in bupstash or some other problem - it definitely requires further investigation.

About this issue

  • Original URL
  • State: open
  • Created 2 years ago
  • Comments: 23 (8 by maintainers)

Most upvoted comments

The fix for this has been merged but it not in the latest release.

@bket FYI (assuming you’re the same bket as the OpenBSD port maintainer; sorry if I guesed wrong)

Are you able to recover the file using a full ‘get’ of the snapshot?

I stand even more corrected. I tried extracting with GNU tar instead of OpenBSD’s tar, and it seems to work fine*. So, the only bugs I can confirm for now are: (a) --pick giving the incorrect, stitched-together output, and (b) incompatibility of bupstash get output with OpenBSD’s tar.

Some more info, in case it helps:

  • I can reproduce (a) in the sense that re-running the pick command gives the same problem, and I just tried picking another file and it was also a piece of some other file but with the right length. But haven’t yet reproduced in the sense of making another corrupted backup.
  • When I created the original backup, I had some false starts: I tried running bupstash put, but it failed with permission errors, after making some progress. Then I created two successful backups, and it was the second one that I was looking at. I also ran bupstash gc at some point.

*(Details: GNU tar extracts without any errors (except it failed to create some files in directories with mode 555), and I don’t see missing files. I did not look too deeply this time; I just looked at a part of the file tree that had missing files when I used BSD tar.)