Skip to contentSkip to conversation

[4.9] btrfs check --repair looping over file extent discount errors

DISCUSSION Martin Steigerwald 2 participants 5 messages Apr 14, 2017 – Apr 22, 2017 Btrfs file system

lore
Share & tools
lore
#0 lore raw

Hello,

backup harddisk connected via eSATA. Hard kernel hang, mouse pointer freezing two times seemingly after finishing /home backup and creating new snapshot on source BTRFS SSD RAID 1 for / in order to backup it. I did scrubbed / and it appears to be okay, but I didn´t run btrfs check on it. Anyway deleting that subvolume works and I as I suspected an issue with the backup disk I started with that one.

I got

merkaba:~> btrfs --version
btrfs-progs v4.9.1

merkaba:~> cat /proc/version
Linux version 4.9.20-tp520-btrfstrim+ (martin@merkaba) (gcc version 6.3.0 20170321 (Debian 6.3.0-11) ) #6 SMP PREEMPT Mon Apr 3 11:42:17 CEST 2017

merkaba:~> btrfs fi sh feenwald
Label: 'feenwald' uuid: […]
Total devices 1 FS bytes used 1.26TiB
devid 1 size 2.73TiB used 1.27TiB path /dev/sdc1

on Debian unstable on ThinkPad T520 connected via eSATA port on Minidock.

I am now running btrfs check --repair on it after without --repair the command reported file extent discount errors and it appears to loop on the same file extent discount errors for ages. Any advice?

I do have another backup harddisk with BTRFS that worked fine today, so I do not need to recover that drive immediately. I may let it run for a little more time, but then will abort the repair process as I really think its looping just over and over and over the same issues again. At some time I may just copy all the stuff that is on that harddisk, but not on the other one over to the other one and mkfs.btrfs the filesystem again, but I´d rather like to know whats happening here.

Here is output:

merkaba:~> btrfs check --repair /dev/sdc1
enabling repair mode
Checking filesystem on /dev/sdc1
[… UUID ommited …]
checking extents
Fixed 0 roots.
checking free space cache
cache and super generation don't match, space cache will be invalidated checking fs roots
root 257 inode 4979842 errors 100, file extent discount Found file extent holes:

        start: 0, len: 78798848
root 257 inode 4980212 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 143360
root 257 inode 4980214 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 4227072
root 257 inode 4979842 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 78798848
root 257 inode 4980212 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 143360
root 257 inode 4980214 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 4227072
root 257 inode 4979842 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 78798848
root 257 inode 4980212 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 143360
root 257 inode 4980214 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 4227072
root 257 inode 4979842 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 78798848
root 257 inode 4980212 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 143360
root 257 inode 4980214 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 4227072
[… hours later …]
root 257 inode 4979842 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 78798848
root 257 inode 4980212 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 143360
root 257 inode 4980214 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 4227072
root 257 inode 4979842 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 78798848
root 257 inode 4980212 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 143360
root 257 inode 4980214 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 4227072
root 257 inode 4979842 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 78798848
root 257 inode 4980212 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 143360
root 257 inode 4980214 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 4227072

This basically seems to go on like this forever.

Thanks,

Signature · 1 line
Martin
#1 lore raw

Hello.

I am planning to copy of important data on the disk with the broken filesystem to the disk with the good filesystem and then reformatitting the disk with the broken filesystem soon, probably in the course of the day… so in case you want any debug information before that, let me know ASAP.

Thanks,
Martin

Martin Steigerwald - 14.04.17, 21:35:

Quoted 117 lines

Hello,

backup harddisk connected via eSATA. Hard kernel hang, mouse pointer freezing two times seemingly after finishing /home backup and creating new snapshot on source BTRFS SSD RAID 1 for / in order to backup it. I did scrubbed / and it appears to be okay, but I didn´t run btrfs check on it. Anyway deleting that subvolume works and I as I suspected an issue with the backup disk I started with that one.

I got

merkaba:~> btrfs --version
btrfs-progs v4.9.1

merkaba:~> cat /proc/version
Linux version 4.9.20-tp520-btrfstrim+ (martin@merkaba) (gcc version 6.3.0 20170321 (Debian 6.3.0-11) ) #6 SMP PREEMPT Mon Apr 3 11:42:17 CEST 2017

merkaba:~> btrfs fi sh feenwald
Label: 'feenwald' uuid: […]
Total devices 1 FS bytes used 1.26TiB
devid 1 size 2.73TiB used 1.27TiB path /dev/sdc1

on Debian unstable on ThinkPad T520 connected via eSATA port on Minidock.

I am now running btrfs check --repair on it after without --repair the command reported file extent discount errors and it appears to loop on the same file extent discount errors for ages. Any advice?

I do have another backup harddisk with BTRFS that worked fine today, so I do not need to recover that drive immediately. I may let it run for a little more time, but then will abort the repair process as I really think its looping just over and over and over the same issues again. At some time I may just copy all the stuff that is on that harddisk, but not on the other one over to the other one and mkfs.btrfs the filesystem again, but I´d rather like to know whats happening here.

Here is output:

merkaba:~> btrfs check --repair /dev/sdc1
enabling repair mode
Checking filesystem on /dev/sdc1
[… UUID ommited …]
checking extents
Fixed 0 roots.
checking free space cache
cache and super generation don't match, space cache will be invalidated checking fs roots
root 257 inode 4979842 errors 100, file extent discount Found file extent holes:

        start: 0, len: 78798848
root 257 inode 4980212 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 143360
root 257 inode 4980214 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 4227072
root 257 inode 4979842 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 78798848
root 257 inode 4980212 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 143360
root 257 inode 4980214 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 4227072
root 257 inode 4979842 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 78798848
root 257 inode 4980212 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 143360
root 257 inode 4980214 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 4227072
root 257 inode 4979842 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 78798848
root 257 inode 4980212 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 143360
root 257 inode 4980214 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 4227072
[… hours later …]
root 257 inode 4979842 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 78798848
root 257 inode 4980212 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 143360
root 257 inode 4980214 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 4227072
root 257 inode 4979842 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 78798848
root 257 inode 4980212 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 143360
root 257 inode 4980214 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 4227072
root 257 inode 4979842 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 78798848
root 257 inode 4980212 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 143360
root 257 inode 4980214 errors 100, file extent discount
Found file extent holes:
        start: 0, len: 4227072

This basically seems to go on like this forever.

Thanks,

Signature · 1 line
Martin
#3 lore raw

Hello Chris.

Chris Murphy - 22.04.17, 09:31:

Quoted 1 line

Is the file system created with no-holes?

I have how to find out about it and while doing accidentally set that feature on another filesystem (btrfstune only seems to be able to enable the feature, not show the current state of it).

But as there is no notice of the feature being set as standard in manpage of mkfs.btrfs as of BTRFS tools 4.9.1 and as I didn´t set it myself, I best bet is that the feature is not enable on the filesystem.

Now I wonder… how to disable the feature on that other filesystem again.

Thanks,

#4 lore raw

Martin Steigerwald - 22.04.17, 20:01:

Quoted 4 lines

Chris Murphy - 22.04.17, 09:31:

Quoted 1 line

Is the file system created with no-holes?

I have how to find out about it and while doing accidentally set that

I didn´t find out how to find out about it and…

Quoted 8 lines

feature on another filesystem (btrfstune only seems to be able to enable the feature, not show the current state of it).

But as there is no notice of the feature being set as standard in manpage of mkfs.btrfs as of BTRFS tools 4.9.1 and as I didn´t set it myself, I best bet is that the feature is not enable on the filesystem.

Now I wonder… how to disable the feature on that other filesystem again.

Signature · 1 line
Martin