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

Assertion start >= found_start && end <= found_end failed #852

Open
bodqhrohro opened this issue Jul 22, 2024 · 4 comments
Open

Assertion start >= found_start && end <= found_end failed #852

bodqhrohro opened this issue Jul 22, 2024 · 4 comments
Labels

Comments

@bodqhrohro
Copy link

Repaired extent references for 28430254080     (0:21:10 elapsed, 86276 items checked)                                                                       
ref mismatch on [28435234816 16384] extent item 1, found 0                                                                                                  
backref 28435234816 root 7 not referenced back 0x55912d296e20                                                                                               
incorrect global backref count on 28435234816 found 1 wanted 0                                                                                              
backpointer mismatch on [28435234816 16384]                                                                                                                 
owner ref check failed [28435234816 16384]                                                                                                                  
repair deleting extent record: key [28435234816,169,0]                                                                                                      
Repaired extent references for 28435234816     (0:21:14 elapsed, 86276 items checked)                                                                       
super bytes used 30210969600 mismatches actual used 30243770368, 86276 items checked)                                                                       
kernel-shared/free-space-tree.c:740: remove_free_space_extent: Assertion `start >= found_start && end <= found_end` failed, value 0                         
btrfs check(+0x2e5e2)[0x5590f20825e2]                                                                                                                       
btrfs check(+0x2e601)[0x5590f2082601]                                                                                                                       
btrfs check(remove_from_free_space_tree+0x1a9)[0x5590f2083a3f]                                                                                              
btrfs check(btrfs_run_delayed_refs+0x453)[0x5590f207e0f9]                                                                                                   
btrfs check(commit_tree_roots+0x83)[0x5590f208a278]                                                                                                         
btrfs check(btrfs_commit_transaction+0x5f)[0x5590f208a556]                                                                                                  
btrfs check(+0x6a56b)[0x5590f20be56b]                                                                                                                       
btrfs check(+0x6fa0e)[0x5590f20c3a0e]                                                                                                                       
btrfs check(main+0x318)[0x5590f206c128]                                                                                                                     
/lib/x86_64-linux-gnu/libc.so.6(+0x27c8a)[0x7fa14b941c8a]                                                                                                   
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x85)[0x7fa14b941d45]                                                                                     
btrfs check(_start+0x21)[0x5590f206c161]                                                                                                                    
Aborted               
@bodqhrohro
Copy link
Author

--init-csum-tree, forgot to mention.

I ran it on an unreliable microSD after dumping it.

Low-level reads are always successful on this kind of cards (ddrescue needed just one pass with no errors), but data turn out to be borked sometimes. btrfs driver is picky about that and yields input/output errors.

I have a similar card of the kind formatted to FAT32 and inserted into a phone, and have downloaded an anime season with CRC32 checksums in names there. There are playback errors sometimes with those video files, and when I dumped them via adbfs, I noticed that checksums of some files don't match, but match on other reads or when the card gets colder. So if I didn't know checksums, I could not know if the files are corrupted in the first place. Pretty like at good ol' diskette times with no low-level checksums, eh?

@bodqhrohro
Copy link
Author

Oh, and worth noting that on third such a card, I set up a redundant RAID array, and it works like a charm. I still hope I can do something like that for the card with Btrfs from OP (I use it to run Arch Linux Arm on a Chromebook, so it's under high load).

@bodqhrohro
Copy link
Author

Next run:

Reinitialize checksum tree
checksum verify failed on 2244198400 wanted 0x6cbdec51 found 0x36dd6f95
checksum verify failed on 2244214784 wanted 0xedf287bd found 0xa8217689
checksum verify failed on 2244132864 wanted 0x619e6724 found 0xefe9697f
checksum verify failed on 2244231168 wanted 0x361f5cf6 found 0x88a21879
kernel-shared/free-space-tree.c:736: remove_free_space_extent: Assertion `key.type == BTRFS_FREE_SPACE_EXTENT_KEY` failed, value 0
btrfs check(+0x2e5e2)[0x55b64709d5e2]
btrfs check(+0x2e601)[0x55b64709d601]
btrfs check(remove_from_free_space_tree+0x172)[0x55b64709ea08]
btrfs check(btrfs_run_delayed_refs+0x453)[0x55b6470990f9]
btrfs check(btrfs_commit_transaction+0x3b)[0x55b6470a5532]
btrfs check(+0x6e760)[0x55b6470dd760]
btrfs check(main+0x318)[0x55b647087128]
/lib/x86_64-linux-gnu/libc.so.6(+0x27c8a)[0x7f6bb1347c8a]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x85)[0x7f6bb1347d45]
btrfs check(_start+0x21)[0x55b647087161]
Aborted

@bodqhrohro
Copy link
Author

ddrescue map of one of corrupted files:

# Mapfile. Created by GNU ddrescue version 1.26
# Command line: ddrescue /media/bodqhrohro/rootfs/var/cache/pacman/pkg/ruby-3.0.5-1-armv7h.pkg.tar.xz /tmp/hru /tmp/hru.map
# Start time:   2024-07-22 22:24:06
# Current time: 2024-07-22 22:24:07
# Finished
# current_pos  current_status  current_pass
0x00226C00     +               1
#      pos        size  status
0x00000000  0x00226000  +
0x00226000  0x00001000  -
0x00227000  0x00014DB0  +

@kdave kdave added the bug label Jul 25, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants