Bug 1711327
| Summary: | Repairing thin metadata is suggesting to use repair | ||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| Product: | Red Hat Enterprise Linux 7 | Reporter: | Jakub Krysl <jkrysl> | ||||||||
| Component: | device-mapper-persistent-data | Assignee: | Joe Thornber <thornber> | ||||||||
| Status: | CLOSED ERRATA | QA Contact: | Jakub Krysl <jkrysl> | ||||||||
| Severity: | unspecified | Docs Contact: | |||||||||
| Priority: | unspecified | ||||||||||
| Version: | 7.7 | CC: | agk, heinzm, jbrassow, lvm-team, mcsontos, msnitzer, thornber | ||||||||
| Target Milestone: | rc | Keywords: | Regression | ||||||||
| Target Release: | --- | ||||||||||
| Hardware: | Unspecified | ||||||||||
| OS: | Unspecified | ||||||||||
| Whiteboard: | |||||||||||
| Fixed In Version: | device-mapper-persistent-data-0.8.5-1.el7 | Doc Type: | No Doc Update | ||||||||
| Doc Text: |
In release only
|
Story Points: | --- | ||||||||
| Clone Of: | Environment: | ||||||||||
| Last Closed: | 2019-08-06 13:17:59 UTC | Type: | Bug | ||||||||
| Regression: | --- | Mount Type: | --- | ||||||||
| Documentation: | --- | CRM: | |||||||||
| Verified Versions: | Category: | --- | |||||||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||||||
| Embargoed: | |||||||||||
| Attachments: |
|
||||||||||
Tested with device-mapper-persistent-data-0.8.2-1.el7.x86_64.rpm. I cannot see "bad checksum in superblock" in thin_check, but 'thin_repair -i nonexistent' still does something to the metadata, as the output of 'thin_dump --repair' still fails after running it. It works before running 'thin_repair -i nonexistent'. # thin_dump /dev/mapper/vgtest-swapvol -o /tmp/metadata --repair --format xml # thin_check /dev/mapper/vgtest-swapvol examining superblock TRANSACTION_ID=10 METADATA_FREE_BLOCKS=1023 examining devices tree examining mapping tree checking space map counts # thin_repair -i nonexistent -o /dev/mapper/vgtest-swapvol Couldn't stat path # thin_check /dev/mapper/vgtest-swapvol examining superblock TRANSACTION_ID=10 METADATA_FREE_BLOCKS=1023 examining devices tree examining mapping tree checking space map counts # thin_dump /dev/mapper/vgtest-swapvol -o /tmp/metadata --repair --format xml metadata contains errors (run thin_check for details). perhaps you wanted to run with --repair Attaching binary dump of metadata (using dd) before and after running 'thin_repair -i nonexistent -o /dev/mapper/vgtest-swapvol' in following comments. Returning back after discussion with Marian. Created attachment 1573927 [details]
dd'd metadata just before running thin_repair
Created attachment 1573928 [details]
dd'd metadata just after running thin_repair
Compared to device-mapper-persistent-data-0.7.3-3.el7.x86_64 using another reproducer:
# echo 'nothing' >> /dev/mapper/vgtest-swapvol
# thin_check /dev/mapper/vgtest-swapvol
examining superblock
superblock is corrupt
bad checksum in superblock, wanted 1684593029
# thin_repair -i /dev/mapper/vgtest-swapvol -o /tmp/metadata
bad checksum in superblock, wanted 1684593029
# thin_repair -i /tmp/metadata -o /dev/mapper/vgtest-swapvol
metadata contains errors (run thin_check for details).
perhaps you wanted to run with --repair
Before the output looked like this:
# echo 'nothing' >> /dev/mapper/vgtest-swapvol
# thin_check /dev/mapper/vgtest-swapvol
examining superblock
superblock is corrupt
bad checksum in superblock, wanted 3627560579
# thin_repair -i /dev/mapper/vgtest-swapvol -o /tmp/metadata
bad checksum in superblock, wanted 3627560579
# thin_repair -i /tmp/metadata -o /dev/mapper/vgtest-swapvol
bad checksum in superblock, wanted 1490015127
The issue is no longer present in device-mapper-persistent-data-0.8.5-1.el7.x86_64:
# fallocate -l 10M /tmp/metadata
# thin_dump /dev/mapper/vgtest-swapvol -o /tmp/metadata --repair --format xml
# thin_check /dev/mapper/vgtest-swapvol
examining superblock
TRANSACTION_ID=10
METADATA_FREE_BLOCKS=1023
examining devices tree
examining mapping tree
checking space map counts
# thin_repair -i nonexistent -o /dev/mapper/vgtest-swapvol
Couldn't stat path
# thin_check /dev/mapper/vgtest-swapvol
examining superblock
TRANSACTION_ID=10
METADATA_FREE_BLOCKS=1023
examining devices tree
examining mapping tree
checking space map counts
# thin_dump /dev/mapper/vgtest-swapvol -o /tmp/metadata --repair --format xml
#
# echo 'nothing' >> /dev/mapper/vgtest-swapvol
# thin_check /dev/mapper/vgtest-swapvol
examining superblock
superblock is corrupt
bad checksum in superblock, wanted 3208244287
# fallocate -l 50M /tmp/metadata
# thin_repair -i /dev/mapper/vgtest-swapvol -o /tmp/metadata
bad checksum in superblock, wanted 3208244287
Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://access.redhat.com/errata/RHBA-2019:2320 |
Created attachment 1570118 [details] Complete setup log Description of problem: When using 'thin_repair' or 'thin_dump --repair' on corrupted swapped metadata, the output suggests to use '--repair'. # lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert swapvol vgtest -wi-a----- 4.00m thinpool vgtest twi---tz-- 100.00m thinvol0 vgtest Vwi---tz-- 12.00m thinpool thinvol1 vgtest Vwi---tz-- 12.00m thinpool thinvol2 vgtest Vwi---tz-- 12.00m thinpool thinvol3 vgtest Vwi---tz-- 12.00m thinpool thinvol4 vgtest Vwi---tz-- 12.00m thinpool thinvol5 vgtest Vwi---tz-- 12.00m thinpool thinvol6 vgtest Vwi---tz-- 12.00m thinpool thinvol7 vgtest Vwi---tz-- 12.00m thinpool thinvol8 vgtest Vwi---tz-- 12.00m thinpool thinvol9 vgtest Vwi---tz-- 12.00m thinpool # thin_check /dev/mapper/vgtest-swapvol examining superblock TRANSACTION_ID=10 METADATA_FREE_BLOCKS=1023 examining devices tree examining mapping tree checking space map counts ### Breaking the metadata here ### # thin_repair -i nonexistent -o /dev/mapper/vgtest-swapvol Couldn't stat path # thin_check /dev/mapper/vgtest-swapvol examining superblock TRANSACTION_ID=10 METADATA_FREE_BLOCKS=1023 examining devices tree examining mapping tree checking space map counts bad checksum in superblock, wanted 2711534584 # fallocate -l 5M /tmp/metadata # thin_dump /dev/mapper/vgtest-swapvol -o /tmp/metadata --repair --format xml metadata contains errors (run thin_check for details). perhaps you wanted to run with --repair # fallocate -l 5M /tmp/metadata # thin_repair -i /dev/mapper/vgtest-swapvol -o /tmp/metadata metadata contains errors (run thin_check for details). perhaps you wanted to run with --repair Version-Release number of selected component (if applicable): kernel-3.10.0-1048.el7.x86_64 device-mapper-persistent-data-0.8.1-1.el7.x86_64 device-mapper-1.02.158-1.el7.x86_64 lvm2-2.02.185-1.el7.x86_64 How reproducible: 100% Steps to Reproduce: 1. thin_repair -i nonexistent -o /dev/mapper/vgtest-swapvol 2a. fallocate -l 5M /tmp/metadata 3a. thin_dump /dev/mapper/vgtest-swapvol -o /tmp/metadata --repair --format xml 2b. fallocate -l 5M /tmp/metadata 3b. thin_repair -i /dev/mapper/vgtest-swapvol -o /tmp/metadata Actual results: metadata contains errors (run thin_check for details). perhaps you wanted to run with --repair Expected results: no message pointing to run --repair when already rea Additional info: