All of lore.kernel.org
 help / color / mirror / Atom feed
* btrfs check: backref lost, mismatch with its hash -- can't repair
@ 2018-01-22 14:11 ^m'e
  2018-01-22 14:38 ` Qu Wenruo
  0 siblings, 1 reply; 32+ messages in thread
From: ^m'e @ 2018-01-22 14:11 UTC (permalink / raw)
  To: linux-btrfs

Hi there,

After resuming from hibernation, my system shows weirdness; the
following dmesg line alerted me:

  Jan 22 08:10:33 [kernel] BTRFS critical (device sdb3): invalid dir
item name + data len: 3 + 32907

Although I can boot (root is BTRFS), (re-)mount the concerned FS,
succesfully scrub it (no error reported), I'm unable to repair... More
info (using a sysrescue with static a btrfs-progs build -- the same
installed on the main Funtoo system):

  # uname -a
  Linux sysresccd 4.9.60-std512-amd64 #2 SMP Thu Nov 2 17:43:13 UTC
2017 x86_64 Intel(R) Core(TM) i7-4702MQ CPU @ 2.20GHz GenuineIntel
GNU/Linux

  # ./btrfs.static --version
  btrfs-progs v4.14.1

  # ./btrfs.static fi show
   Label: 'BTR-POOL'  uuid: de1723e2-150c-4448-bb36-be14d7d96093
    Total devices 1 FS bytes used 97.73GiB
    devid    1 size 230.35GiB used 173.04GiB path /dev/sdb3

  # ./btrfs.static fi df /mnt/gentoo/
  Data, single: total=167.00GiB, used=95.64GiB
  System, single: total=32.00MiB, used=48.00KiB
  Metadata, single: total=6.01GiB, used=2.09GiB
  GlobalReserve, single: total=512.00MiB, used=0.00B

  # dmesg | grep BTRFS
 [14963.234135] BTRFS info (device sdb3): disk space caching is enabled
 [14963.234138] BTRFS info (device sdb3): has skinny extents
 [14963.261054] BTRFS info (device sdb3): detected SSD devices,
enabling SSD mode
 [14963.261485] BTRFS info (device sdb3): checking UUID tree


As for check and repair attempts:

------------------------------------------8<--------------------------------------
# ./btrfs.static check -p --mode=lowmem --check-data-csum /dev/sdb3
Checking filesystem on /dev/sdb3
UUID: de1723e2-150c-4448-bb36-be14d7d96093
ERROR: data extent[1862352896 425984] backref lost
ERROR: data extent[1886453760 479232] backref lost
ERROR: data extent[1902219264 524288] backref lost
ERROR: data extent[1817378816 151552] backref lost
ERROR: data extent[1799688192 57344] backref lost
ERROR: data extent[1830277120 258048] backref lost
ERROR: data extent[2558107648 1368064] backref lost
ERROR: errors found in extent allocation tree or chunk allocation
cache and super generation don't match, space cache will be invalidated
ERROR: root 257 DIR_ITEM[30039322 4007295565] name  namelen 0 filetype
0 mismatch with its hash, wanted 4007295565 have 4294967294
ERROR: root 257 INODE_ITEM[0] index 18446744073709551615 name
filetype 0 missing
ERROR: root 257 DIR_ITEM[30039322 4007295565] data_len shouldn't be 32907
ERROR: root 257 DIR_ITEM[30039322 4007295565] name  namelen 3 filetype
0 mismatch with its hash, wanted 4007295565 have 987418363
ERROR: root 257 INODE_ITEM[0] index 18446744073709551615 name
filetype 0 missing
ERROR: root 1385 INODE_ITEM[0] index 18446744073709551615 name
metadata.xml filetype 1 missing
ERROR: root 1385 DIR_ITEM[30039322 4007295565] name  namelen 0
filetype 0 mismatch with its hash, wanted 4007295565 have 4294967294
ERROR: root 1385 INODE_ITEM[0] index 18446744073709551615 name
filetype 0 missing
ERROR: root 1385 DIR_ITEM[30039322 4007295565] data_len shouldn't be 32907
ERROR: root 1385 DIR_ITEM[30039322 4007295565] name  namelen 3
filetype 0 mismatch with its hash, wanted 4007295565 have 987418363
ERROR: root 1385 INODE_ITEM[0] index 18446744073709551615 name
filetype 0 missing
ERROR: root 1385 DIR ITEM[30039322 2] name  filetype 1 missing
ERROR: root 1385 INODE REF[30039323, 30039322] name  filetype 1 missing
ERROR: root 1385 DIR ITEM[30039322 3] name metadata.xml filetype 1 mismath
ERROR: root 1385 DIR ITEM[30039322 5] name Manifest filetype 1 mismath
ERROR: root 1385 INODE_ITEM[47302014] index 6 name metadata.xml
filetype 1 missing
ERROR: root 1385 INODE_ITEM[47302015] index 7 name metadata.xml
filetype 1 missing
ERROR: root 1385 DIR INODE [30039322] size 152 not equal to 163
ERROR: errors found in fs roots
found 104939749376 bytes used, error(s) found
total csum bytes: 100264520
total tree bytes: 15521644544
total fs tree bytes: 15299624960
total extent tree bytes: 88293376
btree space waste bytes: 3468278611
file data blocks allocated: 373752188928
 referenced 322517573632
------------------------------------------8<--------------------------------------


------------------------------------------8<--------------------------------------
# ./btrfs.static check -p  --repair /dev/sdb3
Fixed 0 roots.
enabling repair mode
Checking filesystem on /dev/sdb3
UUID: de1723e2-150c-4448-bb36-be14d7d96093
ref mismatch on [1799688192 57344] extent item 2, found 1
Incorrect local backref count on 1799688192 parent 186517012480 owner
0 offset 0 found 0 wanted 1 back 0xde7d020
Backref disk bytenr does not match extent record, bytenr=1799688192,
ref bytenr=0
backpointer mismatch on [1799688192 57344]
repair deleting extent record: key 1799688192 168 57344
adding new data backref on 1799688192 root 257 owner 47301992 offset 0 found 1
Repaired extent references for 1799688192
ref mismatch on [1817378816 151552] extent item 2, found 1
Incorrect local backref count on 1817378816 parent 186517012480 owner
0 offset 0 found 0 wanted 1 back 0xde78200
Backref disk bytenr does not match extent record, bytenr=1817378816,
ref bytenr=0
backpointer mismatch on [1817378816 151552]
repair deleting extent record: key 1817378816 168 151552
adding new data backref on 1817378816 root 257 owner 47301982 offset 0 found 1
Repaired extent references for 1817378816
ref mismatch on [1830277120 258048] extent item 2, found 1
Incorrect local backref count on 1830277120 parent 186517012480 owner
0 offset 0 found 0 wanted 1 back 0xde98c00
Backref disk bytenr does not match extent record, bytenr=1830277120,
ref bytenr=0
backpointer mismatch on [1830277120 258048]
repair deleting extent record: key 1830277120 168 258048
adding new data backref on 1830277120 root 257 owner 47302002 offset 0 found 1
Repaired extent references for 1830277120
ref mismatch on [1862352896 425984] extent item 2, found 1
Incorrect local backref count on 1862352896 parent 186517012480 owner
0 offset 0 found 0 wanted 1 back 0xddedd30
Backref disk bytenr does not match extent record, bytenr=1862352896,
ref bytenr=0
backpointer mismatch on [1862352896 425984]
repair deleting extent record: key 1862352896 168 425984
adding new data backref on 1862352896 root 257 owner 47301952 offset 0 found 1
Repaired extent references for 1862352896
ref mismatch on [1886453760 479232] extent item 2, found 1
Incorrect local backref count on 1886453760 parent 186517012480 owner
0 offset 0 found 0 wanted 1 back 0xde45b10
Backref disk bytenr does not match extent record, bytenr=1886453760,
ref bytenr=0
backpointer mismatch on [1886453760 479232]
repair deleting extent record: key 1886453760 168 479232
adding new data backref on 1886453760 root 257 owner 47301962 offset 0 found 1
Repaired extent references for 1886453760
ref mismatch on [1902219264 524288] extent item 2, found 1
Incorrect local backref count on 1902219264 parent 186517012480 owner
0 offset 0 found 0 wanted 1 back 0xde54c50
Backref disk bytenr does not match extent record, bytenr=1902219264,
ref bytenr=0
backpointer mismatch on [1902219264 524288]
repair deleting extent record: key 1902219264 168 524288
adding new data backref on 1902219264 root 257 owner 47301972 offset 0 found 1
Repaired extent references for 1902219264
ref mismatch on [2558107648 1368064] extent item 2, found 1
Incorrect local backref count on 2558107648 parent 186517012480 owner
0 offset 0 found 0 wanted 1 back 0xdefd520
Backref disk bytenr does not match extent record, bytenr=2558107648,
ref bytenr=0
backpointer mismatch on [2558107648 1368064]
repair deleting extent record: key 2558107648 168 1368064
adding new data backref on 2558107648 root 257 owner 47302009 offset 0 found 1
Repaired extent references for 2558107648
owner ref check failed [186517012480 16384]
repair deleting extent record: key 186517012480 168 16384
adding new tree backref on start 186517012480 len 16384 parent 0 root 1385
Repaired extent references for 186517012480

No device size related problem found
cache and super generation don't match, space cache will be invalidated
ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
mismatch with its hash, wanted 4007295565 have 4294967294
invalid location in dir item 0
ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
mismatch with its hash, wanted 4007295565 have 987418363
invalid location in dir item 125
root 257 inode 30039322 errors 10, odd dir item
Failed to reset nlink for inode 18446744073709551361: No such file or directory
    unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
errors 6, no dir index, no inode ref
    unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
errors 6, no dir index, no inode ref
invalid location in dir item 0
ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
mismatch with its hash, wanted 4007295565 have 4294967294
invalid location in dir item 0
ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
mismatch with its hash, wanted 4007295565 have 987418363
invalid location in dir item 125
Deleting bad dir index [30039322,96,2] root 1385
Deleting bad dir index [30039322,96,6] root 1385
Deleting bad dir index [30039322,96,7] root 1385
invalid dir item size
adding missing dir index/item pair for inode 30039323
invalid dir item size
ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
mismatch with its hash, wanted 4007295565 have 4294967294
invalid location in dir item 0
ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
mismatch with its hash, wanted 4007295565 have 987418363
invalid location in dir item 125
root 257 inode 30039322 errors 10, odd dir item
Failed to reset nlink for inode 18446744073709551361: No such file or directory
    unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
errors 6, no dir index, no inode ref
    unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
errors 6, no dir index, no inode ref
ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
mismatch with its hash, wanted 4007295565 have 4294967294
invalid location in dir item 0
ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
mismatch with its hash, wanted 4007295565 have 987418363
invalid location in dir item 125
root 257 inode 30039322 errors 10, odd dir item
Failed to reset nlink for inode 18446744073709551361: No such file or directory
    unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
errors 6, no dir index, no inode ref
    unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
errors 6, no dir index, no inode ref
ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
mismatch with its hash, wanted 4007295565 have 4294967294
invalid location in dir item 0
ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
mismatch with its hash, wanted 4007295565 have 987418363
invalid location in dir item 125
root 257 inode 30039322 errors 10, odd dir item
....
------------------------------------------8<--------------------------------------

Note that the repair run seems stuck * looping* on the same inode
18446744073709551361, it doesn't progress (though I stopped it after
half an hour).

Please, help!

Cheers,

   Marco

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-22 14:11 btrfs check: backref lost, mismatch with its hash -- can't repair ^m'e
@ 2018-01-22 14:38 ` Qu Wenruo
  2018-01-22 15:04   ` ^m'e
  0 siblings, 1 reply; 32+ messages in thread
From: Qu Wenruo @ 2018-01-22 14:38 UTC (permalink / raw)
  To: ^m'e, linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 14156 bytes --]



On 2018年01月22日 22:11, ^m'e wrote:
> Hi there,
> 
> After resuming from hibernation, my system shows weirdness; the
> following dmesg line alerted me:
> 
>   Jan 22 08:10:33 [kernel] BTRFS critical (device sdb3): invalid dir
> item name + data len: 3 + 32907

This is true problem.

No dir item should have such large size, so it's definitely a corruption.

But until you ls the dir containing the offending dir item, it shouldn't
cause problem.

> 
> Although I can boot (root is BTRFS), (re-)mount the concerned FS,
> succesfully scrub it (no error reported), I'm unable to repair... More
> info (using a sysrescue with static a btrfs-progs build -- the same
> installed on the main Funtoo system):
> 
>   # uname -a
>   Linux sysresccd 4.9.60-std512-amd64 #2 SMP Thu Nov 2 17:43:13 UTC
> 2017 x86_64 Intel(R) Core(TM) i7-4702MQ CPU @ 2.20GHz GenuineIntel
> GNU/Linux
> 
>   # ./btrfs.static --version
>   btrfs-progs v4.14.1
> 
>   # ./btrfs.static fi show
>    Label: 'BTR-POOL'  uuid: de1723e2-150c-4448-bb36-be14d7d96093
>     Total devices 1 FS bytes used 97.73GiB
>     devid    1 size 230.35GiB used 173.04GiB path /dev/sdb3
> 
>   # ./btrfs.static fi df /mnt/gentoo/
>   Data, single: total=167.00GiB, used=95.64GiB
>   System, single: total=32.00MiB, used=48.00KiB
>   Metadata, single: total=6.01GiB, used=2.09GiB
>   GlobalReserve, single: total=512.00MiB, used=0.00B
> 
>   # dmesg | grep BTRFS
>  [14963.234135] BTRFS info (device sdb3): disk space caching is enabled
>  [14963.234138] BTRFS info (device sdb3): has skinny extents
>  [14963.261054] BTRFS info (device sdb3): detected SSD devices,
> enabling SSD mode
>  [14963.261485] BTRFS info (device sdb3): checking UUID tree
> 
> 
> As for check and repair attempts:
> 
> ------------------------------------------8<--------------------------------------
> # ./btrfs.static check -p --mode=lowmem --check-data-csum /dev/sdb3
> Checking filesystem on /dev/sdb3
> UUID: de1723e2-150c-4448-bb36-be14d7d96093
> ERROR: data extent[1862352896 425984] backref lost
> ERROR: data extent[1886453760 479232] backref lost
> ERROR: data extent[1902219264 524288] backref lost
> ERROR: data extent[1817378816 151552] backref lost
> ERROR: data extent[1799688192 57344] backref lost
> ERROR: data extent[1830277120 258048] backref lost
> ERROR: data extent[2558107648 1368064] backref lost

Not the best way to verify "backref lost" error.

Current lowmem mode is not 100% proven for such error detection, so it
may be false alerts, until original (no --repair) mode also reports such
problem.

But considering your later original mode repair is trying to insert
extent items for them, it's good to know they are not false alerts.

And for these errors, btrfs-progs repair should handle them well, so
they are not the main concern.

> ERROR: errors found in extent allocation tree or chunk allocation
> cache and super generation don't match, space cache will be invalidated
> ERROR: root 257 DIR_ITEM[30039322 4007295565] name  namelen 0 filetype
> 0 mismatch with its hash, wanted 4007295565 have 4294967294

And such error is what lowmem mode better at.

One dir item has mismatch hash with its data, either the data len is
corrupted or the hash.

> ERROR: root 257 INODE_ITEM[0] index 18446744073709551615 name
> filetype 0 missing
> ERROR: root 257 DIR_ITEM[30039322 4007295565] data_len shouldn't be 32907

Paired with the first error, it's obvious the namelen is corrupted.

> ERROR: root 257 DIR_ITEM[30039322 4007295565] name  namelen 3 filetype
> 0 mismatch with its hash, wanted 4007295565 have 987418363
> ERROR: root 257 INODE_ITEM[0] index 18446744073709551615 name
> filetype 0 missing

And some obvious index key corruption in INODE_REF.
The index is way too large for any sane fs.

So clearly a leaf (maybe more leaves) corruption.

And that's why btrfs uses DUP for its metadata as default.
(You just need to pay that cost since you choose to use single meta profile)

> ERROR: root 1385 INODE_ITEM[0] index 18446744073709551615 name
> metadata.xml filetype 1 missing
> ERROR: root 1385 DIR_ITEM[30039322 4007295565] name  namelen 0
> filetype 0 mismatch with its hash, wanted 4007295565 have 4294967294
> ERROR: root 1385 INODE_ITEM[0] index 18446744073709551615 name
> filetype 0 missing
> ERROR: root 1385 DIR_ITEM[30039322 4007295565] data_len shouldn't be 32907
> ERROR: root 1385 DIR_ITEM[30039322 4007295565] name  namelen 3
> filetype 0 mismatch with its hash, wanted 4007295565 have 987418363
> ERROR: root 1385 INODE_ITEM[0] index 18446744073709551615 name
> filetype 0 missing
> ERROR: root 1385 DIR ITEM[30039322 2] name  filetype 1 missing
> ERROR: root 1385 INODE REF[30039323, 30039322] name  filetype 1 missing
> ERROR: root 1385 DIR ITEM[30039322 3] name metadata.xml filetype 1 mismath
> ERROR: root 1385 DIR ITEM[30039322 5] name Manifest filetype 1 mismath
> ERROR: root 1385 INODE_ITEM[47302014] index 6 name metadata.xml
> filetype 1 missing
> ERROR: root 1385 INODE_ITEM[47302015] index 7 name metadata.xml
> filetype 1 missing
> ERROR: root 1385 DIR INODE [30039322] size 152 not equal to 163

The good news is, the corruption seems to be all in one leaf, or at
least for one subvolume.


> ERROR: errors found in fs roots
> found 104939749376 bytes used, error(s) found
> total csum bytes: 100264520
> total tree bytes: 15521644544
> total fs tree bytes: 15299624960
> total extent tree bytes: 88293376
> btree space waste bytes: 3468278611
> file data blocks allocated: 373752188928
>  referenced 322517573632
> ------------------------------------------8<--------------------------------------
> 
> 
> ------------------------------------------8<--------------------------------------
> # ./btrfs.static check -p  --repair /dev/sdb3
> Fixed 0 roots.
> enabling repair mode
> Checking filesystem on /dev/sdb3
> UUID: de1723e2-150c-4448-bb36-be14d7d96093
> ref mismatch on [1799688192 57344] extent item 2, found 1
> Incorrect local backref count on 1799688192 parent 186517012480 owner
> 0 offset 0 found 0 wanted 1 back 0xde7d020
> Backref disk bytenr does not match extent record, bytenr=1799688192,
> ref bytenr=0
> backpointer mismatch on [1799688192 57344]
> repair deleting extent record: key 1799688192 168 57344
> adding new data backref on 1799688192 root 257 owner 47301992 offset 0 found 1
> Repaired extent references for 1799688192
> ref mismatch on [1817378816 151552] extent item 2, found 1
> Incorrect local backref count on 1817378816 parent 186517012480 owner
> 0 offset 0 found 0 wanted 1 back 0xde78200
> Backref disk bytenr does not match extent record, bytenr=1817378816,
> ref bytenr=0
> backpointer mismatch on [1817378816 151552]
> repair deleting extent record: key 1817378816 168 151552
> adding new data backref on 1817378816 root 257 owner 47301982 offset 0 found 1
> Repaired extent references for 1817378816
> ref mismatch on [1830277120 258048] extent item 2, found 1
> Incorrect local backref count on 1830277120 parent 186517012480 owner
> 0 offset 0 found 0 wanted 1 back 0xde98c00
> Backref disk bytenr does not match extent record, bytenr=1830277120,
> ref bytenr=0
> backpointer mismatch on [1830277120 258048]
> repair deleting extent record: key 1830277120 168 258048
> adding new data backref on 1830277120 root 257 owner 47302002 offset 0 found 1
> Repaired extent references for 1830277120
> ref mismatch on [1862352896 425984] extent item 2, found 1
> Incorrect local backref count on 1862352896 parent 186517012480 owner
> 0 offset 0 found 0 wanted 1 back 0xddedd30
> Backref disk bytenr does not match extent record, bytenr=1862352896,
> ref bytenr=0
> backpointer mismatch on [1862352896 425984]
> repair deleting extent record: key 1862352896 168 425984
> adding new data backref on 1862352896 root 257 owner 47301952 offset 0 found 1
> Repaired extent references for 1862352896
> ref mismatch on [1886453760 479232] extent item 2, found 1
> Incorrect local backref count on 1886453760 parent 186517012480 owner
> 0 offset 0 found 0 wanted 1 back 0xde45b10
> Backref disk bytenr does not match extent record, bytenr=1886453760,
> ref bytenr=0
> backpointer mismatch on [1886453760 479232]
> repair deleting extent record: key 1886453760 168 479232
> adding new data backref on 1886453760 root 257 owner 47301962 offset 0 found 1
> Repaired extent references for 1886453760
> ref mismatch on [1902219264 524288] extent item 2, found 1
> Incorrect local backref count on 1902219264 parent 186517012480 owner
> 0 offset 0 found 0 wanted 1 back 0xde54c50
> Backref disk bytenr does not match extent record, bytenr=1902219264,
> ref bytenr=0
> backpointer mismatch on [1902219264 524288]
> repair deleting extent record: key 1902219264 168 524288
> adding new data backref on 1902219264 root 257 owner 47301972 offset 0 found 1
> Repaired extent references for 1902219264
> ref mismatch on [2558107648 1368064] extent item 2, found 1
> Incorrect local backref count on 2558107648 parent 186517012480 owner
> 0 offset 0 found 0 wanted 1 back 0xdefd520
> Backref disk bytenr does not match extent record, bytenr=2558107648,
> ref bytenr=0
> backpointer mismatch on [2558107648 1368064]
> repair deleting extent record: key 2558107648 168 1368064
> adding new data backref on 2558107648 root 257 owner 47302009 offset 0 found 1
> Repaired extent references for 2558107648
> owner ref check failed [186517012480 16384]
> repair deleting extent record: key 186517012480 168 16384
> adding new tree backref on start 186517012480 len 16384 parent 0 root 1385
> Repaired extent references for 186517012480
> 
> No device size related problem found
> cache and super generation don't match, space cache will be invalidated
> ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
> mismatch with its hash, wanted 4007295565 have 4294967294
> invalid location in dir item 0
> ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
> mismatch with its hash, wanted 4007295565 have 987418363
> invalid location in dir item 125
> root 257 inode 30039322 errors 10, odd dir item
> Failed to reset nlink for inode 18446744073709551361: No such file or directory
>     unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
> errors 6, no dir index, no inode ref
>     unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
> errors 6, no dir index, no inode ref
> invalid location in dir item 0
> ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
> mismatch with its hash, wanted 4007295565 have 4294967294
> invalid location in dir item 0
> ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
> mismatch with its hash, wanted 4007295565 have 987418363
> invalid location in dir item 125
> Deleting bad dir index [30039322,96,2] root 1385
> Deleting bad dir index [30039322,96,6] root 1385
> Deleting bad dir index [30039322,96,7] root 1385
> invalid dir item size
> adding missing dir index/item pair for inode 30039323
> invalid dir item size
> ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
> mismatch with its hash, wanted 4007295565 have 4294967294
> invalid location in dir item 0
> ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
> mismatch with its hash, wanted 4007295565 have 987418363
> invalid location in dir item 125
> root 257 inode 30039322 errors 10, odd dir item
> Failed to reset nlink for inode 18446744073709551361: No such file or directory
>     unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
> errors 6, no dir index, no inode ref
>     unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
> errors 6, no dir index, no inode ref
> ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
> mismatch with its hash, wanted 4007295565 have 4294967294
> invalid location in dir item 0
> ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
> mismatch with its hash, wanted 4007295565 have 987418363
> invalid location in dir item 125
> root 257 inode 30039322 errors 10, odd dir item
> Failed to reset nlink for inode 18446744073709551361: No such file or directory
>     unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
> errors 6, no dir index, no inode ref
>     unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
> errors 6, no dir index, no inode ref
> ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
> mismatch with its hash, wanted 4007295565 have 4294967294
> invalid location in dir item 0
> ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
> mismatch with its hash, wanted 4007295565 have 987418363
> invalid location in dir item 125
> root 257 inode 30039322 errors 10, odd dir item
> ....
> ------------------------------------------8<--------------------------------------
> 
> Note that the repair run seems stuck * looping* on the same inode
> 18446744073709551361, it doesn't progress (though I stopped it after
> half an hour).

We could enhance the repair, but considering how many problem we have in
a single leaf, the fix won't come any time soon.

> 
> Please, help!

If you really need quick and dirty (maybe sometimes deadly) fix, I could
hand craft some small fixes, but no warranty to work.

Please provide the following data:
(Unfortunately, to really make it work, we need the exact length of each
filename, so censoring your filename is not a good idea, and may leak
your confidential info. And none ASCII chars in filename may make the
case even worse)

# btrfs-debug-tree -t 1385 <device> | grep -C 20 30039322

And later work may need extra info too, depending on the corruption type.

Thanks,
Qu

> 
> Cheers,
> 
>    Marco
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 520 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-22 14:38 ` Qu Wenruo
@ 2018-01-22 15:04   ` ^m'e
  2018-01-24  8:49     ` Qu Wenruo
  0 siblings, 1 reply; 32+ messages in thread
From: ^m'e @ 2018-01-22 15:04 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs

Thanks for the quick reply, Qu!

I forgot to say that I see weird characters in the btrfs check repair
in lines "ERROR: DIR_ITEM... name ..." output. Although that can be
due to corruption, I seem to remember that a previous version of
btrfs-progs I used didn't show that...
I also see:

   [19428.934684] init_special_inode: bogus i_mode (700) for inode
sdb3:18446744073709551361

BTW, no sensible names in the debug output, and as far as I can see,
it might be all stuff in '[rootfs]/usr/portage': if that's the case,
corrupted inodes can be safely removed, as the portage package tree
can be easily rebuild. Here you are:

---------------------------------->8-------------------------------------
# cat btrfs-debug.30039322.log
        location key (30037910 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 3
        name: bam
    item 52 key (30037720 DIR_ITEM 508462201) itemoff 14104 itemsize 40
        location key (30039832 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 10
        name: suse-build
    item 53 key (30037720 DIR_ITEM 541125215) itemoff 14070 itemsize 34
        location key (30038354 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 4
        name: cram
    item 54 key (30037720 DIR_ITEM 543235706) itemoff 14035 itemsize 35
        location key (30039133 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 5
        name: lsuio
    item 55 key (30037720 DIR_ITEM 586823170) itemoff 14000 itemsize 35
        location key (30038846 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 5
        name: geany
    item 56 key (30037720 DIR_ITEM 603413733) itemoff 13938 itemsize 62
        location key (30039322 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 32
        name: obs-service-download_src_package
    item 57 key (30037720 DIR_ITEM 623694194) itemoff 13903 itemsize 35
        location key (30038092 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 5
        name: byacc
    item 58 key (30037720 DIR_ITEM 637448305) itemoff 13868 itemsize 35
        location key (43374420 INODE_ITEM 0) type DIR
        transid 200308 data_len 0 name_len 5
        name: vpuml
    item 59 key (30037720 DIR_ITEM 660989717) itemoff 13828 itemsize 40
        location key (30038283 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 10
        name: comparator
    item 60 key (30037720 DIR_ITEM 666000672) itemoff 13782 itemsize 46
        location key (30039257 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 16
        name: molecule-plugins
    item 61 key (30037720 DIR_ITEM 679217690) itemoff 13749 itemsize 33
        location key (36281336 INODE_ITEM 0) type DIR
--
        location key (30039292 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 15
        name: nvidia-cuda-sdk
    item 73 key (30037720 DIR_INDEX 238) itemoff 13448 itemsize 49
        location key (30039299 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 19
        name: nvidia-cuda-toolkit
    item 74 key (30037720 DIR_INDEX 239) itemoff 13411 itemsize 37
        location key (30039309 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 7
        name: objconv
    item 75 key (30037720 DIR_INDEX 240) itemoff 13361 itemsize 50
        location key (30039314 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 20
        name: obs-service-cpanspec
    item 76 key (30037720 DIR_INDEX 241) itemoff 13305 itemsize 56
        location key (30039318 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 26
        name: obs-service-download_files
    item 77 key (30037720 DIR_INDEX 242) itemoff 13243 itemsize 62
        location key (30039322 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 32
        name: obs-service-download_src_package
    item 78 key (30037720 DIR_INDEX 243) itemoff 13189 itemsize 54
        location key (30039326 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 24
        name: obs-service-download_url
    item 79 key (30037720 DIR_INDEX 244) itemoff 13135 itemsize 54
        location key (30039330 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 24
        name: obs-service-extract_file
    item 80 key (30037720 DIR_INDEX 245) itemoff 13077 itemsize 58
        location key (30039334 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 28
        name: obs-service-format_spec_file
    item 81 key (30037720 DIR_INDEX 246) itemoff 13007 itemsize 70
        location key (30039338 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 40
        name: obs-service-generator_driver_update_disk
    item 82 key (30037720 DIR_INDEX 247) itemoff 12953 itemsize 54
        location key (30039342 INODE_ITEM 0) type DIR
--
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 73 key (30039320 INODE_REF 30039318) itemoff 5278 itemsize 22
        index 3 namelen 12 name: metadata.xml
    item 74 key (30039320 EXTENT_DATA 0) itemoff 4809 itemsize 469
        generation 136248 type 0 (inline)
        inline extent data size 448 ram_bytes 448 compression 0 (none)
    item 75 key (30039321 INODE_ITEM 0) itemoff 4649 itemsize 160
        generation 136248 transid 202216 size 213 nbytes 213
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 76 key (30039321 INODE_REF 30039318) itemoff 4597 itemsize 52
        index 4 namelen 42 name: obs-service-download_files-20130716.ebuild
    item 77 key (30039321 EXTENT_DATA 0) itemoff 4363 itemsize 234
        generation 136248 type 0 (inline)
        inline extent data size 213 ram_bytes 213 compression 0 (none)
    item 78 key (30039322 INODE_ITEM 0) itemoff 4203 itemsize 160
        generation 136248 transid 229515 size 152 nbytes 0
        block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xf(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1516557882.551679697 (2018-01-21 18:04:42)
        mtime 1516557882.551679697 (2018-01-21 18:04:42)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 79 key (30039322 INODE_REF 30037720) itemoff 4161 itemsize 42
        index 242 namelen 32 name: obs-service-download_src_package
    item 80 key (30039322 DIR_ITEM 1076301169) itemoff 4083 itemsize 78
        location key (30039325 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 48
        name: obs-service-download_src_package-20130318.ebuild
    item 81 key (30039322 DIR_ITEM 2438219243) itemoff 4041 itemsize 42
        location key (0 UNKNOWN.0 0) type FILE
        transid 136192 data_len 0 name_len 12
        name: metadata.xml
    item 82 key (30039322 DIR_ITEM 4007295565) itemoff 3927 itemsize 114
        location key (0 UNKNOWN.0 0) type DIR_ITEM.0
        transid 0 data_len 0 name_len 0
        name:
        location key (0 UNKNOWN.125 72057594038112709) type DIR_ITEM.0
        transid 0 data_len 32907 name_len 3
        name:
        data
    item 83 key (30039322 DIR_INDEX 2) itemoff 3889 itemsize 38
        location key (30039323 INODE_ITEM 0) type FILE
        transid 3377699720527872 data_len 0 name_len 8
        name: Manifest
    item 84 key (30039322 DIR_INDEX 3) itemoff 3847 itemsize 42
        location key (30039324 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 12
        name: metadata.xml
    item 85 key (30039322 DIR_INDEX 4) itemoff 3769 itemsize 78
        location key (30039325 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 48
        name: obs-service-download_src_package-20130318.ebuild
    item 86 key (30039322 DIR_INDEX 5) itemoff 3731 itemsize 38
        location key (47302013 INODE_ITEM 0) type FILE
        transid 229515 data_len 0 name_len 8
        name: Manifest
    item 87 key (30039323 INODE_ITEM 0) itemoff 3571 itemsize 160
        generation 136248 transid 202216 size 782 nbytes 782
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 88 key (30039323 INODE_REF 30039322) itemoff 3553 itemsize 18
        index 2 namelen 8 name: Manifest
    item 89 key (30039323 EXTENT_DATA 0) itemoff 2750 itemsize 803
        generation 136248 type 0 (inline)
        inline extent data size 782 ram_bytes 782 compression 0 (none)
    item 90 key (30039324 INODE_ITEM 0) itemoff 2590 itemsize 160
        generation 136248 transid 202216 size 448 nbytes 448
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 91 key (30039324 INODE_REF 30039322) itemoff 2568 itemsize 22
        index 3 namelen 12 name: metadata.xml
leaf 36701356032 items 44 free space 8701 generation 202216 owner 257
leaf 36701356032 flags 0x1(WRITTEN) backref revision 1
fs uuid de1723e2-150c-4448-bb36-be14d7d96093
chunk uuid 443a227c-4f87-419a-b89a-3f5714eea403
    item 0 key (30039324 EXTENT_DATA 0) itemoff 15814 itemsize 469
        generation 136248 type 0 (inline)
        inline extent data size 448 ram_bytes 448 compression 0 (none)
    item 1 key (30039325 INODE_ITEM 0) itemoff 15654 itemsize 160
        generation 136248 transid 202216 size 213 nbytes 213
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 2 key (30039325 INODE_REF 30039322) itemoff 15596 itemsize 58
        index 4 namelen 48 name:
obs-service-download_src_package-20130318.ebuild
    item 3 key (30039325 EXTENT_DATA 0) itemoff 15362 itemsize 234
        generation 136248 type 0 (inline)
        inline extent data size 213 ram_bytes 213 compression 0 (none)
    item 4 key (30039326 INODE_ITEM 0) itemoff 15202 itemsize 160
        generation 136248 transid 202216 size 120 nbytes 0
        block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xe(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.541278502 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 5 key (30039326 INODE_REF 30037720) itemoff 15168 itemsize 34
        index 243 namelen 24 name: obs-service-download_url
    item 6 key (30039326 DIR_ITEM 1441374077) itemoff 15098 itemsize 70
        location key (30039329 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 40
        name: obs-service-download_url-20130318.ebuild
    item 7 key (30039326 DIR_ITEM 2438219243) itemoff 15056 itemsize 42
        location key (30039328 INODE_ITEM 0) type FILE
--
        generation 229515 transid 229515 size 26 nbytes 26
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0x2(none)
        atime 1516557882.505679580 (2018-01-21 18:04:42)
        ctime 1516557882.505679580 (2018-01-21 18:04:42)
        mtime 1516557882.505679580 (2018-01-21 18:04:42)
        otime 1516557882.505679580 (2018-01-21 18:04:42)
    item 61 key (47302010 INODE_REF 30002892) itemoff 11503 itemsize 14
        index 1798 namelen 4 name: HEAD
    item 62 key (47302010 EXTENT_DATA 0) itemoff 11456 itemsize 47
        generation 229515 type 0 (inline)
        inline extent data size 26 ram_bytes 26 compression 0 (none)
    item 63 key (47302013 INODE_ITEM 0) itemoff 11296 itemsize 160
        generation 229515 transid 229516 size 782 nbytes 782
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0x0(none)
        atime 1516557882.551679697 (2018-01-21 18:04:42)
        ctime 1516557882.551679697 (2018-01-21 18:04:42)
        mtime 1516557882.551679697 (2018-01-21 18:04:42)
        otime 1516557882.551679697 (2018-01-21 18:04:42)
    item 64 key (47302013 INODE_REF 30039322) itemoff 11278 itemsize 18
        index 5 namelen 8 name: Manifest
leaf 186518913024 items 86 free space 3119 generation 229516 owner 257
leaf 186518913024 flags 0x1(WRITTEN) backref revision 1
fs uuid de1723e2-150c-4448-bb36-be14d7d96093
chunk uuid 443a227c-4f87-419a-b89a-3f5714eea403
    item 0 key (47302013 EXTENT_DATA 0) itemoff 15480 itemsize 803
        generation 229516 type 0 (inline)
        inline extent data size 782 ram_bytes 782 compression 0 (none)
    item 1 key (47302018 INODE_ITEM 0) itemoff 15320 itemsize 160
        generation 229515 transid 229515 size 41 nbytes 41
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0x2(none)
        atime 1516557883.180681304 (2018-01-21 18:04:43)
        ctime 1516557883.180681304 (2018-01-21 18:04:43)
        mtime 1516557883.180681304 (2018-01-21 18:04:43)
        otime 1516557883.180681304 (2018-01-21 18:04:43)
    item 2 key (47302018 INODE_REF 30002892) itemoff 15301 itemsize 19
        index 1801 namelen 9 name: ORIG_HEAD
    item 3 key (47302018 EXTENT_DATA 0) itemoff 15239 itemsize 62
        generation 229515 type 0 (inline)
---------------------------------->8-------------------------------------

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-22 15:04   ` ^m'e
@ 2018-01-24  8:49     ` Qu Wenruo
  2018-01-24  9:18       ` Foo Bar
  0 siblings, 1 reply; 32+ messages in thread
From: Qu Wenruo @ 2018-01-24  8:49 UTC (permalink / raw)
  To: ^m'e; +Cc: linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 9977 bytes --]

Sorry for the late reply, I was off yesterday.

On 2018年01月22日 23:04, ^m'e wrote:
> Thanks for the quick reply, Qu!
> 
> I forgot to say that I see weird characters in the btrfs check repair
> in lines "ERROR: DIR_ITEM... name ..." output. Although that can be
> due to corruption, I seem to remember that a previous version of
> btrfs-progs I used didn't show that...
> I also see:
> 
>    [19428.934684] init_special_inode: bogus i_mode (700) for inode
> sdb3:18446744073709551361
> 
> BTW, no sensible names in the debug output, and as far as I can see,
> it might be all stuff in '[rootfs]/usr/portage': if that's the case,
> corrupted inodes can be safely removed, as the portage package tree
> can be easily rebuild. Here you are:
> 
> ---------------------------------->8-------------------------------------
> # cat btrfs-debug.30039322.log[snip]

This where the dir starts.

>     item 78 key (30039322 INODE_ITEM 0) itemoff 4203 itemsize 160
>         generation 136248 transid 229515 size 152 nbytes 0
>         block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xf(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1516557882.551679697 (2018-01-21 18:04:42)
>         mtime 1516557882.551679697 (2018-01-21 18:04:42)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 79 key (30039322 INODE_REF 30037720) itemoff 4161 itemsize 42
>         index 242 namelen 32 name: obs-service-download_src_package
>     item 80 key (30039322 DIR_ITEM 1076301169) itemoff 4083 itemsize 78
>         location key (30039325 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 48
>         name: obs-service-download_src_package-20130318.ebuild
>     item 81 key (30039322 DIR_ITEM 2438219243) itemoff 4041 itemsize 42
>         location key (0 UNKNOWN.0 0) type FILE
>         transid 136192 data_len 0 name_len 12
>         name: metadata.xml
>     item 82 key (30039322 DIR_ITEM 4007295565) itemoff 3927 itemsize 114
>         location key (0 UNKNOWN.0 0) type DIR_ITEM.0
>         transid 0 data_len 0 name_len 0
>         name:
>         location key (0 UNKNOWN.125 72057594038112709) type DIR_ITEM.0
>         transid 0 data_len 32907 name_len 3
>         name:
>         data

The whole item is corrupted.
Seems to be a half-written item get flushed to disk.

I assume this is the DIR_ITEM for *two* Manifest, but that's just
insane, as we're going to have 2 files with the same name "Manifest"

>     item 83 key (30039322 DIR_INDEX 2) itemoff 3889 itemsize 38
>         location key (30039323 INODE_ITEM 0) type FILE
>         transid 3377699720527872 data_len 0 name_len 8

The transid seems corrupted too.

Maybe I need to delete this item too?

>         name: Manifest
>     item 84 key (30039322 DIR_INDEX 3) itemoff 3847 itemsize 42
>         location key (30039324 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 12
>         name: metadata.xml
>     item 85 key (30039322 DIR_INDEX 4) itemoff 3769 itemsize 78
>         location key (30039325 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 48
>         name: obs-service-download_src_package-20130318.ebuild
>     item 86 key (30039322 DIR_INDEX 5) itemoff 3731 itemsize 38
>         location key (47302013 INODE_ITEM 0) type FILE
>         transid 229515 data_len 0 name_len 8
>         name: Manifest
>     item 87 key (30039323 INODE_ITEM 0) itemoff 3571 itemsize 160
>         generation 136248 transid 202216 size 782 nbytes 782
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 88 key (30039323 INODE_REF 30039322) itemoff 3553 itemsize 18
>         index 2 namelen 8 name: Manifest
>     item 89 key (30039323 EXTENT_DATA 0) itemoff 2750 itemsize 803
>         generation 136248 type 0 (inline)
>         inline extent data size 782 ram_bytes 782 compression 0 (none)
>     item 90 key (30039324 INODE_ITEM 0) itemoff 2590 itemsize 160
>         generation 136248 transid 202216 size 448 nbytes 448
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 91 key (30039324 INODE_REF 30039322) itemoff 2568 itemsize 22
>         index 3 namelen 12 name: metadata.xml
> leaf 36701356032 items 44 free space 8701 generation 202216 owner 257
> leaf 36701356032 flags 0x1(WRITTEN) backref revision 1
> fs uuid de1723e2-150c-4448-bb36-be14d7d96093
> chunk uuid 443a227c-4f87-419a-b89a-3f5714eea403
>     item 0 key (30039324 EXTENT_DATA 0) itemoff 15814 itemsize 469
>         generation 136248 type 0 (inline)
>         inline extent data size 448 ram_bytes 448 compression 0 (none)
>     item 1 key (30039325 INODE_ITEM 0) itemoff 15654 itemsize 160
>         generation 136248 transid 202216 size 213 nbytes 213
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 2 key (30039325 INODE_REF 30039322) itemoff 15596 itemsize 58
>         index 4 namelen 48 name:
> obs-service-download_src_package-20130318.ebuild
>     item 3 key (30039325 EXTENT_DATA 0) itemoff 15362 itemsize 234
>         generation 136248 type 0 (inline)
>         inline extent data size 213 ram_bytes 213 compression 0 (none)
>     item 4 key (30039326 INODE_ITEM 0) itemoff 15202 itemsize 160
>         generation 136248 transid 202216 size 120 nbytes 0
>         block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xe(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.541278502 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 5 key (30039326 INODE_REF 30037720) itemoff 15168 itemsize 34
>         index 243 namelen 24 name: obs-service-download_url
>     item 6 key (30039326 DIR_ITEM 1441374077) itemoff 15098 itemsize 70
>         location key (30039329 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 40
>         name: obs-service-download_url-20130318.ebuild
>     item 7 key (30039326 DIR_ITEM 2438219243) itemoff 15056 itemsize 42
>         location key (30039328 INODE_ITEM 0) type FILE
> --
>         generation 229515 transid 229515 size 26 nbytes 26
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0x2(none)
>         atime 1516557882.505679580 (2018-01-21 18:04:42)
>         ctime 1516557882.505679580 (2018-01-21 18:04:42)
>         mtime 1516557882.505679580 (2018-01-21 18:04:42)
>         otime 1516557882.505679580 (2018-01-21 18:04:42)
>     item 61 key (47302010 INODE_REF 30002892) itemoff 11503 itemsize 14
>         index 1798 namelen 4 name: HEAD
>     item 62 key (47302010 EXTENT_DATA 0) itemoff 11456 itemsize 47
>         generation 229515 type 0 (inline)
>         inline extent data size 26 ram_bytes 26 compression 0 (none)
>     item 63 key (47302013 INODE_ITEM 0) itemoff 11296 itemsize 160
>         generation 229515 transid 229516 size 782 nbytes 782
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0x0(none)
>         atime 1516557882.551679697 (2018-01-21 18:04:42)
>         ctime 1516557882.551679697 (2018-01-21 18:04:42)
>         mtime 1516557882.551679697 (2018-01-21 18:04:42)
>         otime 1516557882.551679697 (2018-01-21 18:04:42)
>     item 64 key (47302013 INODE_REF 30039322) itemoff 11278 itemsize 18
>         index 5 namelen 8 name: Manifest

Now we do have 2 "Manifest".

Which one do you prefer to delete?

The latter one, inode 47302013 seems newer, while previous one, inode
30039323 is pretty old.

Despite that, I didn't see big problem in the dump.

I'll just craft the dirty fix to delete one inode and the incorrect dir
index/item.

Thanks,
Qu

> leaf 186518913024 items 86 free space 3119 generation 229516 owner 257
> leaf 186518913024 flags 0x1(WRITTEN) backref revision 1
> fs uuid de1723e2-150c-4448-bb36-be14d7d96093
> chunk uuid 443a227c-4f87-419a-b89a-3f5714eea403
>     item 0 key (47302013 EXTENT_DATA 0) itemoff 15480 itemsize 803
>         generation 229516 type 0 (inline)
>         inline extent data size 782 ram_bytes 782 compression 0 (none)
>     item 1 key (47302018 INODE_ITEM 0) itemoff 15320 itemsize 160
>         generation 229515 transid 229515 size 41 nbytes 41
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0x2(none)
>         atime 1516557883.180681304 (2018-01-21 18:04:43)
>         ctime 1516557883.180681304 (2018-01-21 18:04:43)
>         mtime 1516557883.180681304 (2018-01-21 18:04:43)
>         otime 1516557883.180681304 (2018-01-21 18:04:43)
>     item 2 key (47302018 INODE_REF 30002892) itemoff 15301 itemsize 19
>         index 1801 namelen 9 name: ORIG_HEAD
>     item 3 key (47302018 EXTENT_DATA 0) itemoff 15239 itemsize 62
>         generation 229515 type 0 (inline)
> ---------------------------------->8-------------------------------------
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 520 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-24  8:49     ` Qu Wenruo
@ 2018-01-24  9:18       ` Foo Bar
  2018-01-24 10:14         ` Qu Wenruo
  0 siblings, 1 reply; 32+ messages in thread
From: Foo Bar @ 2018-01-24  9:18 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 4374 bytes --]

Qu Wenruo wrote on 2018-01-24 09:49:
> Sorry for the late reply, I was off yesterday.
>

No problem :-)

Booted normally today, system up, but see this (I forgot to stop the snapshot
cron task...)

  [  115.127961] BTRFS error (device sdb3): Send: inconsistent snapshot, found
deleted reference for inode 30039323 without updated inode item, send root is
1399, parent root is 1385

So inode 30039323 looks definitely the bad one. Let's get rid of it and keep
the newest dups, if any, thanks!

Cheers,

  Marco

> On 2018年01月22日 23:04, ^m'e wrote:
>> Thanks for the quick reply, Qu!
>>
>> I forgot to say that I see weird characters in the btrfs check repair
>> in lines "ERROR: DIR_ITEM... name ..." output. Although that can be
>> due to corruption, I seem to remember that a previous version of
>> btrfs-progs I used didn't show that...
>> I also see:
>>
>>    [19428.934684] init_special_inode: bogus i_mode (700) for inode
>> sdb3:18446744073709551361
>>
>> BTW, no sensible names in the debug output, and as far as I can see,
>> it might be all stuff in '[rootfs]/usr/portage': if that's the case,
>> corrupted inodes can be safely removed, as the portage package tree
>> can be easily rebuild. Here you are:
>>
>> ---------------------------------->8-------------------------------------
>> # cat btrfs-debug.30039322.log[snip]
> 
> This where the dir starts.
> 
>>     item 78 key (30039322 INODE_ITEM 0) itemoff 4203 itemsize 160
>>         generation 136248 transid 229515 size 152 nbytes 0
>>         block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
>>         sequence 0 flags 0xf(none)
>>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>>         ctime 1516557882.551679697 (2018-01-21 18:04:42)
>>         mtime 1516557882.551679697 (2018-01-21 18:04:42)
>>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>>     item 79 key (30039322 INODE_REF 30037720) itemoff 4161 itemsize 42
>>         index 242 namelen 32 name: obs-service-download_src_package
>>     item 80 key (30039322 DIR_ITEM 1076301169) itemoff 4083 itemsize 78
>>         location key (30039325 INODE_ITEM 0) type FILE
>>         transid 136248 data_len 0 name_len 48
>>         name: obs-service-download_src_package-20130318.ebuild
>>     item 81 key (30039322 DIR_ITEM 2438219243) itemoff 4041 itemsize 42
>>         location key (0 UNKNOWN.0 0) type FILE
>>         transid 136192 data_len 0 name_len 12
>>         name: metadata.xml
>>     item 82 key (30039322 DIR_ITEM 4007295565) itemoff 3927 itemsize 114
>>         location key (0 UNKNOWN.0 0) type DIR_ITEM.0
>>         transid 0 data_len 0 name_len 0
>>         name:
>>         location key (0 UNKNOWN.125 72057594038112709) type DIR_ITEM.0
>>         transid 0 data_len 32907 name_len 3
>>         name:
>>         data
> 
> The whole item is corrupted.
> Seems to be a half-written item get flushed to disk.
> 
> I assume this is the DIR_ITEM for *two* Manifest, but that's just
> insane, as we're going to have 2 files with the same name "Manifest"
> 
>>     item 83 key (30039322 DIR_INDEX 2) itemoff 3889 itemsize 38
>>         location key (30039323 INODE_ITEM 0) type FILE
>>         transid 3377699720527872 data_len 0 name_len 8
> 
> The transid seems corrupted too.
> 
> Maybe I need to delete this item too?
> 
>>     item 64 key (47302013 INODE_REF 30039322) itemoff 11278 itemsize 18
>>         index 5 namelen 8 name: Manifest
> 
> Now we do have 2 "Manifest".
> 
> Which one do you prefer to delete?
> 
> The latter one, inode 47302013 seems newer, while previous one, inode
> 30039323 is pretty old.
> 
> Despite that, I didn't see big problem in the dump.
> 
> I'll just craft the dirty fix to delete one inode and the incorrect dir
> index/item.
> 
> Thanks,
> Qu
> 

-- 
              /\        /\
             /  \  _____)/ ____
             \/\/ /     \_/ __ \
                 |  Y Y  \  ___/
                 |__|_|  /\___  >
                       \/     \/
    VoIP-CH .. <0225085743@sip.netvoip.ch>
    VoIP-IT . <0683394229@voip.eutelia.it>
    VoIP-2 ........... <marcoep@ekiga.net>
    VoIP-3 .... <marcoep@sip.linphone.org>
    PSTN CH ............. +41 22 508 57 43
    PSTN IT ............. +39 06 8339 4229
    fax IT .............. +39 06 9838 1481


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-24  9:18       ` Foo Bar
@ 2018-01-24 10:14         ` Qu Wenruo
  2018-01-24 11:57           ` ^m'e
  0 siblings, 1 reply; 32+ messages in thread
From: Qu Wenruo @ 2018-01-24 10:14 UTC (permalink / raw)
  To: Foo Bar; +Cc: linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 4620 bytes --]

Here is the super dirty tricky fix (and less deadly now).

https://github.com/adam900710/btrfs-progs/tree/dirty_fix

Please compile the branch and run:

# ./btrfs-corrupt-block -X <device>

Where <device> must be unmounted, the original btrfs-corrupt-block tool
doesn't have mount check, and I'm too lazy to add such check.

The hack will remove the offending DIR_ITEM completely, and unlink the
old "Manifest" file, and repair the link for newer "Manifest" file.

And it shouldn't write anything to disk if any operation failed, so it's
less deadly.

Wish you good luck.

Thanks,
Qu

On 2018年01月24日 17:18, Foo Bar wrote:
> Qu Wenruo wrote on 2018-01-24 09:49:
>> Sorry for the late reply, I was off yesterday.
>>
> 
> No problem :-)
> 
> Booted normally today, system up, but see this (I forgot to stop the snapshot
> cron task...)
> 
>   [  115.127961] BTRFS error (device sdb3): Send: inconsistent snapshot, found
> deleted reference for inode 30039323 without updated inode item, send root is
> 1399, parent root is 1385
> 
> So inode 30039323 looks definitely the bad one. Let's get rid of it and keep
> the newest dups, if any, thanks!
> 
> Cheers,
> 
>   Marco
> 
>> On 2018年01月22日 23:04, ^m'e wrote:
>>> Thanks for the quick reply, Qu!
>>>
>>> I forgot to say that I see weird characters in the btrfs check repair
>>> in lines "ERROR: DIR_ITEM... name ..." output. Although that can be
>>> due to corruption, I seem to remember that a previous version of
>>> btrfs-progs I used didn't show that...
>>> I also see:
>>>
>>>    [19428.934684] init_special_inode: bogus i_mode (700) for inode
>>> sdb3:18446744073709551361
>>>
>>> BTW, no sensible names in the debug output, and as far as I can see,
>>> it might be all stuff in '[rootfs]/usr/portage': if that's the case,
>>> corrupted inodes can be safely removed, as the portage package tree
>>> can be easily rebuild. Here you are:
>>>
>>> ---------------------------------->8-------------------------------------
>>> # cat btrfs-debug.30039322.log[snip]
>>
>> This where the dir starts.
>>
>>>     item 78 key (30039322 INODE_ITEM 0) itemoff 4203 itemsize 160
>>>         generation 136248 transid 229515 size 152 nbytes 0
>>>         block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
>>>         sequence 0 flags 0xf(none)
>>>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>>>         ctime 1516557882.551679697 (2018-01-21 18:04:42)
>>>         mtime 1516557882.551679697 (2018-01-21 18:04:42)
>>>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>>>     item 79 key (30039322 INODE_REF 30037720) itemoff 4161 itemsize 42
>>>         index 242 namelen 32 name: obs-service-download_src_package
>>>     item 80 key (30039322 DIR_ITEM 1076301169) itemoff 4083 itemsize 78
>>>         location key (30039325 INODE_ITEM 0) type FILE
>>>         transid 136248 data_len 0 name_len 48
>>>         name: obs-service-download_src_package-20130318.ebuild
>>>     item 81 key (30039322 DIR_ITEM 2438219243) itemoff 4041 itemsize 42
>>>         location key (0 UNKNOWN.0 0) type FILE
>>>         transid 136192 data_len 0 name_len 12
>>>         name: metadata.xml
>>>     item 82 key (30039322 DIR_ITEM 4007295565) itemoff 3927 itemsize 114
>>>         location key (0 UNKNOWN.0 0) type DIR_ITEM.0
>>>         transid 0 data_len 0 name_len 0
>>>         name:
>>>         location key (0 UNKNOWN.125 72057594038112709) type DIR_ITEM.0
>>>         transid 0 data_len 32907 name_len 3
>>>         name:
>>>         data
>>
>> The whole item is corrupted.
>> Seems to be a half-written item get flushed to disk.
>>
>> I assume this is the DIR_ITEM for *two* Manifest, but that's just
>> insane, as we're going to have 2 files with the same name "Manifest"
>>
>>>     item 83 key (30039322 DIR_INDEX 2) itemoff 3889 itemsize 38
>>>         location key (30039323 INODE_ITEM 0) type FILE
>>>         transid 3377699720527872 data_len 0 name_len 8
>>
>> The transid seems corrupted too.
>>
>> Maybe I need to delete this item too?
>>
>>>     item 64 key (47302013 INODE_REF 30039322) itemoff 11278 itemsize 18
>>>         index 5 namelen 8 name: Manifest
>>
>> Now we do have 2 "Manifest".
>>
>> Which one do you prefer to delete?
>>
>> The latter one, inode 47302013 seems newer, while previous one, inode
>> 30039323 is pretty old.
>>
>> Despite that, I didn't see big problem in the dump.
>>
>> I'll just craft the dirty fix to delete one inode and the incorrect dir
>> index/item.
>>
>> Thanks,
>> Qu
>>
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 520 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-24 10:14         ` Qu Wenruo
@ 2018-01-24 11:57           ` ^m'e
  2018-01-24 12:39             ` Qu Wenruo
  0 siblings, 1 reply; 32+ messages in thread
From: ^m'e @ 2018-01-24 11:57 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs

Thanks Qu!

I did it (had to add 'progs_extra' to the 'static' make target...),
but it looks like there's something missing:

-------------------------------------------------------------
# ./btrfs-corrupt-block.static -X /dev/sdb3
./btrfs-corrupt-block.static: invalid option -- 'X'
usage: btrfs-corrupt-block [options] device
    -l Logical extent to be corrupted
    -c Copy of the extent to be corrupted (usually 1 or 2, default: 0)
    -b Number of bytes to be corrupted
    -e Extent to be corrupted
    -E The whole extent tree to be corrupted
    -u Given chunk item to be corrupted
    -U The whole chunk tree to be corrupted
    -i The inode item to corrupt (must also specify the field to corrupt)
    -x The file extent item to corrupt (must also specify -i for the
inode and -f for the field to corrupt)
    -m The metadata block to corrupt (must also specify -f for the
field to corrupt)
    -K The key to corrupt in the format <num>,<num>,<num> (must also
specify -f for the field)
    -f The field in the item to corrupt
    -I An item to corrupt (must also specify the field to corrupt and
a root+key for the item)
    -D Corrupt a dir item, must specify key and field
    -d Delete this item (must specify -K)
-------------------------------------------------------------

I cloned at --depth=1, if that matters... Didn't dare to play around
wiht the lowercase 'x' option... O_o


On Wed, Jan 24, 2018 at 10:14 AM, Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
> Here is the super dirty tricky fix (and less deadly now).
>
> https://github.com/adam900710/btrfs-progs/tree/dirty_fix
>
> Please compile the branch and run:
>
> # ./btrfs-corrupt-block -X <device>
>
> Where <device> must be unmounted, the original btrfs-corrupt-block tool
> doesn't have mount check, and I'm too lazy to add such check.
>
> The hack will remove the offending DIR_ITEM completely, and unlink the
> old "Manifest" file, and repair the link for newer "Manifest" file.
>
> And it shouldn't write anything to disk if any operation failed, so it's
> less deadly.
>
> Wish you good luck.
>
> Thanks,
> Qu
>
> On 2018年01月24日 17:18, Foo Bar wrote:
>> Qu Wenruo wrote on 2018-01-24 09:49:
>>> Sorry for the late reply, I was off yesterday.
>>>
>>
>> No problem :-)
>>
>> Booted normally today, system up, but see this (I forgot to stop the snapshot
>> cron task...)
>>
>>   [  115.127961] BTRFS error (device sdb3): Send: inconsistent snapshot, found
>> deleted reference for inode 30039323 without updated inode item, send root is
>> 1399, parent root is 1385
>>
>> So inode 30039323 looks definitely the bad one. Let's get rid of it and keep
>> the newest dups, if any, thanks!
>>
>> Cheers,
>>
>>   Marco
>>
>>> On 2018年01月22日 23:04, ^m'e wrote:
>>>> Thanks for the quick reply, Qu!
>>>>
>>>> I forgot to say that I see weird characters in the btrfs check repair
>>>> in lines "ERROR: DIR_ITEM... name ..." output. Although that can be
>>>> due to corruption, I seem to remember that a previous version of
>>>> btrfs-progs I used didn't show that...
>>>> I also see:
>>>>
>>>>    [19428.934684] init_special_inode: bogus i_mode (700) for inode
>>>> sdb3:18446744073709551361
>>>>
>>>> BTW, no sensible names in the debug output, and as far as I can see,
>>>> it might be all stuff in '[rootfs]/usr/portage': if that's the case,
>>>> corrupted inodes can be safely removed, as the portage package tree
>>>> can be easily rebuild. Here you are:
>>>>
>>>> ---------------------------------->8-------------------------------------
>>>> # cat btrfs-debug.30039322.log[snip]
>>>
>>> This where the dir starts.
>>>
>>>>     item 78 key (30039322 INODE_ITEM 0) itemoff 4203 itemsize 160
>>>>         generation 136248 transid 229515 size 152 nbytes 0
>>>>         block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
>>>>         sequence 0 flags 0xf(none)
>>>>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>>>>         ctime 1516557882.551679697 (2018-01-21 18:04:42)
>>>>         mtime 1516557882.551679697 (2018-01-21 18:04:42)
>>>>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>>>>     item 79 key (30039322 INODE_REF 30037720) itemoff 4161 itemsize 42
>>>>         index 242 namelen 32 name: obs-service-download_src_package
>>>>     item 80 key (30039322 DIR_ITEM 1076301169) itemoff 4083 itemsize 78
>>>>         location key (30039325 INODE_ITEM 0) type FILE
>>>>         transid 136248 data_len 0 name_len 48
>>>>         name: obs-service-download_src_package-20130318.ebuild
>>>>     item 81 key (30039322 DIR_ITEM 2438219243) itemoff 4041 itemsize 42
>>>>         location key (0 UNKNOWN.0 0) type FILE
>>>>         transid 136192 data_len 0 name_len 12
>>>>         name: metadata.xml
>>>>     item 82 key (30039322 DIR_ITEM 4007295565) itemoff 3927 itemsize 114
>>>>         location key (0 UNKNOWN.0 0) type DIR_ITEM.0
>>>>         transid 0 data_len 0 name_len 0
>>>>         name:
>>>>         location key (0 UNKNOWN.125 72057594038112709) type DIR_ITEM.0
>>>>         transid 0 data_len 32907 name_len 3
>>>>         name:
>>>>         data
>>>
>>> The whole item is corrupted.
>>> Seems to be a half-written item get flushed to disk.
>>>
>>> I assume this is the DIR_ITEM for *two* Manifest, but that's just
>>> insane, as we're going to have 2 files with the same name "Manifest"
>>>
>>>>     item 83 key (30039322 DIR_INDEX 2) itemoff 3889 itemsize 38
>>>>         location key (30039323 INODE_ITEM 0) type FILE
>>>>         transid 3377699720527872 data_len 0 name_len 8
>>>
>>> The transid seems corrupted too.
>>>
>>> Maybe I need to delete this item too?
>>>
>>>>     item 64 key (47302013 INODE_REF 30039322) itemoff 11278 itemsize 18
>>>>         index 5 namelen 8 name: Manifest
>>>
>>> Now we do have 2 "Manifest".
>>>
>>> Which one do you prefer to delete?
>>>
>>> The latter one, inode 47302013 seems newer, while previous one, inode
>>> 30039323 is pretty old.
>>>
>>> Despite that, I didn't see big problem in the dump.
>>>
>>> I'll just craft the dirty fix to delete one inode and the incorrect dir
>>> index/item.
>>>
>>> Thanks,
>>> Qu
>>>
>>
>



-- 
^m'e

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-24 11:57           ` ^m'e
@ 2018-01-24 12:39             ` Qu Wenruo
  2018-01-24 14:47               ` ^m'e
  0 siblings, 1 reply; 32+ messages in thread
From: Qu Wenruo @ 2018-01-24 12:39 UTC (permalink / raw)
  To: ^m'e; +Cc: linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 6584 bytes --]



On 2018年01月24日 19:57, ^m'e wrote:
> Thanks Qu!
> 
> I did it (had to add 'progs_extra' to the 'static' make target...),
> but it looks like there's something missing:

Did you check out the branch called "dirty_fix"?

Thanks,
Qu
> 
> -------------------------------------------------------------
> # ./btrfs-corrupt-block.static -X /dev/sdb3
> ./btrfs-corrupt-block.static: invalid option -- 'X'
> usage: btrfs-corrupt-block [options] device
>     -l Logical extent to be corrupted
>     -c Copy of the extent to be corrupted (usually 1 or 2, default: 0)
>     -b Number of bytes to be corrupted
>     -e Extent to be corrupted
>     -E The whole extent tree to be corrupted
>     -u Given chunk item to be corrupted
>     -U The whole chunk tree to be corrupted
>     -i The inode item to corrupt (must also specify the field to corrupt)
>     -x The file extent item to corrupt (must also specify -i for the
> inode and -f for the field to corrupt)
>     -m The metadata block to corrupt (must also specify -f for the
> field to corrupt)
>     -K The key to corrupt in the format <num>,<num>,<num> (must also
> specify -f for the field)
>     -f The field in the item to corrupt
>     -I An item to corrupt (must also specify the field to corrupt and
> a root+key for the item)
>     -D Corrupt a dir item, must specify key and field
>     -d Delete this item (must specify -K)
> -------------------------------------------------------------
> 
> I cloned at --depth=1, if that matters... Didn't dare to play around
> wiht the lowercase 'x' option... O_o
> 
> 
> On Wed, Jan 24, 2018 at 10:14 AM, Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
>> Here is the super dirty tricky fix (and less deadly now).
>>
>> https://github.com/adam900710/btrfs-progs/tree/dirty_fix
>>
>> Please compile the branch and run:
>>
>> # ./btrfs-corrupt-block -X <device>
>>
>> Where <device> must be unmounted, the original btrfs-corrupt-block tool
>> doesn't have mount check, and I'm too lazy to add such check.
>>
>> The hack will remove the offending DIR_ITEM completely, and unlink the
>> old "Manifest" file, and repair the link for newer "Manifest" file.
>>
>> And it shouldn't write anything to disk if any operation failed, so it's
>> less deadly.
>>
>> Wish you good luck.
>>
>> Thanks,
>> Qu
>>
>> On 2018年01月24日 17:18, Foo Bar wrote:
>>> Qu Wenruo wrote on 2018-01-24 09:49:
>>>> Sorry for the late reply, I was off yesterday.
>>>>
>>>
>>> No problem :-)
>>>
>>> Booted normally today, system up, but see this (I forgot to stop the snapshot
>>> cron task...)
>>>
>>>   [  115.127961] BTRFS error (device sdb3): Send: inconsistent snapshot, found
>>> deleted reference for inode 30039323 without updated inode item, send root is
>>> 1399, parent root is 1385
>>>
>>> So inode 30039323 looks definitely the bad one. Let's get rid of it and keep
>>> the newest dups, if any, thanks!
>>>
>>> Cheers,
>>>
>>>   Marco
>>>
>>>> On 2018年01月22日 23:04, ^m'e wrote:
>>>>> Thanks for the quick reply, Qu!
>>>>>
>>>>> I forgot to say that I see weird characters in the btrfs check repair
>>>>> in lines "ERROR: DIR_ITEM... name ..." output. Although that can be
>>>>> due to corruption, I seem to remember that a previous version of
>>>>> btrfs-progs I used didn't show that...
>>>>> I also see:
>>>>>
>>>>>    [19428.934684] init_special_inode: bogus i_mode (700) for inode
>>>>> sdb3:18446744073709551361
>>>>>
>>>>> BTW, no sensible names in the debug output, and as far as I can see,
>>>>> it might be all stuff in '[rootfs]/usr/portage': if that's the case,
>>>>> corrupted inodes can be safely removed, as the portage package tree
>>>>> can be easily rebuild. Here you are:
>>>>>
>>>>> ---------------------------------->8-------------------------------------
>>>>> # cat btrfs-debug.30039322.log[snip]
>>>>
>>>> This where the dir starts.
>>>>
>>>>>     item 78 key (30039322 INODE_ITEM 0) itemoff 4203 itemsize 160
>>>>>         generation 136248 transid 229515 size 152 nbytes 0
>>>>>         block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
>>>>>         sequence 0 flags 0xf(none)
>>>>>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>>>>>         ctime 1516557882.551679697 (2018-01-21 18:04:42)
>>>>>         mtime 1516557882.551679697 (2018-01-21 18:04:42)
>>>>>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>>>>>     item 79 key (30039322 INODE_REF 30037720) itemoff 4161 itemsize 42
>>>>>         index 242 namelen 32 name: obs-service-download_src_package
>>>>>     item 80 key (30039322 DIR_ITEM 1076301169) itemoff 4083 itemsize 78
>>>>>         location key (30039325 INODE_ITEM 0) type FILE
>>>>>         transid 136248 data_len 0 name_len 48
>>>>>         name: obs-service-download_src_package-20130318.ebuild
>>>>>     item 81 key (30039322 DIR_ITEM 2438219243) itemoff 4041 itemsize 42
>>>>>         location key (0 UNKNOWN.0 0) type FILE
>>>>>         transid 136192 data_len 0 name_len 12
>>>>>         name: metadata.xml
>>>>>     item 82 key (30039322 DIR_ITEM 4007295565) itemoff 3927 itemsize 114
>>>>>         location key (0 UNKNOWN.0 0) type DIR_ITEM.0
>>>>>         transid 0 data_len 0 name_len 0
>>>>>         name:
>>>>>         location key (0 UNKNOWN.125 72057594038112709) type DIR_ITEM.0
>>>>>         transid 0 data_len 32907 name_len 3
>>>>>         name:
>>>>>         data
>>>>
>>>> The whole item is corrupted.
>>>> Seems to be a half-written item get flushed to disk.
>>>>
>>>> I assume this is the DIR_ITEM for *two* Manifest, but that's just
>>>> insane, as we're going to have 2 files with the same name "Manifest"
>>>>
>>>>>     item 83 key (30039322 DIR_INDEX 2) itemoff 3889 itemsize 38
>>>>>         location key (30039323 INODE_ITEM 0) type FILE
>>>>>         transid 3377699720527872 data_len 0 name_len 8
>>>>
>>>> The transid seems corrupted too.
>>>>
>>>> Maybe I need to delete this item too?
>>>>
>>>>>     item 64 key (47302013 INODE_REF 30039322) itemoff 11278 itemsize 18
>>>>>         index 5 namelen 8 name: Manifest
>>>>
>>>> Now we do have 2 "Manifest".
>>>>
>>>> Which one do you prefer to delete?
>>>>
>>>> The latter one, inode 47302013 seems newer, while previous one, inode
>>>> 30039323 is pretty old.
>>>>
>>>> Despite that, I didn't see big problem in the dump.
>>>>
>>>> I'll just craft the dirty fix to delete one inode and the incorrect dir
>>>> index/item.
>>>>
>>>> Thanks,
>>>> Qu
>>>>
>>>
>>
> 
> 
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 520 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-24 12:39             ` Qu Wenruo
@ 2018-01-24 14:47               ` ^m'e
  2018-01-24 19:00                 ` ^m'e
  0 siblings, 1 reply; 32+ messages in thread
From: ^m'e @ 2018-01-24 14:47 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs

My bad, forgot to check out the correct branch. Recloned, compiled and
fixed. Then rechecking:

-----------------------------------------------------------
# btrfs check --mode=lowmem /dev/sdb3
Checking filesystem on /dev/sdb3
UUID: de1723e2-150c-4448-bb36-be14d7d96093
checking extents
ERROR: extent[64368619520, 524288] referencer count mismatch (root:
257, owner: 7804556, offset: 212992) wanted: 1, have: 0
ERROR: data extent[1862352896 425984] backref lost
ERROR: data extent[1886453760 479232] backref lost
ERROR: data extent[1902219264 524288] backref lost
ERROR: data extent[1817378816 151552] backref lost
ERROR: data extent[1799688192 57344] backref lost
ERROR: data extent[1830277120 258048] backref lost
ERROR: data extent[2558107648 1368064] backref lost
ERROR: errors found in extent allocation tree or chunk allocation
checking free space cache
cache and super generation don't match, space cache will be invalidated
checking fs roots
ERROR: root 257 DIR_ITEM[30039322 4007295565] couldn't find relative
INODE_ITEM[0] namelen 0 filename  filetype 0
ERROR: root 257 DIR_ITEM[30039322 4007295565] data_len shouldn't be 32907
ERROR: root 257 DIR_ITEM[30039322 4007295565] couldn't find relative
INODE_ITEM[0] namelen 3 filename  filetype 0
ERROR: root 258 EXTENT_DATA[1119172 1966080] prealloc shouldn't have datasum
ERROR: root 1327 EXTENT_DATA[60710 18219008] prealloc shouldn't have datasum
ERROR: root 1331 EXTENT_DATA[60710 18219008] prealloc shouldn't have datasum
ERROR: root 1333 EXTENT_DATA[60710 18219008] prealloc shouldn't have datasum
ERROR: root 1362 EXTENT_DATA[1119172 1966080] prealloc shouldn't have datasum
ERROR: root 1366 EXTENT_DATA[1119172 1966080] prealloc shouldn't have datasum
...
-----------------------------------------------------------


Trying again to repair:

-----------------------------------------------------------
# btrfs check -p --repair /dev/sdb3
enabling repair mode
Checking filesystem on /dev/sdb3
UUID: de1723e2-150c-4448-bb36-be14d7d96093
ref mismatch on [1799688192 57344] extent item 0, found 1
Backref 1799688192 root 1385 owner 47301992 offset 0 num_refs 0 not
found in extent tree
Incorrect local backref count on 1799688192 root 1385 owner 47301992
offset 0 found 1 wanted 0 back 0x93a27f8
backpointer mismatch on [1799688192 57344]
repair deleting extent record: key 1799688192 168 57344
adding new data backref on 1799688192 root 1385 owner 47301992 offset 0 found 1
Repaired extent references for 1799688192
ref mismatch on [1817378816 151552] extent item 0, found 1
Backref 1817378816 root 1385 owner 47301982 offset 0 num_refs 0 not
found in extent tree
Incorrect local backref count on 1817378816 root 1385 owner 47301982
offset 0 found 1 wanted 0 back 0x94643f0
backpointer mismatch on [1817378816 151552]
repair deleting extent record: key 1817378816 168 151552
adding new data backref on 1817378816 root 1385 owner 47301982 offset 0 found 1
Repaired extent references for 1817378816
ref mismatch on [1830277120 258048] extent item 0, found 1
Backref 1830277120 root 1385 owner 47302002 offset 0 num_refs 0 not
found in extent tree
Incorrect local backref count on 1830277120 root 1385 owner 47302002
offset 0 found 1 wanted 0 back 0xc7bd1b8
backpointer mismatch on [1830277120 258048]
repair deleting extent record: key 1830277120 168 258048
adding new data backref on 1830277120 root 1385 owner 47302002 offset 0 found 1
Repaired extent references for 1830277120
ref mismatch on [1862352896 425984] extent item 0, found 1
Backref 1862352896 root 1385 owner 47301952 offset 0 num_refs 0 not
found in extent tree
Incorrect local backref count on 1862352896 root 1385 owner 47301952
offset 0 found 1 wanted 0 back 0xef22790
backpointer mismatch on [1862352896 425984]
repair deleting extent record: key 1862352896 168 425984
adding new data backref on 1862352896 root 1385 owner 47301952 offset 0 found 1
Repaired extent references for 1862352896
ref mismatch on [1886453760 479232] extent item 0, found 1
Backref 1886453760 root 1385 owner 47301962 offset 0 num_refs 0 not
found in extent tree
Incorrect local backref count on 1886453760 root 1385 owner 47301962
offset 0 found 1 wanted 0 back 0x93a1058
backpointer mismatch on [1886453760 479232]
repair deleting extent record: key 1886453760 168 479232
adding new data backref on 1886453760 root 1385 owner 47301962 offset 0 found 1
Repaired extent references for 1886453760
ref mismatch on [1902219264 524288] extent item 0, found 1
Backref 1902219264 root 1385 owner 47301972 offset 0 num_refs 0 not
found in extent tree
Incorrect local backref count on 1902219264 root 1385 owner 47301972
offset 0 found 1 wanted 0 back 0x93883a8
backpointer mismatch on [1902219264 524288]
repair deleting extent record: key 1902219264 168 524288
adding new data backref on 1902219264 root 1385 owner 47301972 offset 0 found 1
Repaired extent references for 1902219264
ref mismatch on [2558107648 1368064] extent item 0, found 1
Backref 2558107648 root 1385 owner 47302009 offset 0 num_refs 0 not
found in extent tree
Incorrect local backref count on 2558107648 root 1385 owner 47302009
offset 0 found 1 wanted 0 back 0xf734160
backpointer mismatch on [2558107648 1368064]
repair deleting extent record: key 2558107648 168 1368064
adding new data backref on 2558107648 root 1385 owner 47302009 offset 0 found 1
Repaired extent references for 2558107648
checking extents [O]
Fixed 0 roots.
cache and super generation don't match, space cache will be invalidated
invalid location in dir item 0
invalid location in dir item 125
Trying to rebuild inode:18446744073709551361
Failed to reset nlink for inode 18446744073709551361: No such file or directory
    unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
errors 6, no dir index, no inode ref
    unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
errors 6, no dir index, no inode ref
checkingunresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
errors 6, no dir index, no inode ref
    unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
errors 6, no dir index, no inode ref
invalid location in dir item 0
invalid location in dir item 125
Failed to reset nlink for inode 18446744073709551361: No such file or directory
    unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
errors 6, no dir index, no inode ref
    unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
errors 6, no dir index, no inode ref
Failed to reset nlink for inode 18446744073709551361: No such file or directory
    unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
errors 6, no dir index, no inode ref
    unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
errors 6, no dir index, no inode ref
invalid location in dir item 0
invalid location in dir item 125
Failed to reset nlink for inode 18446744073709551361: No such file or directory
    unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
errors 6, no dir index, no inode ref
    unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
errors 6, no dir index, no inode ref
Failed to reset nlink for inode 18446744073709551361: No such file or directory
    unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
errors 6, no dir index, no inode ref
    unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
errors 6, no dir index, no inode ref
invalid location in dir item 0
invalid location in dir item 125
Failed to reset nlink for inode 18446744073709551361: No such file or directory
    unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
errors 6, no dir index, no inode ref
    unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
errors 6, no dir index, no inode ref
Failed to reset nlink for inode 18446744073709551361: No such file or directory
    unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
errors 6, no dir index, no inode ref
    unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
errors 6, no dir index, no inode ref
...
-----------------------------------------------------------

Still looping on the same failed item :-(
I guess we need another debug round...

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-24 14:47               ` ^m'e
@ 2018-01-24 19:00                 ` ^m'e
  2018-01-24 20:41                   ` ^m'e
  2018-01-25  0:59                   ` Qu Wenruo
  0 siblings, 2 replies; 32+ messages in thread
From: ^m'e @ 2018-01-24 19:00 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs

The complete check:

Checking filesystem on /dev/sdb3
UUID: de1723e2-150c-4448-bb36-be14d7d96093
ERROR: extent[64368619520, 524288] referencer count mismatch (root:
257, owner: 7804556, offset: 212992) wanted: 1, have: 0
ERROR: data extent[1862352896 425984] backref lost
ERROR: data extent[1886453760 479232] backref lost
ERROR: data extent[1902219264 524288] backref lost
ERROR: data extent[1817378816 151552] backref lost
ERROR: data extent[1799688192 57344] backref lost
ERROR: data extent[1830277120 258048] backref lost
ERROR: data extent[2558107648 1368064] backref lost
ERROR: errors found in extent allocation tree or chunk allocation
cache and super generation don't match, space cache will be invalidated
ERROR: root 257 DIR_ITEM[30039322 4007295565] couldn't find relative
INODE_ITEM[0] namelen 0 filename  filetype 0
ERROR: root 257 DIR_ITEM[30039322 4007295565] data_len shouldn't be 32907
ERROR: root 257 DIR_ITEM[30039322 4007295565] couldn't find relative
INODE_ITEM[0] namelen 3 filename  filetype 0
ERROR: root 258 EXTENT_DATA[1119172 1966080] prealloc shouldn't have datasum
ERROR: root 1327 EXTENT_DATA[60710 18219008] prealloc shouldn't have datasum
ERROR: root 1331 EXTENT_DATA[60710 18219008] prealloc shouldn't have datasum
ERROR: root 1333 EXTENT_DATA[60710 18219008] prealloc shouldn't have datasum
ERROR: root 1362 EXTENT_DATA[1119172 1966080] prealloc shouldn't have datasum
ERROR: root 1366 EXTENT_DATA[1119172 1966080] prealloc shouldn't have datasum
ERROR: root 1382 EXTENT_DATA[1119172 1966080] prealloc shouldn't have datasum
ERROR: root 1385 DIR_ITEM[30039322 2438219243] couldn't find relative
INODE_ITEM[0] namelen 12 filename metadata.xml filetype 1
ERROR: root 1385 DIR INODE [30039322] size(152) not equal to 136
ERROR: root 1385 INODE REF[30039324 30039322] and DIR_ITEM[30039322
2438219243] mismatch namelen 12 filename metadata.xml filetype 1
found 104348008448 bytes used err is -5
total csum bytes: 99534904
total tree bytes: 3204612096
total fs tree bytes: 2984034304
total extent tree bytes: 87818240
btree space waste bytes: 778261104
file data blocks allocated: 242964852736
 referenced 198454632448

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-24 19:00                 ` ^m'e
@ 2018-01-24 20:41                   ` ^m'e
  2018-01-25  0:59                     ` Qu Wenruo
  2018-01-25  0:59                   ` Qu Wenruo
  1 sibling, 1 reply; 32+ messages in thread
From: ^m'e @ 2018-01-24 20:41 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs

And here it is:

--------------------------------------------
# ./btrfs-debug-tree.static -t 1385 /dev/sdb3 | grep -C 20 30039322 |
tee /mnt/custom/rescue/btrfs-recovery/btrfs-debug.30039322.2.log
        location key (30037910 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 3
        name: bam
    item 52 key (30037720 DIR_ITEM 508462201) itemoff 14104 itemsize 40
        location key (30039832 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 10
        name: suse-build
    item 53 key (30037720 DIR_ITEM 541125215) itemoff 14070 itemsize 34
        location key (30038354 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 4
        name: cram
    item 54 key (30037720 DIR_ITEM 543235706) itemoff 14035 itemsize 35
        location key (30039133 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 5
        name: lsuio
    item 55 key (30037720 DIR_ITEM 586823170) itemoff 14000 itemsize 35
        location key (30038846 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 5
        name: geany
    item 56 key (30037720 DIR_ITEM 603413733) itemoff 13938 itemsize 62
        location key (30039322 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 32
        name: obs-service-download_src_package
    item 57 key (30037720 DIR_ITEM 623694194) itemoff 13903 itemsize 35
        location key (30038092 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 5
        name: byacc
    item 58 key (30037720 DIR_ITEM 637448305) itemoff 13868 itemsize 35
        location key (43374420 INODE_ITEM 0) type DIR
        transid 200308 data_len 0 name_len 5
        name: vpuml
    item 59 key (30037720 DIR_ITEM 660989717) itemoff 13828 itemsize 40
        location key (30038283 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 10
        name: comparator
    item 60 key (30037720 DIR_ITEM 666000672) itemoff 13782 itemsize 46
        location key (30039257 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 16
        name: molecule-plugins
    item 61 key (30037720 DIR_ITEM 679217690) itemoff 13749 itemsize 33
        location key (36281336 INODE_ITEM 0) type DIR
--
        location key (30039292 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 15
        name: nvidia-cuda-sdk
    item 73 key (30037720 DIR_INDEX 238) itemoff 13448 itemsize 49
        location key (30039299 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 19
        name: nvidia-cuda-toolkit
    item 74 key (30037720 DIR_INDEX 239) itemoff 13411 itemsize 37
        location key (30039309 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 7
        name: objconv
    item 75 key (30037720 DIR_INDEX 240) itemoff 13361 itemsize 50
        location key (30039314 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 20
        name: obs-service-cpanspec
    item 76 key (30037720 DIR_INDEX 241) itemoff 13305 itemsize 56
        location key (30039318 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 26
        name: obs-service-download_files
    item 77 key (30037720 DIR_INDEX 242) itemoff 13243 itemsize 62
        location key (30039322 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 32
        name: obs-service-download_src_package
    item 78 key (30037720 DIR_INDEX 243) itemoff 13189 itemsize 54
        location key (30039326 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 24
        name: obs-service-download_url
    item 79 key (30037720 DIR_INDEX 244) itemoff 13135 itemsize 54
        location key (30039330 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 24
        name: obs-service-extract_file
    item 80 key (30037720 DIR_INDEX 245) itemoff 13077 itemsize 58
        location key (30039334 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 28
        name: obs-service-format_spec_file
    item 81 key (30037720 DIR_INDEX 246) itemoff 13007 itemsize 70
        location key (30039338 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 40
        name: obs-service-generator_driver_update_disk
    item 82 key (30037720 DIR_INDEX 247) itemoff 12953 itemsize 54
        location key (30039342 INODE_ITEM 0) type DIR
--
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 73 key (30039320 INODE_REF 30039318) itemoff 5278 itemsize 22
        index 3 namelen 12 name: metadata.xml
    item 74 key (30039320 EXTENT_DATA 0) itemoff 4809 itemsize 469
        generation 136248 type 0 (inline)
        inline extent data size 448 ram_bytes 448 compression 0 (none)
    item 75 key (30039321 INODE_ITEM 0) itemoff 4649 itemsize 160
        generation 136248 transid 202216 size 213 nbytes 213
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 76 key (30039321 INODE_REF 30039318) itemoff 4597 itemsize 52
        index 4 namelen 42 name: obs-service-download_files-20130716.ebuild
    item 77 key (30039321 EXTENT_DATA 0) itemoff 4363 itemsize 234
        generation 136248 type 0 (inline)
        inline extent data size 213 ram_bytes 213 compression 0 (none)
    item 78 key (30039322 INODE_ITEM 0) itemoff 4203 itemsize 160
        generation 136248 transid 229515 size 152 nbytes 0
        block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xf(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1516557882.551679697 (2018-01-21 18:04:42)
        mtime 1516557882.551679697 (2018-01-21 18:04:42)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 79 key (30039322 INODE_REF 30037720) itemoff 4161 itemsize 42
        index 242 namelen 32 name: obs-service-download_src_package
    item 80 key (30039322 DIR_ITEM 1076301169) itemoff 4083 itemsize 78
        location key (30039325 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 48
        name: obs-service-download_src_package-20130318.ebuild
    item 81 key (30039322 DIR_ITEM 2438219243) itemoff 4041 itemsize 42
        location key (0 UNKNOWN.0 0) type FILE
        transid 136192 data_len 0 name_len 12
        name: metadata.xml
    item 82 key (30039322 DIR_ITEM 4007295565) itemoff 4003 itemsize 38
        location key (47302013 INODE_ITEM 0) type FILE
        transid 3377699720527872 data_len 0 name_len 8
        name: Manifest
    item 83 key (30039322 DIR_INDEX 3) itemoff 3961 itemsize 42
        location key (30039324 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 12
        name: metadata.xml
    item 84 key (30039322 DIR_INDEX 4) itemoff 3883 itemsize 78
        location key (30039325 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 48
        name: obs-service-download_src_package-20130318.ebuild
    item 85 key (30039322 DIR_INDEX 5) itemoff 3845 itemsize 38
        location key (47302013 INODE_ITEM 0) type FILE
        transid 3861419965563273305 data_len 0 name_len 8
        name: Manifest
    item 86 key (30039323 INODE_ITEM 0) itemoff 3685 itemsize 160
        generation 136248 transid 202216 size 782 nbytes 782
        block group 0 mode 100644 links 0 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 87 key (30039323 EXTENT_DATA 0) itemoff 2882 itemsize 803
        generation 136248 type 0 (inline)
        inline extent data size 782 ram_bytes 782 compression 0 (none)
    item 88 key (30039324 INODE_ITEM 0) itemoff 2722 itemsize 160
        generation 136248 transid 202216 size 448 nbytes 448
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 89 key (30039324 INODE_REF 30039322) itemoff 2700 itemsize 22
        index 3 namelen 12 name: metadata.xml
leaf 36701356032 items 44 free space 8701 generation 202216 owner 257
leaf 36701356032 flags 0x1(WRITTEN) backref revision 1
fs uuid de1723e2-150c-4448-bb36-be14d7d96093
chunk uuid 443a227c-4f87-419a-b89a-3f5714eea403
    item 0 key (30039324 EXTENT_DATA 0) itemoff 15814 itemsize 469
        generation 136248 type 0 (inline)
        inline extent data size 448 ram_bytes 448 compression 0 (none)
    item 1 key (30039325 INODE_ITEM 0) itemoff 15654 itemsize 160
        generation 136248 transid 202216 size 213 nbytes 213
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 2 key (30039325 INODE_REF 30039322) itemoff 15596 itemsize 58
        index 4 namelen 48 name:
obs-service-download_src_package-20130318.ebuild
    item 3 key (30039325 EXTENT_DATA 0) itemoff 15362 itemsize 234
        generation 136248 type 0 (inline)
        inline extent data size 213 ram_bytes 213 compression 0 (none)
    item 4 key (30039326 INODE_ITEM 0) itemoff 15202 itemsize 160
        generation 136248 transid 202216 size 120 nbytes 0
        block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xe(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.541278502 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 5 key (30039326 INODE_REF 30037720) itemoff 15168 itemsize 34
        index 243 namelen 24 name: obs-service-download_url
    item 6 key (30039326 DIR_ITEM 1441374077) itemoff 15098 itemsize 70
        location key (30039329 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 40
        name: obs-service-download_url-20130318.ebuild
    item 7 key (30039326 DIR_ITEM 2438219243) itemoff 15056 itemsize 42
        location key (30039328 INODE_ITEM 0) type FILE
--
        generation 229515 transid 229515 size 26 nbytes 26
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0x2(none)
        atime 1516557882.505679580 (2018-01-21 18:04:42)
        ctime 1516557882.505679580 (2018-01-21 18:04:42)
        mtime 1516557882.505679580 (2018-01-21 18:04:42)
        otime 1516557882.505679580 (2018-01-21 18:04:42)
    item 61 key (47302010 INODE_REF 30002892) itemoff 11503 itemsize 14
        index 1798 namelen 4 name: HEAD
    item 62 key (47302010 EXTENT_DATA 0) itemoff 11456 itemsize 47
        generation 229515 type 0 (inline)
        inline extent data size 26 ram_bytes 26 compression 0 (none)
    item 63 key (47302013 INODE_ITEM 0) itemoff 11296 itemsize 160
        generation 229515 transid 229516 size 782 nbytes 782
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0x0(none)
        atime 1516557882.551679697 (2018-01-21 18:04:42)
        ctime 1516557882.551679697 (2018-01-21 18:04:42)
        mtime 1516557882.551679697 (2018-01-21 18:04:42)
        otime 1516557882.551679697 (2018-01-21 18:04:42)
    item 64 key (47302013 INODE_REF 30039322) itemoff 11278 itemsize 18
        index 5 namelen 8 name: Manifest
leaf 186518913024 items 86 free space 3119 generation 229516 owner 257
leaf 186518913024 flags 0x1(WRITTEN) backref revision 1
fs uuid de1723e2-150c-4448-bb36-be14d7d96093
chunk uuid 443a227c-4f87-419a-b89a-3f5714eea403
    item 0 key (47302013 EXTENT_DATA 0) itemoff 15480 itemsize 803
        generation 229516 type 0 (inline)
        inline extent data size 782 ram_bytes 782 compression 0 (none)
    item 1 key (47302018 INODE_ITEM 0) itemoff 15320 itemsize 160
        generation 229515 transid 229515 size 41 nbytes 41
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0x2(none)
        atime 1516557883.180681304 (2018-01-21 18:04:43)
        ctime 1516557883.180681304 (2018-01-21 18:04:43)
        mtime 1516557883.180681304 (2018-01-21 18:04:43)
        otime 1516557883.180681304 (2018-01-21 18:04:43)
    item 2 key (47302018 INODE_REF 30002892) itemoff 15301 itemsize 19
        index 1801 namelen 9 name: ORIG_HEAD
    item 3 key (47302018 EXTENT_DATA 0) itemoff 15239 itemsize 62
        generation 229515 type 0 (inline)
--------------------------------------------

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-24 19:00                 ` ^m'e
  2018-01-24 20:41                   ` ^m'e
@ 2018-01-25  0:59                   ` Qu Wenruo
  1 sibling, 0 replies; 32+ messages in thread
From: Qu Wenruo @ 2018-01-25  0:59 UTC (permalink / raw)
  To: ^m'e; +Cc: linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 3117 bytes --]



On 2018年01月25日 03:00, ^m'e wrote:
> The complete check:
> 
> Checking filesystem on /dev/sdb3
> UUID: de1723e2-150c-4448-bb36-be14d7d96093
> ERROR: extent[64368619520, 524288] referencer count mismatch (root:
> 257, owner: 7804556, offset: 212992) wanted: 1, have: 0
> ERROR: data extent[1862352896 425984] backref lost
> ERROR: data extent[1886453760 479232] backref lost
> ERROR: data extent[1902219264 524288] backref lost
> ERROR: data extent[1817378816 151552] backref lost
> ERROR: data extent[1799688192 57344] backref lost
> ERROR: data extent[1830277120 258048] backref lost
> ERROR: data extent[2558107648 1368064] backref lost

Well, a little surprised to know that --repair doesn't repair it.
I'll fix them after all other problems are fixed.

> ERROR: errors found in extent allocation tree or chunk allocation
> cache and super generation don't match, space cache will be invalidated
> ERROR: root 257 DIR_ITEM[30039322 4007295565] couldn't find relative
> INODE_ITEM[0] namelen 0 filename  filetype 0
> ERROR: root 257 DIR_ITEM[30039322 4007295565] data_len shouldn't be 32907

OK, another root, other than the root I'm repairing.

So the corruption seems to happen in multiple snapshots.

Anyway, I could fix it using the same code, just changing the root objectid.

At least, the fix in the offending DIR_ITEM is working.
Just a few more roots needs to be fixed.

> ERROR: root 257 DIR_ITEM[30039322 4007295565] couldn't find relative
> INODE_ITEM[0] namelen 3 filename  filetype 0
> ERROR: root 258 EXTENT_DATA[1119172 1966080] prealloc shouldn't have datasum
> ERROR: root 1327 EXTENT_DATA[60710 18219008] prealloc shouldn't have datasum
> ERROR: root 1331 EXTENT_DATA[60710 18219008] prealloc shouldn't have datasum
> ERROR: root 1333 EXTENT_DATA[60710 18219008] prealloc shouldn't have datasum
> ERROR: root 1362 EXTENT_DATA[1119172 1966080] prealloc shouldn't have datasum
> ERROR: root 1366 EXTENT_DATA[1119172 1966080] prealloc shouldn't have datasum
> ERROR: root 1382 EXTENT_DATA[1119172 1966080] prealloc shouldn't have datasum

Not a big problem, so handle it later.

> ERROR: root 1385 DIR_ITEM[30039322 2438219243] couldn't find relative
> INODE_ITEM[0] namelen 12 filename metadata.xml filetype 1
> ERROR: root 1385 DIR INODE [30039322] size(152) not equal to 136
> ERROR: root 1385 INODE REF[30039324 30039322] and DIR_ITEM[30039322
> 2438219243] mismatch namelen 12 filename metadata.xml filetype 1

And I forgot this one.
But this is pretty simple, I'll focus on previous problems and handle it
later.

Thanks,
Qu

> found 104348008448 bytes used err is -5
> total csum bytes: 99534904
> total tree bytes: 3204612096
> total fs tree bytes: 2984034304
> total extent tree bytes: 87818240
> btree space waste bytes: 778261104
> file data blocks allocated: 242964852736
>  referenced 198454632448
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 520 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-24 20:41                   ` ^m'e
@ 2018-01-25  0:59                     ` Qu Wenruo
  2018-01-25 11:54                       ` ^m'e
  0 siblings, 1 reply; 32+ messages in thread
From: Qu Wenruo @ 2018-01-25  0:59 UTC (permalink / raw)
  To: ^m'e; +Cc: linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 13943 bytes --]



On 2018年01月25日 04:41, ^m'e wrote:
> And here it is:
> 
> --------------------------------------------
> # ./btrfs-debug-tree.static -t 1385 /dev/sdb3 | grep -C 20 30039322 |

In fact, that's only dump tree 1385.
Now we also need the dump of tree 257.

Thanks,
Qu

> tee /mnt/custom/rescue/btrfs-recovery/btrfs-debug.30039322.2.log
>         location key (30037910 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 3
>         name: bam
>     item 52 key (30037720 DIR_ITEM 508462201) itemoff 14104 itemsize 40
>         location key (30039832 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 10
>         name: suse-build
>     item 53 key (30037720 DIR_ITEM 541125215) itemoff 14070 itemsize 34
>         location key (30038354 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 4
>         name: cram
>     item 54 key (30037720 DIR_ITEM 543235706) itemoff 14035 itemsize 35
>         location key (30039133 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 5
>         name: lsuio
>     item 55 key (30037720 DIR_ITEM 586823170) itemoff 14000 itemsize 35
>         location key (30038846 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 5
>         name: geany
>     item 56 key (30037720 DIR_ITEM 603413733) itemoff 13938 itemsize 62
>         location key (30039322 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 32
>         name: obs-service-download_src_package
>     item 57 key (30037720 DIR_ITEM 623694194) itemoff 13903 itemsize 35
>         location key (30038092 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 5
>         name: byacc
>     item 58 key (30037720 DIR_ITEM 637448305) itemoff 13868 itemsize 35
>         location key (43374420 INODE_ITEM 0) type DIR
>         transid 200308 data_len 0 name_len 5
>         name: vpuml
>     item 59 key (30037720 DIR_ITEM 660989717) itemoff 13828 itemsize 40
>         location key (30038283 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 10
>         name: comparator
>     item 60 key (30037720 DIR_ITEM 666000672) itemoff 13782 itemsize 46
>         location key (30039257 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 16
>         name: molecule-plugins
>     item 61 key (30037720 DIR_ITEM 679217690) itemoff 13749 itemsize 33
>         location key (36281336 INODE_ITEM 0) type DIR
> --
>         location key (30039292 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 15
>         name: nvidia-cuda-sdk
>     item 73 key (30037720 DIR_INDEX 238) itemoff 13448 itemsize 49
>         location key (30039299 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 19
>         name: nvidia-cuda-toolkit
>     item 74 key (30037720 DIR_INDEX 239) itemoff 13411 itemsize 37
>         location key (30039309 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 7
>         name: objconv
>     item 75 key (30037720 DIR_INDEX 240) itemoff 13361 itemsize 50
>         location key (30039314 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 20
>         name: obs-service-cpanspec
>     item 76 key (30037720 DIR_INDEX 241) itemoff 13305 itemsize 56
>         location key (30039318 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 26
>         name: obs-service-download_files
>     item 77 key (30037720 DIR_INDEX 242) itemoff 13243 itemsize 62
>         location key (30039322 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 32
>         name: obs-service-download_src_package
>     item 78 key (30037720 DIR_INDEX 243) itemoff 13189 itemsize 54
>         location key (30039326 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 24
>         name: obs-service-download_url
>     item 79 key (30037720 DIR_INDEX 244) itemoff 13135 itemsize 54
>         location key (30039330 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 24
>         name: obs-service-extract_file
>     item 80 key (30037720 DIR_INDEX 245) itemoff 13077 itemsize 58
>         location key (30039334 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 28
>         name: obs-service-format_spec_file
>     item 81 key (30037720 DIR_INDEX 246) itemoff 13007 itemsize 70
>         location key (30039338 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 40
>         name: obs-service-generator_driver_update_disk
>     item 82 key (30037720 DIR_INDEX 247) itemoff 12953 itemsize 54
>         location key (30039342 INODE_ITEM 0) type DIR
> --
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 73 key (30039320 INODE_REF 30039318) itemoff 5278 itemsize 22
>         index 3 namelen 12 name: metadata.xml
>     item 74 key (30039320 EXTENT_DATA 0) itemoff 4809 itemsize 469
>         generation 136248 type 0 (inline)
>         inline extent data size 448 ram_bytes 448 compression 0 (none)
>     item 75 key (30039321 INODE_ITEM 0) itemoff 4649 itemsize 160
>         generation 136248 transid 202216 size 213 nbytes 213
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 76 key (30039321 INODE_REF 30039318) itemoff 4597 itemsize 52
>         index 4 namelen 42 name: obs-service-download_files-20130716.ebuild
>     item 77 key (30039321 EXTENT_DATA 0) itemoff 4363 itemsize 234
>         generation 136248 type 0 (inline)
>         inline extent data size 213 ram_bytes 213 compression 0 (none)
>     item 78 key (30039322 INODE_ITEM 0) itemoff 4203 itemsize 160
>         generation 136248 transid 229515 size 152 nbytes 0
>         block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xf(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1516557882.551679697 (2018-01-21 18:04:42)
>         mtime 1516557882.551679697 (2018-01-21 18:04:42)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 79 key (30039322 INODE_REF 30037720) itemoff 4161 itemsize 42
>         index 242 namelen 32 name: obs-service-download_src_package
>     item 80 key (30039322 DIR_ITEM 1076301169) itemoff 4083 itemsize 78
>         location key (30039325 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 48
>         name: obs-service-download_src_package-20130318.ebuild
>     item 81 key (30039322 DIR_ITEM 2438219243) itemoff 4041 itemsize 42
>         location key (0 UNKNOWN.0 0) type FILE
>         transid 136192 data_len 0 name_len 12
>         name: metadata.xml
>     item 82 key (30039322 DIR_ITEM 4007295565) itemoff 4003 itemsize 38
>         location key (47302013 INODE_ITEM 0) type FILE
>         transid 3377699720527872 data_len 0 name_len 8
>         name: Manifest
>     item 83 key (30039322 DIR_INDEX 3) itemoff 3961 itemsize 42
>         location key (30039324 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 12
>         name: metadata.xml
>     item 84 key (30039322 DIR_INDEX 4) itemoff 3883 itemsize 78
>         location key (30039325 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 48
>         name: obs-service-download_src_package-20130318.ebuild
>     item 85 key (30039322 DIR_INDEX 5) itemoff 3845 itemsize 38
>         location key (47302013 INODE_ITEM 0) type FILE
>         transid 3861419965563273305 data_len 0 name_len 8
>         name: Manifest
>     item 86 key (30039323 INODE_ITEM 0) itemoff 3685 itemsize 160
>         generation 136248 transid 202216 size 782 nbytes 782
>         block group 0 mode 100644 links 0 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 87 key (30039323 EXTENT_DATA 0) itemoff 2882 itemsize 803
>         generation 136248 type 0 (inline)
>         inline extent data size 782 ram_bytes 782 compression 0 (none)
>     item 88 key (30039324 INODE_ITEM 0) itemoff 2722 itemsize 160
>         generation 136248 transid 202216 size 448 nbytes 448
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 89 key (30039324 INODE_REF 30039322) itemoff 2700 itemsize 22
>         index 3 namelen 12 name: metadata.xml
> leaf 36701356032 items 44 free space 8701 generation 202216 owner 257
> leaf 36701356032 flags 0x1(WRITTEN) backref revision 1
> fs uuid de1723e2-150c-4448-bb36-be14d7d96093
> chunk uuid 443a227c-4f87-419a-b89a-3f5714eea403
>     item 0 key (30039324 EXTENT_DATA 0) itemoff 15814 itemsize 469
>         generation 136248 type 0 (inline)
>         inline extent data size 448 ram_bytes 448 compression 0 (none)
>     item 1 key (30039325 INODE_ITEM 0) itemoff 15654 itemsize 160
>         generation 136248 transid 202216 size 213 nbytes 213
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 2 key (30039325 INODE_REF 30039322) itemoff 15596 itemsize 58
>         index 4 namelen 48 name:
> obs-service-download_src_package-20130318.ebuild
>     item 3 key (30039325 EXTENT_DATA 0) itemoff 15362 itemsize 234
>         generation 136248 type 0 (inline)
>         inline extent data size 213 ram_bytes 213 compression 0 (none)
>     item 4 key (30039326 INODE_ITEM 0) itemoff 15202 itemsize 160
>         generation 136248 transid 202216 size 120 nbytes 0
>         block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xe(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.541278502 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 5 key (30039326 INODE_REF 30037720) itemoff 15168 itemsize 34
>         index 243 namelen 24 name: obs-service-download_url
>     item 6 key (30039326 DIR_ITEM 1441374077) itemoff 15098 itemsize 70
>         location key (30039329 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 40
>         name: obs-service-download_url-20130318.ebuild
>     item 7 key (30039326 DIR_ITEM 2438219243) itemoff 15056 itemsize 42
>         location key (30039328 INODE_ITEM 0) type FILE
> --
>         generation 229515 transid 229515 size 26 nbytes 26
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0x2(none)
>         atime 1516557882.505679580 (2018-01-21 18:04:42)
>         ctime 1516557882.505679580 (2018-01-21 18:04:42)
>         mtime 1516557882.505679580 (2018-01-21 18:04:42)
>         otime 1516557882.505679580 (2018-01-21 18:04:42)
>     item 61 key (47302010 INODE_REF 30002892) itemoff 11503 itemsize 14
>         index 1798 namelen 4 name: HEAD
>     item 62 key (47302010 EXTENT_DATA 0) itemoff 11456 itemsize 47
>         generation 229515 type 0 (inline)
>         inline extent data size 26 ram_bytes 26 compression 0 (none)
>     item 63 key (47302013 INODE_ITEM 0) itemoff 11296 itemsize 160
>         generation 229515 transid 229516 size 782 nbytes 782
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0x0(none)
>         atime 1516557882.551679697 (2018-01-21 18:04:42)
>         ctime 1516557882.551679697 (2018-01-21 18:04:42)
>         mtime 1516557882.551679697 (2018-01-21 18:04:42)
>         otime 1516557882.551679697 (2018-01-21 18:04:42)
>     item 64 key (47302013 INODE_REF 30039322) itemoff 11278 itemsize 18
>         index 5 namelen 8 name: Manifest
> leaf 186518913024 items 86 free space 3119 generation 229516 owner 257
> leaf 186518913024 flags 0x1(WRITTEN) backref revision 1
> fs uuid de1723e2-150c-4448-bb36-be14d7d96093
> chunk uuid 443a227c-4f87-419a-b89a-3f5714eea403
>     item 0 key (47302013 EXTENT_DATA 0) itemoff 15480 itemsize 803
>         generation 229516 type 0 (inline)
>         inline extent data size 782 ram_bytes 782 compression 0 (none)
>     item 1 key (47302018 INODE_ITEM 0) itemoff 15320 itemsize 160
>         generation 229515 transid 229515 size 41 nbytes 41
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0x2(none)
>         atime 1516557883.180681304 (2018-01-21 18:04:43)
>         ctime 1516557883.180681304 (2018-01-21 18:04:43)
>         mtime 1516557883.180681304 (2018-01-21 18:04:43)
>         otime 1516557883.180681304 (2018-01-21 18:04:43)
>     item 2 key (47302018 INODE_REF 30002892) itemoff 15301 itemsize 19
>         index 1801 namelen 9 name: ORIG_HEAD
>     item 3 key (47302018 EXTENT_DATA 0) itemoff 15239 itemsize 62
>         generation 229515 type 0 (inline)
> --------------------------------------------
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 520 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-25  0:59                     ` Qu Wenruo
@ 2018-01-25 11:54                       ` ^m'e
  2018-01-25 12:09                         ` Qu Wenruo
  0 siblings, 1 reply; 32+ messages in thread
From: ^m'e @ 2018-01-25 11:54 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs

Here it is:

-------------------------------------------
# ./btrfs-debug-tree.static -t 257 /dev/sdb3 | grep -C 20 30039322 |
tee /mnt/custom/rescue/btrfs-recovery/btrfs-debug.30039322.t257.log
        location key (30037910 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 3
        name: bam
    item 52 key (30037720 DIR_ITEM 508462201) itemoff 14104 itemsize 40
        location key (30039832 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 10
        name: suse-build
    item 53 key (30037720 DIR_ITEM 541125215) itemoff 14070 itemsize 34
        location key (30038354 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 4
        name: cram
    item 54 key (30037720 DIR_ITEM 543235706) itemoff 14035 itemsize 35
        location key (30039133 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 5
        name: lsuio
    item 55 key (30037720 DIR_ITEM 586823170) itemoff 14000 itemsize 35
        location key (30038846 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 5
        name: geany
    item 56 key (30037720 DIR_ITEM 603413733) itemoff 13938 itemsize 62
        location key (30039322 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 32
        name: obs-service-download_src_package
    item 57 key (30037720 DIR_ITEM 623694194) itemoff 13903 itemsize 35
        location key (30038092 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 5
        name: byacc
    item 58 key (30037720 DIR_ITEM 637448305) itemoff 13868 itemsize 35
        location key (43374420 INODE_ITEM 0) type DIR
        transid 200308 data_len 0 name_len 5
        name: vpuml
    item 59 key (30037720 DIR_ITEM 660989717) itemoff 13828 itemsize 40
        location key (30038283 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 10
        name: comparator
    item 60 key (30037720 DIR_ITEM 666000672) itemoff 13782 itemsize 46
        location key (30039257 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 16
        name: molecule-plugins
    item 61 key (30037720 DIR_ITEM 679217690) itemoff 13749 itemsize 33
        location key (36281336 INODE_ITEM 0) type DIR
--
        location key (30039292 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 15
        name: nvidia-cuda-sdk
    item 73 key (30037720 DIR_INDEX 238) itemoff 13448 itemsize 49
        location key (30039299 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 19
        name: nvidia-cuda-toolkit
    item 74 key (30037720 DIR_INDEX 239) itemoff 13411 itemsize 37
        location key (30039309 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 7
        name: objconv
    item 75 key (30037720 DIR_INDEX 240) itemoff 13361 itemsize 50
        location key (30039314 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 20
        name: obs-service-cpanspec
    item 76 key (30037720 DIR_INDEX 241) itemoff 13305 itemsize 56
        location key (30039318 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 26
        name: obs-service-download_files
    item 77 key (30037720 DIR_INDEX 242) itemoff 13243 itemsize 62
        location key (30039322 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 32
        name: obs-service-download_src_package
    item 78 key (30037720 DIR_INDEX 243) itemoff 13189 itemsize 54
        location key (30039326 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 24
        name: obs-service-download_url
    item 79 key (30037720 DIR_INDEX 244) itemoff 13135 itemsize 54
        location key (30039330 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 24
        name: obs-service-extract_file
    item 80 key (30037720 DIR_INDEX 245) itemoff 13077 itemsize 58
        location key (30039334 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 28
        name: obs-service-format_spec_file
    item 81 key (30037720 DIR_INDEX 246) itemoff 13007 itemsize 70
        location key (30039338 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 40
        name: obs-service-generator_driver_update_disk
    item 82 key (30037720 DIR_INDEX 247) itemoff 12953 itemsize 54
        location key (30039342 INODE_ITEM 0) type DIR
--
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 73 key (30039320 INODE_REF 30039318) itemoff 5278 itemsize 22
        index 3 namelen 12 name: metadata.xml
    item 74 key (30039320 EXTENT_DATA 0) itemoff 4809 itemsize 469
        generation 136248 type 0 (inline)
        inline extent data size 448 ram_bytes 448 compression 0 (none)
    item 75 key (30039321 INODE_ITEM 0) itemoff 4649 itemsize 160
        generation 136248 transid 202216 size 213 nbytes 213
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 76 key (30039321 INODE_REF 30039318) itemoff 4597 itemsize 52
        index 4 namelen 42 name: obs-service-download_files-20130716.ebuild
    item 77 key (30039321 EXTENT_DATA 0) itemoff 4363 itemsize 234
        generation 136248 type 0 (inline)
        inline extent data size 213 ram_bytes 213 compression 0 (none)
    item 78 key (30039322 INODE_ITEM 0) itemoff 4203 itemsize 160
        generation 136248 transid 229515 size 99 nbytes 0
        block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xf(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1516557882.551679697 (2018-01-21 18:04:42)
        mtime 1516557882.551679697 (2018-01-21 18:04:42)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 79 key (30039322 INODE_REF 30037720) itemoff 4161 itemsize 42
        index 242 namelen 32 name: obs-service-download_src_package
    item 80 key (30039322 DIR_ITEM 1076301169) itemoff 4083 itemsize 78
        location key (30039325 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 48
        name: obs-service-download_src_package-20130318.ebuild
    item 81 key (30039322 DIR_ITEM 4007295565) itemoff 3969 itemsize 114
        location key (0 UNKNOWN.0 0) type DIR_ITEM.0
        transid 0 data_len 0 name_len 0
        name:
        location key (0 UNKNOWN.125 72057594038112709) type DIR_ITEM.0
        transid 0 data_len 32907 name_len 3
        name:
        data
    item 82 key (30039322 DIR_INDEX 4) itemoff 3891 itemsize 78
        location key (30039325 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 48
        name: obs-service-download_src_package-20130318.ebuild
    item 83 key (30039323 INODE_ITEM 0) itemoff 3731 itemsize 160
        generation 136248 transid 202216 size 782 nbytes 782
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 84 key (30039323 INODE_REF 47330540) itemoff 3713 itemsize 18
        index 2 namelen 8 name: Manifest
    item 85 key (30039323 EXTENT_DATA 0) itemoff 2910 itemsize 803
        generation 136248 type 0 (inline)
        inline extent data size 782 ram_bytes 782 compression 0 (none)
    item 86 key (30039324 INODE_ITEM 0) itemoff 2750 itemsize 160
        generation 136248 transid 202216 size 448 nbytes 448
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
--
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 87 key (30039324 INODE_REF 47330540) itemoff 2728 itemsize 22
        index 3 namelen 12 name: metadata.xml
leaf 36701356032 items 44 free space 8701 generation 202216 owner 257
leaf 36701356032 flags 0x1(WRITTEN) backref revision 1
fs uuid de1723e2-150c-4448-bb36-be14d7d96093
chunk uuid 443a227c-4f87-419a-b89a-3f5714eea403
    item 0 key (30039324 EXTENT_DATA 0) itemoff 15814 itemsize 469
        generation 136248 type 0 (inline)
        inline extent data size 448 ram_bytes 448 compression 0 (none)
    item 1 key (30039325 INODE_ITEM 0) itemoff 15654 itemsize 160
        generation 136248 transid 202216 size 213 nbytes 213
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 2 key (30039325 INODE_REF 30039322) itemoff 15596 itemsize 58
        index 4 namelen 48 name:
obs-service-download_src_package-20130318.ebuild
    item 3 key (30039325 EXTENT_DATA 0) itemoff 15362 itemsize 234
        generation 136248 type 0 (inline)
        inline extent data size 213 ram_bytes 213 compression 0 (none)
    item 4 key (30039326 INODE_ITEM 0) itemoff 15202 itemsize 160
        generation 136248 transid 202216 size 120 nbytes 0
        block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xe(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.541278502 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 5 key (30039326 INODE_REF 30037720) itemoff 15168 itemsize 34
        index 243 namelen 24 name: obs-service-download_url
    item 6 key (30039326 DIR_ITEM 1441374077) itemoff 15098 itemsize 70
        location key (30039329 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 40
        name: obs-service-download_url-20130318.ebuild
    item 7 key (30039326 DIR_ITEM 2438219243) itemoff 15056 itemsize 42
        location key (30039328 INODE_ITEM 0) type FILE
-------------------------------------------

Cheers,

   Marco

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-25 11:54                       ` ^m'e
@ 2018-01-25 12:09                         ` Qu Wenruo
  2018-01-25 12:29                           ` ^m'e
  0 siblings, 1 reply; 32+ messages in thread
From: Qu Wenruo @ 2018-01-25 12:09 UTC (permalink / raw)
  To: ^m'e; +Cc: linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 11701 bytes --]

Confirmed same problem as previous root.

So branch updated to fix the same problem for root 257.

Please try and see if the following error message is gone:

------
ERROR: root 257 DIR_ITEM[30039322 4007295565] couldn't find relative
INODE_ITEM[0] namelen 0 filename  filetype 0
ERROR: root 257 DIR_ITEM[30039322 4007295565] data_len shouldn't be 32907
ERROR: root 257 DIR_ITEM[30039322 4007295565] couldn't find relative
INODE_ITEM[0] namelen 3 filename  filetype 0
------

Thanks,
Qu

On 2018年01月25日 19:54, ^m'e wrote:
> Here it is:
> 
> -------------------------------------------
> # ./btrfs-debug-tree.static -t 257 /dev/sdb3 | grep -C 20 30039322 |
> tee /mnt/custom/rescue/btrfs-recovery/btrfs-debug.30039322.t257.log
>         location key (30037910 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 3
>         name: bam
>     item 52 key (30037720 DIR_ITEM 508462201) itemoff 14104 itemsize 40
>         location key (30039832 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 10
>         name: suse-build
>     item 53 key (30037720 DIR_ITEM 541125215) itemoff 14070 itemsize 34
>         location key (30038354 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 4
>         name: cram
>     item 54 key (30037720 DIR_ITEM 543235706) itemoff 14035 itemsize 35
>         location key (30039133 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 5
>         name: lsuio
>     item 55 key (30037720 DIR_ITEM 586823170) itemoff 14000 itemsize 35
>         location key (30038846 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 5
>         name: geany
>     item 56 key (30037720 DIR_ITEM 603413733) itemoff 13938 itemsize 62
>         location key (30039322 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 32
>         name: obs-service-download_src_package
>     item 57 key (30037720 DIR_ITEM 623694194) itemoff 13903 itemsize 35
>         location key (30038092 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 5
>         name: byacc
>     item 58 key (30037720 DIR_ITEM 637448305) itemoff 13868 itemsize 35
>         location key (43374420 INODE_ITEM 0) type DIR
>         transid 200308 data_len 0 name_len 5
>         name: vpuml
>     item 59 key (30037720 DIR_ITEM 660989717) itemoff 13828 itemsize 40
>         location key (30038283 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 10
>         name: comparator
>     item 60 key (30037720 DIR_ITEM 666000672) itemoff 13782 itemsize 46
>         location key (30039257 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 16
>         name: molecule-plugins
>     item 61 key (30037720 DIR_ITEM 679217690) itemoff 13749 itemsize 33
>         location key (36281336 INODE_ITEM 0) type DIR
> --
>         location key (30039292 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 15
>         name: nvidia-cuda-sdk
>     item 73 key (30037720 DIR_INDEX 238) itemoff 13448 itemsize 49
>         location key (30039299 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 19
>         name: nvidia-cuda-toolkit
>     item 74 key (30037720 DIR_INDEX 239) itemoff 13411 itemsize 37
>         location key (30039309 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 7
>         name: objconv
>     item 75 key (30037720 DIR_INDEX 240) itemoff 13361 itemsize 50
>         location key (30039314 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 20
>         name: obs-service-cpanspec
>     item 76 key (30037720 DIR_INDEX 241) itemoff 13305 itemsize 56
>         location key (30039318 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 26
>         name: obs-service-download_files
>     item 77 key (30037720 DIR_INDEX 242) itemoff 13243 itemsize 62
>         location key (30039322 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 32
>         name: obs-service-download_src_package
>     item 78 key (30037720 DIR_INDEX 243) itemoff 13189 itemsize 54
>         location key (30039326 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 24
>         name: obs-service-download_url
>     item 79 key (30037720 DIR_INDEX 244) itemoff 13135 itemsize 54
>         location key (30039330 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 24
>         name: obs-service-extract_file
>     item 80 key (30037720 DIR_INDEX 245) itemoff 13077 itemsize 58
>         location key (30039334 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 28
>         name: obs-service-format_spec_file
>     item 81 key (30037720 DIR_INDEX 246) itemoff 13007 itemsize 70
>         location key (30039338 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 40
>         name: obs-service-generator_driver_update_disk
>     item 82 key (30037720 DIR_INDEX 247) itemoff 12953 itemsize 54
>         location key (30039342 INODE_ITEM 0) type DIR
> --
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 73 key (30039320 INODE_REF 30039318) itemoff 5278 itemsize 22
>         index 3 namelen 12 name: metadata.xml
>     item 74 key (30039320 EXTENT_DATA 0) itemoff 4809 itemsize 469
>         generation 136248 type 0 (inline)
>         inline extent data size 448 ram_bytes 448 compression 0 (none)
>     item 75 key (30039321 INODE_ITEM 0) itemoff 4649 itemsize 160
>         generation 136248 transid 202216 size 213 nbytes 213
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 76 key (30039321 INODE_REF 30039318) itemoff 4597 itemsize 52
>         index 4 namelen 42 name: obs-service-download_files-20130716.ebuild
>     item 77 key (30039321 EXTENT_DATA 0) itemoff 4363 itemsize 234
>         generation 136248 type 0 (inline)
>         inline extent data size 213 ram_bytes 213 compression 0 (none)
>     item 78 key (30039322 INODE_ITEM 0) itemoff 4203 itemsize 160
>         generation 136248 transid 229515 size 99 nbytes 0
>         block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xf(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1516557882.551679697 (2018-01-21 18:04:42)
>         mtime 1516557882.551679697 (2018-01-21 18:04:42)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 79 key (30039322 INODE_REF 30037720) itemoff 4161 itemsize 42
>         index 242 namelen 32 name: obs-service-download_src_package
>     item 80 key (30039322 DIR_ITEM 1076301169) itemoff 4083 itemsize 78
>         location key (30039325 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 48
>         name: obs-service-download_src_package-20130318.ebuild
>     item 81 key (30039322 DIR_ITEM 4007295565) itemoff 3969 itemsize 114
>         location key (0 UNKNOWN.0 0) type DIR_ITEM.0
>         transid 0 data_len 0 name_len 0
>         name:
>         location key (0 UNKNOWN.125 72057594038112709) type DIR_ITEM.0
>         transid 0 data_len 32907 name_len 3
>         name:
>         data
>     item 82 key (30039322 DIR_INDEX 4) itemoff 3891 itemsize 78
>         location key (30039325 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 48
>         name: obs-service-download_src_package-20130318.ebuild
>     item 83 key (30039323 INODE_ITEM 0) itemoff 3731 itemsize 160
>         generation 136248 transid 202216 size 782 nbytes 782
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 84 key (30039323 INODE_REF 47330540) itemoff 3713 itemsize 18
>         index 2 namelen 8 name: Manifest
>     item 85 key (30039323 EXTENT_DATA 0) itemoff 2910 itemsize 803
>         generation 136248 type 0 (inline)
>         inline extent data size 782 ram_bytes 782 compression 0 (none)
>     item 86 key (30039324 INODE_ITEM 0) itemoff 2750 itemsize 160
>         generation 136248 transid 202216 size 448 nbytes 448
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
> --
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 87 key (30039324 INODE_REF 47330540) itemoff 2728 itemsize 22
>         index 3 namelen 12 name: metadata.xml
> leaf 36701356032 items 44 free space 8701 generation 202216 owner 257
> leaf 36701356032 flags 0x1(WRITTEN) backref revision 1
> fs uuid de1723e2-150c-4448-bb36-be14d7d96093
> chunk uuid 443a227c-4f87-419a-b89a-3f5714eea403
>     item 0 key (30039324 EXTENT_DATA 0) itemoff 15814 itemsize 469
>         generation 136248 type 0 (inline)
>         inline extent data size 448 ram_bytes 448 compression 0 (none)
>     item 1 key (30039325 INODE_ITEM 0) itemoff 15654 itemsize 160
>         generation 136248 transid 202216 size 213 nbytes 213
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 2 key (30039325 INODE_REF 30039322) itemoff 15596 itemsize 58
>         index 4 namelen 48 name:
> obs-service-download_src_package-20130318.ebuild
>     item 3 key (30039325 EXTENT_DATA 0) itemoff 15362 itemsize 234
>         generation 136248 type 0 (inline)
>         inline extent data size 213 ram_bytes 213 compression 0 (none)
>     item 4 key (30039326 INODE_ITEM 0) itemoff 15202 itemsize 160
>         generation 136248 transid 202216 size 120 nbytes 0
>         block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xe(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.541278502 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 5 key (30039326 INODE_REF 30037720) itemoff 15168 itemsize 34
>         index 243 namelen 24 name: obs-service-download_url
>     item 6 key (30039326 DIR_ITEM 1441374077) itemoff 15098 itemsize 70
>         location key (30039329 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 40
>         name: obs-service-download_url-20130318.ebuild
>     item 7 key (30039326 DIR_ITEM 2438219243) itemoff 15056 itemsize 42
>         location key (30039328 INODE_ITEM 0) type FILE
> -------------------------------------------
> 
> Cheers,
> 
>    Marco
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 520 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-25 12:09                         ` Qu Wenruo
@ 2018-01-25 12:29                           ` ^m'e
  2018-01-25 12:37                             ` Qu Wenruo
  0 siblings, 1 reply; 32+ messages in thread
From: ^m'e @ 2018-01-25 12:29 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs

No luck this time:

# ./btrfs-corrupt-block.static -X /dev/sdb3
ERROR: Failed to unlink the old file "Manifest": No such file or directory
extent buffer leak: start 4210688 len 16384
extent_io.c:607: free_extent_buffer_internal: BUG_ON `eb->flags &
EXTENT_DIRTY` triggered, value 1
[0x416a32]
[0x41720e]
[0x41725a]
[0x40a6e1]
[0x40aee3]
[0x403245]
[0x43ba83]
[0x43bbdf]
[0x400989]
Aborted

On Thu, Jan 25, 2018 at 12:09 PM, Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
> Confirmed same problem as previous root.
>
> So branch updated to fix the same problem for root 257.
>
> Please try and see if the following error message is gone:
>
> ------
> ERROR: root 257 DIR_ITEM[30039322 4007295565] couldn't find relative
> INODE_ITEM[0] namelen 0 filename  filetype 0
> ERROR: root 257 DIR_ITEM[30039322 4007295565] data_len shouldn't be 32907
> ERROR: root 257 DIR_ITEM[30039322 4007295565] couldn't find relative
> INODE_ITEM[0] namelen 3 filename  filetype 0
> ------
>
> Thanks,
> Qu
>
>



-- 
^m'e

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-25 12:29                           ` ^m'e
@ 2018-01-25 12:37                             ` Qu Wenruo
  2018-01-25 16:40                               ` ^m'e
  0 siblings, 1 reply; 32+ messages in thread
From: Qu Wenruo @ 2018-01-25 12:37 UTC (permalink / raw)
  To: ^m'e; +Cc: linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 1294 bytes --]



On 2018年01月25日 20:29, ^m'e wrote:
> No luck this time:
> 
> # ./btrfs-corrupt-block.static -X /dev/sdb3
> ERROR: Failed to unlink the old file "Manifest": No such file or directory
> extent buffer leak: start 4210688 len 16384
> extent_io.c:607: free_extent_buffer_internal: BUG_ON `eb->flags &
> EXTENT_DIRTY` triggered, value 1
> [0x416a32]
> [0x41720e]
> [0x41725a]
> [0x40a6e1]
> [0x40aee3]
> [0x403245]
> [0x43ba83]
> [0x43bbdf]
> [0x400989]
> Aborted

Checked the dump again, no need to unlink, just remove the offending
item should be good enough.

Branch updated, please check again.

Thanks,
Qu

> 
> On Thu, Jan 25, 2018 at 12:09 PM, Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
>> Confirmed same problem as previous root.
>>
>> So branch updated to fix the same problem for root 257.
>>
>> Please try and see if the following error message is gone:
>>
>> ------
>> ERROR: root 257 DIR_ITEM[30039322 4007295565] couldn't find relative
>> INODE_ITEM[0] namelen 0 filename  filetype 0
>> ERROR: root 257 DIR_ITEM[30039322 4007295565] data_len shouldn't be 32907
>> ERROR: root 257 DIR_ITEM[30039322 4007295565] couldn't find relative
>> INODE_ITEM[0] namelen 3 filename  filetype 0
>> ------
>>
>> Thanks,
>> Qu
>>
>>
> 
> 
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 520 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-25 12:37                             ` Qu Wenruo
@ 2018-01-25 16:40                               ` ^m'e
  2018-01-25 23:30                                 ` Qu Wenruo
  0 siblings, 1 reply; 32+ messages in thread
From: ^m'e @ 2018-01-25 16:40 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs

Quite some progress, thanks :-)

The check:
---------------------------------------------------
# ./btrfs.static check --mode=lowmem /dev/sdb3  2>&1 | tee
/mnt/custom/rescue/btrfs-recovery/btrfs-check.3.log
checking extents
checking free space cache
checking fs roots
ERROR: root 1385 INODE[30039323] is orphan item
ERROR: root 1385 INODE[18446744073709551361] is orphan item
ERROR: root 1399 DIR_ITEM[30039322 4007295565] name  namelen 0
filetype 0 mismatch with its hash, wanted 4007295565 have 4294967294
ERROR: root 1399 INODE_ITEM[0] index 18446744073709551615 name
filetype 0 missing
ERROR: root 1399 DIR_ITEM[30039322 4007295565] data_len shouldn't be 32907
ERROR: root 1399 DIR_ITEM[30039322 4007295565] name  namelen 3
filetype 0 mismatch with its hash, wanted 4007295565 have 987418363
ERROR: root 1399 INODE_ITEM[0] index 18446744073709551615 name
filetype 0 missing
ERROR: errors found in fs roots
Checking filesystem on /dev/sdb3
UUID: de1723e2-150c-4448-bb36-be14d7d96093
cache and super generation don't match, space cache will be invalidated
found 104496005120 bytes used, error(s) found
total csum bytes: 99678168
total tree bytes: 14560952320
total fs tree bytes: 14340227072
total extent tree bytes: 87851008
btree space waste bytes: 3163325351
file data blocks allocated: 362049273856
 referenced 315584987136
# echo $?
0
---------------------------------------------------

Please also mind a minor glitch (v4.14.1): that the exit is code is 0,
though there are errors


The rapair attempt:
---------------------------------------------------
 # ./btrfs.static check --repair /dev/sdb3  2>&1 | tee
/mnt/custom/rescue/btrfs-recovery/btrfs-repair.3.log
Fixed 0 roots.
checking extents
checking free space cache
checking fs roots
invalid location in dir item 0
Failed to reset nlink for inode 18446744073709551361: No such file or directory
    unresolved ref dir 30039322 index 0 namelen 12 name metadata.xml
filetype 1 errors 6, no dir index, no inode ref
ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
mismatch with its hash, wanted 4007295565 have 4294967294
invalid location in dir item 0
ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
mismatch with its hash, wanted 4007295565 have 987418363
invalid location in dir item 125
root 1399 inode 30039322 errors 10, odd dir item
Failed to reset nlink for inode 18446744073709551361: No such file or directory
    unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
errors 6, no dir index, no inode ref
    unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
errors 6, no dir index, no inode ref
ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
mismatch with its hash, wanted 4007295565 have 4294967294
invalid location in dir item 0
ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
mismatch with its hash, wanted 4007295565 have 987418363
invalid location in dir item 125
root 1399 inode 30039322 errors 10, odd dir item
Failed to reset nlink for inode 18446744073709551361: No such file or directory
    unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
errors 6, no dir index, no inode ref
    unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
errors 6, no dir index, no inode ref
ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
mismatch with its hash, wanted 4007295565 have 4294967294
invalid location in dir item 0
ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
mismatch with its hash, wanted 4007295565 have 987418363
invalid location in dir item 125
root 1399 inode 30039322 errors 10, odd dir item
Failed to reset nlink for inode 18446744073709551361: No such file or directory
    unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
errors 6, no dir index, no inode ref
    unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
errors 6, no dir index, no inode ref
ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
mismatch with its hash, wanted 4007295565 have 4294967294
invalid location in dir item 0
ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
mismatch with its hash, wanted 4007295565 have 987418363
invalid location in dir item 125
root 1399 inode 30039322 errors 10, odd dir item
Failed to reset nlink for inode 18446744073709551361: No such file or directory
    unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
errors 6, no dir index, no inode ref
    unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
errors 6, no dir index, no inode ref
ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
mismatch with its hash, wanted 4007295565 have 4294967294
invalid location in dir item 0
ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
mismatch with its hash, wanted 4007295565 have 987418363
invalid location in dir item 125
root 1399 inode 30039322 errors 10, odd dir item
Failed to reset nlink for inode 18446744073709551361: No such file or directory
    unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
errors 6, no dir index, no inode ref
    unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
errors 6, no dir index, no inode ref
ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
mismatch with its hash, wanted 4007295565 have 4294967294
invalid location in dir item 0
ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
mismatch with its hash, wanted 4007295565 have 987418363
invalid location in dir item 125
root 1399 inode 30039322 errors 10, odd dir item
Failed to reset nlink for inode 18446744073709551361: No such file or directory
    unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
errors 6, no dir index, no inode ref
    unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
errors 6, no dir index, no inode ref
ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
mismatch with its hash, wanted 4007295565 have 4294967294
invalid location in dir item 0
ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
mismatch with its hash, wanted 4007295565 have 987418363
invalid location in dir item 125
root 1399 inode 30039322 errors 10, odd dir item
Failed to reset nlink for inode 18446744073709551361: No such file or directory
    unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
errors 6, no dir index, no inode ref
    unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
errors 6, no dir index, no inode ref
^C
---------------------------------------------------


Debugging the two faulty roots -- hopefuly I got the message right ;-)

---------------------------------------------------
# ./btrfs-debug-tree.static -t 1385 /dev/sdb3 | grep -C 20 -E
'300393223|18446744073709551361' | tee
/mnt/custom/rescue/btrfs-recovery/btrfs-debug.t1385.log

mtime 1516557882.551679697 (2018-01-21 18:04:42)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 79 key (30039322 INODE_REF 30037720) itemoff 4161 itemsize 42
        index 242 namelen 32 name: obs-service-download_src_package
    item 80 key (30039322 DIR_ITEM 1076301169) itemoff 4083 itemsize 78
        location key (30039325 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 48
        name: obs-service-download_src_package-20130318.ebuild
    item 81 key (30039322 DIR_ITEM 4007295565) itemoff 4045 itemsize 38
        location key (47302013 INODE_ITEM 0) type FILE
        transid 3377699720527872 data_len 0 name_len 8
        name: Manifest
    item 82 key (30039322 DIR_INDEX 4) itemoff 3967 itemsize 78
        location key (30039325 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 48
        name: obs-service-download_src_package-20130318.ebuild
    item 83 key (30039322 DIR_INDEX 5) itemoff 3929 itemsize 38
        location key (47302013 INODE_ITEM 0) type FILE
        transid 3861419965563273305 data_len 0 name_len 8
        name: Manifest
    item 84 key (30039323 INODE_ITEM 0) itemoff 3769 itemsize 160
        generation 136248 transid 202216 size 782 nbytes 782
        block group 0 mode 100644 links 0 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 85 key (30039323 EXTENT_DATA 0) itemoff 2966 itemsize 803
        generation 136248 type 0 (inline)
        inline extent data size 782 ram_bytes 782 compression 0 (none)
    item 86 key (30039324 INODE_ITEM 0) itemoff 2806 itemsize 160
        generation 136248 transid 202216 size 448 nbytes 448
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 87 key (30039324 INODE_REF 47329988) itemoff 2784 itemsize 22
        index 2 namelen 12 name: metadata.xml
leaf 36701356032 items 44 free space 8701 generation 202216 owner 257
leaf 36701356032 flags 0x1(WRITTEN) backref revision 1
fs uuid de1723e2-150c-4448-bb36-be14d7d96093
chunk uuid 443a227c-4f87-419a-b89a-3f5714eea403
    item 0 key (30039324 EXTENT_DATA 0) itemoff 15814 itemsize 469
        generation 136248 type 0 (inline)
        inline extent data size 448 ram_bytes 448 compression 0 (none)
    item 1 key (30039325 INODE_ITEM 0) itemoff 15654 itemsize 160
--
        mtime 1516888573.0 (2018-01-25 13:56:13)
        otime 0.0 (1970-01-01 00:00:00)
    item 45 key (47329988 INODE_REF 256) itemoff 9768 itemsize 20
        index 28 namelen 10 name: lost+found
    item 46 key (47329988 DIR_ITEM 2438219243) itemoff 9726 itemsize 42
        location key (30039324 INODE_ITEM 0) type FILE
        transid 0 data_len 0 name_len 12
        name: metadata.xml
    item 47 key (47329988 DIR_INDEX 2) itemoff 9684 itemsize 42
        location key (30039324 INODE_ITEM 0) type FILE
        transid 0 data_len 0 name_len 12
        name: metadata.xml
    item 48 key (MULTIPLE INODE_ITEM 0) itemoff 9524 itemsize 160
        generation 461639 transid 0 size 0 nbytes 0
        block group 0 mode 100700 links 0 uid 0 gid 0 rdev 0
        sequence 0 flags 0x0(none)
        atime 1516888573.0 (2018-01-25 13:56:13)
        ctime 1516888573.0 (2018-01-25 13:56:13)
        mtime 1516888573.0 (2018-01-25 13:56:13)
        otime 0.0 (1970-01-01 00:00:00)
    item 49 key (ORPHAN ORPHAN_ITEM 30039323) itemoff 9524 itemsize 0
        orphan item
    item 50 key (ORPHAN ORPHAN_ITEM 18446744073709551361) itemoff 9524
itemsize 0
        orphan item
total bytes 247335313408
bytes used 104496005120
uuid de1723e2-150c-4448-bb36-be14d7d96093
---------------------------------------------------

---------------------------------------------------
# ./btrfs-debug-tree.static -t 1399 /dev/sdb3 | grep -C 20 -E
'30039322' | tee
/mnt/custom/rescue/btrfs-recovery/btrfs-debug.t1399.log

location key (30037910 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 3
        name: bam
    item 52 key (30037720 DIR_ITEM 508462201) itemoff 14104 itemsize 40
        location key (30039832 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 10
        name: suse-build
    item 53 key (30037720 DIR_ITEM 541125215) itemoff 14070 itemsize 34
        location key (30038354 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 4
        name: cram
    item 54 key (30037720 DIR_ITEM 543235706) itemoff 14035 itemsize 35
        location key (30039133 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 5
        name: lsuio
    item 55 key (30037720 DIR_ITEM 586823170) itemoff 14000 itemsize 35
        location key (30038846 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 5
        name: geany
    item 56 key (30037720 DIR_ITEM 603413733) itemoff 13938 itemsize 62
        location key (30039322 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 32
        name: obs-service-download_src_package
    item 57 key (30037720 DIR_ITEM 623694194) itemoff 13903 itemsize 35
        location key (30038092 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 5
        name: byacc
    item 58 key (30037720 DIR_ITEM 637448305) itemoff 13868 itemsize 35
        location key (43374420 INODE_ITEM 0) type DIR
        transid 200308 data_len 0 name_len 5
        name: vpuml
    item 59 key (30037720 DIR_ITEM 660989717) itemoff 13828 itemsize 40
        location key (30038283 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 10
        name: comparator
    item 60 key (30037720 DIR_ITEM 666000672) itemoff 13782 itemsize 46
        location key (30039257 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 16
        name: molecule-plugins
    item 61 key (30037720 DIR_ITEM 679217690) itemoff 13749 itemsize 33
        location key (36281336 INODE_ITEM 0) type DIR
--
        location key (30039292 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 15
        name: nvidia-cuda-sdk
    item 73 key (30037720 DIR_INDEX 238) itemoff 13448 itemsize 49
        location key (30039299 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 19
        name: nvidia-cuda-toolkit
    item 74 key (30037720 DIR_INDEX 239) itemoff 13411 itemsize 37
        location key (30039309 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 7
        name: objconv
    item 75 key (30037720 DIR_INDEX 240) itemoff 13361 itemsize 50
        location key (30039314 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 20
        name: obs-service-cpanspec
    item 76 key (30037720 DIR_INDEX 241) itemoff 13305 itemsize 56
        location key (30039318 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 26
        name: obs-service-download_files
    item 77 key (30037720 DIR_INDEX 242) itemoff 13243 itemsize 62
        location key (30039322 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 32
        name: obs-service-download_src_package
    item 78 key (30037720 DIR_INDEX 243) itemoff 13189 itemsize 54
        location key (30039326 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 24
        name: obs-service-download_url
    item 79 key (30037720 DIR_INDEX 244) itemoff 13135 itemsize 54
        location key (30039330 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 24
        name: obs-service-extract_file
    item 80 key (30037720 DIR_INDEX 245) itemoff 13077 itemsize 58
        location key (30039334 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 28
        name: obs-service-format_spec_file
    item 81 key (30037720 DIR_INDEX 246) itemoff 13007 itemsize 70
        location key (30039338 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 40
        name: obs-service-generator_driver_update_disk
    item 82 key (30037720 DIR_INDEX 247) itemoff 12953 itemsize 54
        location key (30039342 INODE_ITEM 0) type DIR
--
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 73 key (30039320 INODE_REF 30039318) itemoff 5278 itemsize 22
        index 3 namelen 12 name: metadata.xml
    item 74 key (30039320 EXTENT_DATA 0) itemoff 4809 itemsize 469
        generation 136248 type 0 (inline)
        inline extent data size 448 ram_bytes 448 compression 0 (none)
    item 75 key (30039321 INODE_ITEM 0) itemoff 4649 itemsize 160
        generation 136248 transid 202216 size 213 nbytes 213
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 76 key (30039321 INODE_REF 30039318) itemoff 4597 itemsize 52
        index 4 namelen 42 name: obs-service-download_files-20130716.ebuild
    item 77 key (30039321 EXTENT_DATA 0) itemoff 4363 itemsize 234
        generation 136248 type 0 (inline)
        inline extent data size 213 ram_bytes 213 compression 0 (none)
    item 78 key (30039322 INODE_ITEM 0) itemoff 4203 itemsize 160
        generation 136248 transid 229515 size 99 nbytes 0
        block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xf(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1516557882.551679697 (2018-01-21 18:04:42)
        mtime 1516557882.551679697 (2018-01-21 18:04:42)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 79 key (30039322 INODE_REF 30037720) itemoff 4161 itemsize 42
        index 242 namelen 32 name: obs-service-download_src_package
    item 80 key (30039322 DIR_ITEM 1076301169) itemoff 4083 itemsize 78
        location key (30039325 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 48
        name: obs-service-download_src_package-20130318.ebuild
    item 81 key (30039322 DIR_ITEM 4007295565) itemoff 3969 itemsize 114
        location key (0 UNKNOWN.0 0) type DIR_ITEM.0
        transid 0 data_len 0 name_len 0
        name:
        location key (0 UNKNOWN.125 72057594038112709) type DIR_ITEM.0
        transid 0 data_len 32907 name_len 3
        name:
        data
    item 82 key (30039322 DIR_INDEX 4) itemoff 3891 itemsize 78
        location key (30039325 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 48
        name: obs-service-download_src_package-20130318.ebuild
    item 83 key (30039323 INODE_ITEM 0) itemoff 3731 itemsize 160
        generation 136248 transid 202216 size 782 nbytes 782
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 84 key (30039323 INODE_REF 47330540) itemoff 3713 itemsize 18
        index 2 namelen 8 name: Manifest
    item 85 key (30039323 EXTENT_DATA 0) itemoff 2910 itemsize 803
        generation 136248 type 0 (inline)
        inline extent data size 782 ram_bytes 782 compression 0 (none)
    item 86 key (30039324 INODE_ITEM 0) itemoff 2750 itemsize 160
        generation 136248 transid 202216 size 448 nbytes 448
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
--
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 87 key (30039324 INODE_REF 47330540) itemoff 2728 itemsize 22
        index 3 namelen 12 name: metadata.xml
leaf 36701356032 items 44 free space 8701 generation 202216 owner 257
leaf 36701356032 flags 0x1(WRITTEN) backref revision 1
fs uuid de1723e2-150c-4448-bb36-be14d7d96093
chunk uuid 443a227c-4f87-419a-b89a-3f5714eea403
    item 0 key (30039324 EXTENT_DATA 0) itemoff 15814 itemsize 469
        generation 136248 type 0 (inline)
        inline extent data size 448 ram_bytes 448 compression 0 (none)
    item 1 key (30039325 INODE_ITEM 0) itemoff 15654 itemsize 160
        generation 136248 transid 202216 size 213 nbytes 213
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 2 key (30039325 INODE_REF 30039322) itemoff 15596 itemsize 58
        index 4 namelen 48 name:
obs-service-download_src_package-20130318.ebuild
    item 3 key (30039325 EXTENT_DATA 0) itemoff 15362 itemsize 234
        generation 136248 type 0 (inline)
        inline extent data size 213 ram_bytes 213 compression 0 (none)
    item 4 key (30039326 INODE_ITEM 0) itemoff 15202 itemsize 160
        generation 136248 transid 202216 size 120 nbytes 0
        block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xe(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.541278502 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 5 key (30039326 INODE_REF 30037720) itemoff 15168 itemsize 34
        index 243 namelen 24 name: obs-service-download_url
    item 6 key (30039326 DIR_ITEM 1441374077) itemoff 15098 itemsize 70
        location key (30039329 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 40
        name: obs-service-download_url-20130318.ebuild
    item 7 key (30039326 DIR_ITEM 2438219243) itemoff 15056 itemsize 42
        location key (30039328 INODE_ITEM 0) type FILE
---------------------------------------------------

Cheers,

  Marco

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-25 16:40                               ` ^m'e
@ 2018-01-25 23:30                                 ` Qu Wenruo
  2018-01-26 11:19                                   ` ^m'e
  0 siblings, 1 reply; 32+ messages in thread
From: Qu Wenruo @ 2018-01-25 23:30 UTC (permalink / raw)
  To: ^m'e; +Cc: linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 22895 bytes --]



On 2018年01月26日 00:40, ^m'e wrote:
> Quite some progress, thanks :-)
> 
> The check:
> ---------------------------------------------------
> # ./btrfs.static check --mode=lowmem /dev/sdb3  2>&1 | tee
> /mnt/custom/rescue/btrfs-recovery/btrfs-check.3.log
> checking extents
> checking free space cache
> checking fs roots
> ERROR: root 1385 INODE[30039323] is orphan item
> ERROR: root 1385 INODE[18446744073709551361] is orphan item
> ERROR: root 1399 DIR_ITEM[30039322 4007295565] name  namelen 0
> filetype 0 mismatch with its hash, wanted 4007295565 have 4294967294
> ERROR: root 1399 INODE_ITEM[0] index 18446744073709551615 name
> filetype 0 missing
> ERROR: root 1399 DIR_ITEM[30039322 4007295565] data_len shouldn't be 32907
> ERROR: root 1399 DIR_ITEM[30039322 4007295565] name  namelen 3
> filetype 0 mismatch with its hash, wanted 4007295565 have 987418363
> ERROR: root 1399 INODE_ITEM[0] index 18446744073709551615 name
> filetype 0 missing

Please provide dump for this:

# btrfs inspect dump-tree -t 1399 <device> | grep -C 20 18446744073709551615

And

# btrfs inspect dump-tree -t 1399 <device> | grep -C 20 30039322


> ERROR: errors found in fs roots
> Checking filesystem on /dev/sdb3
> UUID: de1723e2-150c-4448-bb36-be14d7d96093
> cache and super generation don't match, space cache will be invalidated
> found 104496005120 bytes used, error(s) found
> total csum bytes: 99678168
> total tree bytes: 14560952320
> total fs tree bytes: 14340227072
> total extent tree bytes: 87851008
> btree space waste bytes: 3163325351
> file data blocks allocated: 362049273856
>  referenced 315584987136
> # echo $?
> 0
> ---------------------------------------------------
> 
> Please also mind a minor glitch (v4.14.1): that the exit is code is 0,
> though there are errors

It's one known bug and we're working on it.

Thanks,
Qu

> 
> 
> The rapair attempt:
> ---------------------------------------------------
>  # ./btrfs.static check --repair /dev/sdb3  2>&1 | tee
> /mnt/custom/rescue/btrfs-recovery/btrfs-repair.3.log
> Fixed 0 roots.
> checking extents
> checking free space cache
> checking fs roots
> invalid location in dir item 0
> Failed to reset nlink for inode 18446744073709551361: No such file or directory
>     unresolved ref dir 30039322 index 0 namelen 12 name metadata.xml
> filetype 1 errors 6, no dir index, no inode ref
> ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
> mismatch with its hash, wanted 4007295565 have 4294967294
> invalid location in dir item 0
> ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
> mismatch with its hash, wanted 4007295565 have 987418363
> invalid location in dir item 125
> root 1399 inode 30039322 errors 10, odd dir item
> Failed to reset nlink for inode 18446744073709551361: No such file or directory
>     unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
> errors 6, no dir index, no inode ref
>     unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
> errors 6, no dir index, no inode ref
> ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
> mismatch with its hash, wanted 4007295565 have 4294967294
> invalid location in dir item 0
> ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
> mismatch with its hash, wanted 4007295565 have 987418363
> invalid location in dir item 125
> root 1399 inode 30039322 errors 10, odd dir item
> Failed to reset nlink for inode 18446744073709551361: No such file or directory
>     unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
> errors 6, no dir index, no inode ref
>     unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
> errors 6, no dir index, no inode ref
> ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
> mismatch with its hash, wanted 4007295565 have 4294967294
> invalid location in dir item 0
> ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
> mismatch with its hash, wanted 4007295565 have 987418363
> invalid location in dir item 125
> root 1399 inode 30039322 errors 10, odd dir item
> Failed to reset nlink for inode 18446744073709551361: No such file or directory
>     unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
> errors 6, no dir index, no inode ref
>     unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
> errors 6, no dir index, no inode ref
> ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
> mismatch with its hash, wanted 4007295565 have 4294967294
> invalid location in dir item 0
> ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
> mismatch with its hash, wanted 4007295565 have 987418363
> invalid location in dir item 125
> root 1399 inode 30039322 errors 10, odd dir item
> Failed to reset nlink for inode 18446744073709551361: No such file or directory
>     unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
> errors 6, no dir index, no inode ref
>     unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
> errors 6, no dir index, no inode ref
> ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
> mismatch with its hash, wanted 4007295565 have 4294967294
> invalid location in dir item 0
> ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
> mismatch with its hash, wanted 4007295565 have 987418363
> invalid location in dir item 125
> root 1399 inode 30039322 errors 10, odd dir item
> Failed to reset nlink for inode 18446744073709551361: No such file or directory
>     unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
> errors 6, no dir index, no inode ref
>     unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
> errors 6, no dir index, no inode ref
> ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
> mismatch with its hash, wanted 4007295565 have 4294967294
> invalid location in dir item 0
> ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
> mismatch with its hash, wanted 4007295565 have 987418363
> invalid location in dir item 125
> root 1399 inode 30039322 errors 10, odd dir item
> Failed to reset nlink for inode 18446744073709551361: No such file or directory
>     unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
> errors 6, no dir index, no inode ref
>     unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
> errors 6, no dir index, no inode ref
> ERROR: DIR_ITEM[30039322 4007295565] name  ]�  namelen 0 filetype 0
> mismatch with its hash, wanted 4007295565 have 4294967294
> invalid location in dir item 0
> ERROR: DIR_ITEM[30039322 4007295565] name  namelen 3 filetype 0
> mismatch with its hash, wanted 4007295565 have 987418363
> invalid location in dir item 125
> root 1399 inode 30039322 errors 10, odd dir item
> Failed to reset nlink for inode 18446744073709551361: No such file or directory
>     unresolved ref dir 30039322 index 0 namelen 0 name  filetype 0
> errors 6, no dir index, no inode ref
>     unresolved ref dir 30039322 index 0 namelen 3 name  filetype 0
> errors 6, no dir index, no inode ref
> ^C
> ---------------------------------------------------
> 
> 
> Debugging the two faulty roots -- hopefuly I got the message right ;-)
> 
> ---------------------------------------------------
> # ./btrfs-debug-tree.static -t 1385 /dev/sdb3 | grep -C 20 -E
> '300393223|18446744073709551361' | tee
> /mnt/custom/rescue/btrfs-recovery/btrfs-debug.t1385.log
> 
> mtime 1516557882.551679697 (2018-01-21 18:04:42)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 79 key (30039322 INODE_REF 30037720) itemoff 4161 itemsize 42
>         index 242 namelen 32 name: obs-service-download_src_package
>     item 80 key (30039322 DIR_ITEM 1076301169) itemoff 4083 itemsize 78
>         location key (30039325 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 48
>         name: obs-service-download_src_package-20130318.ebuild
>     item 81 key (30039322 DIR_ITEM 4007295565) itemoff 4045 itemsize 38
>         location key (47302013 INODE_ITEM 0) type FILE
>         transid 3377699720527872 data_len 0 name_len 8
>         name: Manifest
>     item 82 key (30039322 DIR_INDEX 4) itemoff 3967 itemsize 78
>         location key (30039325 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 48
>         name: obs-service-download_src_package-20130318.ebuild
>     item 83 key (30039322 DIR_INDEX 5) itemoff 3929 itemsize 38
>         location key (47302013 INODE_ITEM 0) type FILE
>         transid 3861419965563273305 data_len 0 name_len 8
>         name: Manifest
>     item 84 key (30039323 INODE_ITEM 0) itemoff 3769 itemsize 160
>         generation 136248 transid 202216 size 782 nbytes 782
>         block group 0 mode 100644 links 0 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 85 key (30039323 EXTENT_DATA 0) itemoff 2966 itemsize 803
>         generation 136248 type 0 (inline)
>         inline extent data size 782 ram_bytes 782 compression 0 (none)
>     item 86 key (30039324 INODE_ITEM 0) itemoff 2806 itemsize 160
>         generation 136248 transid 202216 size 448 nbytes 448
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 87 key (30039324 INODE_REF 47329988) itemoff 2784 itemsize 22
>         index 2 namelen 12 name: metadata.xml
> leaf 36701356032 items 44 free space 8701 generation 202216 owner 257
> leaf 36701356032 flags 0x1(WRITTEN) backref revision 1
> fs uuid de1723e2-150c-4448-bb36-be14d7d96093
> chunk uuid 443a227c-4f87-419a-b89a-3f5714eea403
>     item 0 key (30039324 EXTENT_DATA 0) itemoff 15814 itemsize 469
>         generation 136248 type 0 (inline)
>         inline extent data size 448 ram_bytes 448 compression 0 (none)
>     item 1 key (30039325 INODE_ITEM 0) itemoff 15654 itemsize 160
> --
>         mtime 1516888573.0 (2018-01-25 13:56:13)
>         otime 0.0 (1970-01-01 00:00:00)
>     item 45 key (47329988 INODE_REF 256) itemoff 9768 itemsize 20
>         index 28 namelen 10 name: lost+found
>     item 46 key (47329988 DIR_ITEM 2438219243) itemoff 9726 itemsize 42
>         location key (30039324 INODE_ITEM 0) type FILE
>         transid 0 data_len 0 name_len 12
>         name: metadata.xml
>     item 47 key (47329988 DIR_INDEX 2) itemoff 9684 itemsize 42
>         location key (30039324 INODE_ITEM 0) type FILE
>         transid 0 data_len 0 name_len 12
>         name: metadata.xml
>     item 48 key (MULTIPLE INODE_ITEM 0) itemoff 9524 itemsize 160
>         generation 461639 transid 0 size 0 nbytes 0
>         block group 0 mode 100700 links 0 uid 0 gid 0 rdev 0
>         sequence 0 flags 0x0(none)
>         atime 1516888573.0 (2018-01-25 13:56:13)
>         ctime 1516888573.0 (2018-01-25 13:56:13)
>         mtime 1516888573.0 (2018-01-25 13:56:13)
>         otime 0.0 (1970-01-01 00:00:00)
>     item 49 key (ORPHAN ORPHAN_ITEM 30039323) itemoff 9524 itemsize 0
>         orphan item
>     item 50 key (ORPHAN ORPHAN_ITEM 18446744073709551361) itemoff 9524
> itemsize 0
>         orphan item
> total bytes 247335313408
> bytes used 104496005120
> uuid de1723e2-150c-4448-bb36-be14d7d96093
> ---------------------------------------------------
> 
> ---------------------------------------------------
> # ./btrfs-debug-tree.static -t 1399 /dev/sdb3 | grep -C 20 -E
> '30039322' | tee
> /mnt/custom/rescue/btrfs-recovery/btrfs-debug.t1399.log
> 
> location key (30037910 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 3
>         name: bam
>     item 52 key (30037720 DIR_ITEM 508462201) itemoff 14104 itemsize 40
>         location key (30039832 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 10
>         name: suse-build
>     item 53 key (30037720 DIR_ITEM 541125215) itemoff 14070 itemsize 34
>         location key (30038354 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 4
>         name: cram
>     item 54 key (30037720 DIR_ITEM 543235706) itemoff 14035 itemsize 35
>         location key (30039133 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 5
>         name: lsuio
>     item 55 key (30037720 DIR_ITEM 586823170) itemoff 14000 itemsize 35
>         location key (30038846 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 5
>         name: geany
>     item 56 key (30037720 DIR_ITEM 603413733) itemoff 13938 itemsize 62
>         location key (30039322 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 32
>         name: obs-service-download_src_package
>     item 57 key (30037720 DIR_ITEM 623694194) itemoff 13903 itemsize 35
>         location key (30038092 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 5
>         name: byacc
>     item 58 key (30037720 DIR_ITEM 637448305) itemoff 13868 itemsize 35
>         location key (43374420 INODE_ITEM 0) type DIR
>         transid 200308 data_len 0 name_len 5
>         name: vpuml
>     item 59 key (30037720 DIR_ITEM 660989717) itemoff 13828 itemsize 40
>         location key (30038283 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 10
>         name: comparator
>     item 60 key (30037720 DIR_ITEM 666000672) itemoff 13782 itemsize 46
>         location key (30039257 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 16
>         name: molecule-plugins
>     item 61 key (30037720 DIR_ITEM 679217690) itemoff 13749 itemsize 33
>         location key (36281336 INODE_ITEM 0) type DIR
> --
>         location key (30039292 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 15
>         name: nvidia-cuda-sdk
>     item 73 key (30037720 DIR_INDEX 238) itemoff 13448 itemsize 49
>         location key (30039299 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 19
>         name: nvidia-cuda-toolkit
>     item 74 key (30037720 DIR_INDEX 239) itemoff 13411 itemsize 37
>         location key (30039309 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 7
>         name: objconv
>     item 75 key (30037720 DIR_INDEX 240) itemoff 13361 itemsize 50
>         location key (30039314 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 20
>         name: obs-service-cpanspec
>     item 76 key (30037720 DIR_INDEX 241) itemoff 13305 itemsize 56
>         location key (30039318 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 26
>         name: obs-service-download_files
>     item 77 key (30037720 DIR_INDEX 242) itemoff 13243 itemsize 62
>         location key (30039322 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 32
>         name: obs-service-download_src_package
>     item 78 key (30037720 DIR_INDEX 243) itemoff 13189 itemsize 54
>         location key (30039326 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 24
>         name: obs-service-download_url
>     item 79 key (30037720 DIR_INDEX 244) itemoff 13135 itemsize 54
>         location key (30039330 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 24
>         name: obs-service-extract_file
>     item 80 key (30037720 DIR_INDEX 245) itemoff 13077 itemsize 58
>         location key (30039334 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 28
>         name: obs-service-format_spec_file
>     item 81 key (30037720 DIR_INDEX 246) itemoff 13007 itemsize 70
>         location key (30039338 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 40
>         name: obs-service-generator_driver_update_disk
>     item 82 key (30037720 DIR_INDEX 247) itemoff 12953 itemsize 54
>         location key (30039342 INODE_ITEM 0) type DIR
> --
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 73 key (30039320 INODE_REF 30039318) itemoff 5278 itemsize 22
>         index 3 namelen 12 name: metadata.xml
>     item 74 key (30039320 EXTENT_DATA 0) itemoff 4809 itemsize 469
>         generation 136248 type 0 (inline)
>         inline extent data size 448 ram_bytes 448 compression 0 (none)
>     item 75 key (30039321 INODE_ITEM 0) itemoff 4649 itemsize 160
>         generation 136248 transid 202216 size 213 nbytes 213
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 76 key (30039321 INODE_REF 30039318) itemoff 4597 itemsize 52
>         index 4 namelen 42 name: obs-service-download_files-20130716.ebuild
>     item 77 key (30039321 EXTENT_DATA 0) itemoff 4363 itemsize 234
>         generation 136248 type 0 (inline)
>         inline extent data size 213 ram_bytes 213 compression 0 (none)
>     item 78 key (30039322 INODE_ITEM 0) itemoff 4203 itemsize 160
>         generation 136248 transid 229515 size 99 nbytes 0
>         block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xf(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1516557882.551679697 (2018-01-21 18:04:42)
>         mtime 1516557882.551679697 (2018-01-21 18:04:42)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 79 key (30039322 INODE_REF 30037720) itemoff 4161 itemsize 42
>         index 242 namelen 32 name: obs-service-download_src_package
>     item 80 key (30039322 DIR_ITEM 1076301169) itemoff 4083 itemsize 78
>         location key (30039325 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 48
>         name: obs-service-download_src_package-20130318.ebuild
>     item 81 key (30039322 DIR_ITEM 4007295565) itemoff 3969 itemsize 114
>         location key (0 UNKNOWN.0 0) type DIR_ITEM.0
>         transid 0 data_len 0 name_len 0
>         name:
>         location key (0 UNKNOWN.125 72057594038112709) type DIR_ITEM.0
>         transid 0 data_len 32907 name_len 3
>         name:
>         data
>     item 82 key (30039322 DIR_INDEX 4) itemoff 3891 itemsize 78
>         location key (30039325 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 48
>         name: obs-service-download_src_package-20130318.ebuild
>     item 83 key (30039323 INODE_ITEM 0) itemoff 3731 itemsize 160
>         generation 136248 transid 202216 size 782 nbytes 782
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 84 key (30039323 INODE_REF 47330540) itemoff 3713 itemsize 18
>         index 2 namelen 8 name: Manifest
>     item 85 key (30039323 EXTENT_DATA 0) itemoff 2910 itemsize 803
>         generation 136248 type 0 (inline)
>         inline extent data size 782 ram_bytes 782 compression 0 (none)
>     item 86 key (30039324 INODE_ITEM 0) itemoff 2750 itemsize 160
>         generation 136248 transid 202216 size 448 nbytes 448
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
> --
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 87 key (30039324 INODE_REF 47330540) itemoff 2728 itemsize 22
>         index 3 namelen 12 name: metadata.xml
> leaf 36701356032 items 44 free space 8701 generation 202216 owner 257
> leaf 36701356032 flags 0x1(WRITTEN) backref revision 1
> fs uuid de1723e2-150c-4448-bb36-be14d7d96093
> chunk uuid 443a227c-4f87-419a-b89a-3f5714eea403
>     item 0 key (30039324 EXTENT_DATA 0) itemoff 15814 itemsize 469
>         generation 136248 type 0 (inline)
>         inline extent data size 448 ram_bytes 448 compression 0 (none)
>     item 1 key (30039325 INODE_ITEM 0) itemoff 15654 itemsize 160
>         generation 136248 transid 202216 size 213 nbytes 213
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 2 key (30039325 INODE_REF 30039322) itemoff 15596 itemsize 58
>         index 4 namelen 48 name:
> obs-service-download_src_package-20130318.ebuild
>     item 3 key (30039325 EXTENT_DATA 0) itemoff 15362 itemsize 234
>         generation 136248 type 0 (inline)
>         inline extent data size 213 ram_bytes 213 compression 0 (none)
>     item 4 key (30039326 INODE_ITEM 0) itemoff 15202 itemsize 160
>         generation 136248 transid 202216 size 120 nbytes 0
>         block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xe(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.541278502 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 5 key (30039326 INODE_REF 30037720) itemoff 15168 itemsize 34
>         index 243 namelen 24 name: obs-service-download_url
>     item 6 key (30039326 DIR_ITEM 1441374077) itemoff 15098 itemsize 70
>         location key (30039329 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 40
>         name: obs-service-download_url-20130318.ebuild
>     item 7 key (30039326 DIR_ITEM 2438219243) itemoff 15056 itemsize 42
>         location key (30039328 INODE_ITEM 0) type FILE
> ---------------------------------------------------
> 
> Cheers,
> 
>   Marco
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 520 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-25 23:30                                 ` Qu Wenruo
@ 2018-01-26 11:19                                   ` ^m'e
  2018-01-26 12:16                                     ` Qu Wenruo
  0 siblings, 1 reply; 32+ messages in thread
From: ^m'e @ 2018-01-26 11:19 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs

On Thu, Jan 25, 2018 at 11:30 PM, Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
>
> Please provide dump for this:
>
> # btrfs inspect dump-tree -t 1399 <device> | grep -C 20 18446744073709551615
>

This gives nothing.

> And
>
> # btrfs inspect dump-tree -t 1399 <device> | grep -C 20 30039322
>

This gives:
---------------------------------------------------
location key (30037910 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 3
        name: bam
    item 52 key (30037720 DIR_ITEM 508462201) itemoff 14104 itemsize 40
        location key (30039832 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 10
        name: suse-build
    item 53 key (30037720 DIR_ITEM 541125215) itemoff 14070 itemsize 34
        location key (30038354 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 4
        name: cram
    item 54 key (30037720 DIR_ITEM 543235706) itemoff 14035 itemsize 35
        location key (30039133 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 5
        name: lsuio
    item 55 key (30037720 DIR_ITEM 586823170) itemoff 14000 itemsize 35
        location key (30038846 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 5
        name: geany
    item 56 key (30037720 DIR_ITEM 603413733) itemoff 13938 itemsize 62
        location key (30039322 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 32
        name: obs-service-download_src_package
    item 57 key (30037720 DIR_ITEM 623694194) itemoff 13903 itemsize 35
        location key (30038092 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 5
        name: byacc
    item 58 key (30037720 DIR_ITEM 637448305) itemoff 13868 itemsize 35
        location key (43374420 INODE_ITEM 0) type DIR
        transid 200308 data_len 0 name_len 5
        name: vpuml
    item 59 key (30037720 DIR_ITEM 660989717) itemoff 13828 itemsize 40
        location key (30038283 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 10
        name: comparator
    item 60 key (30037720 DIR_ITEM 666000672) itemoff 13782 itemsize 46
        location key (30039257 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 16
        name: molecule-plugins
    item 61 key (30037720 DIR_ITEM 679217690) itemoff 13749 itemsize 33
        location key (36281336 INODE_ITEM 0) type DIR
--
        location key (30039292 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 15
        name: nvidia-cuda-sdk
    item 73 key (30037720 DIR_INDEX 238) itemoff 13448 itemsize 49
        location key (30039299 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 19
        name: nvidia-cuda-toolkit
    item 74 key (30037720 DIR_INDEX 239) itemoff 13411 itemsize 37
        location key (30039309 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 7
        name: objconv
    item 75 key (30037720 DIR_INDEX 240) itemoff 13361 itemsize 50
        location key (30039314 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 20
        name: obs-service-cpanspec
    item 76 key (30037720 DIR_INDEX 241) itemoff 13305 itemsize 56
        location key (30039318 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 26
        name: obs-service-download_files
    item 77 key (30037720 DIR_INDEX 242) itemoff 13243 itemsize 62
        location key (30039322 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 32
        name: obs-service-download_src_package
    item 78 key (30037720 DIR_INDEX 243) itemoff 13189 itemsize 54
        location key (30039326 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 24
        name: obs-service-download_url
    item 79 key (30037720 DIR_INDEX 244) itemoff 13135 itemsize 54
        location key (30039330 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 24
        name: obs-service-extract_file
    item 80 key (30037720 DIR_INDEX 245) itemoff 13077 itemsize 58
        location key (30039334 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 28
        name: obs-service-format_spec_file
    item 81 key (30037720 DIR_INDEX 246) itemoff 13007 itemsize 70
        location key (30039338 INODE_ITEM 0) type DIR
        transid 136248 data_len 0 name_len 40
        name: obs-service-generator_driver_update_disk
    item 82 key (30037720 DIR_INDEX 247) itemoff 12953 itemsize 54
        location key (30039342 INODE_ITEM 0) type DIR
--
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 73 key (30039320 INODE_REF 30039318) itemoff 5278 itemsize 22
        index 3 namelen 12 name: metadata.xml
    item 74 key (30039320 EXTENT_DATA 0) itemoff 4809 itemsize 469
        generation 136248 type 0 (inline)
        inline extent data size 448 ram_bytes 448 compression 0 (none)
    item 75 key (30039321 INODE_ITEM 0) itemoff 4649 itemsize 160
        generation 136248 transid 202216 size 213 nbytes 213
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 76 key (30039321 INODE_REF 30039318) itemoff 4597 itemsize 52
        index 4 namelen 42 name: obs-service-download_files-20130716.ebuild
    item 77 key (30039321 EXTENT_DATA 0) itemoff 4363 itemsize 234
        generation 136248 type 0 (inline)
        inline extent data size 213 ram_bytes 213 compression 0 (none)
    item 78 key (30039322 INODE_ITEM 0) itemoff 4203 itemsize 160
        generation 136248 transid 229515 size 99 nbytes 0
        block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xf(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1516557882.551679697 (2018-01-21 18:04:42)
        mtime 1516557882.551679697 (2018-01-21 18:04:42)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 79 key (30039322 INODE_REF 30037720) itemoff 4161 itemsize 42
        index 242 namelen 32 name: obs-service-download_src_package
    item 80 key (30039322 DIR_ITEM 1076301169) itemoff 4083 itemsize 78
        location key (30039325 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 48
        name: obs-service-download_src_package-20130318.ebuild
    item 81 key (30039322 DIR_ITEM 4007295565) itemoff 3969 itemsize 114
        location key (0 UNKNOWN.0 0) type DIR_ITEM.0
        transid 0 data_len 0 name_len 0
        name:
        location key (0 UNKNOWN.125 72057594038112709) type DIR_ITEM.0
        transid 0 data_len 32907 name_len 3
        name:
        data
    item 82 key (30039322 DIR_INDEX 4) itemoff 3891 itemsize 78
        location key (30039325 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 48
        name: obs-service-download_src_package-20130318.ebuild
    item 83 key (30039323 INODE_ITEM 0) itemoff 3731 itemsize 160
        generation 136248 transid 202216 size 782 nbytes 782
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 84 key (30039323 INODE_REF 47330540) itemoff 3713 itemsize 18
        index 2 namelen 8 name: Manifest
    item 85 key (30039323 EXTENT_DATA 0) itemoff 2910 itemsize 803
        generation 136248 type 0 (inline)
        inline extent data size 782 ram_bytes 782 compression 0 (none)
    item 86 key (30039324 INODE_ITEM 0) itemoff 2750 itemsize 160
        generation 136248 transid 202216 size 448 nbytes 448
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
--
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 87 key (30039324 INODE_REF 47330540) itemoff 2728 itemsize 22
        index 3 namelen 12 name: metadata.xml
leaf 36701356032 items 44 free space 8701 generation 202216 owner 257
leaf 36701356032 flags 0x1(WRITTEN) backref revision 1
fs uuid de1723e2-150c-4448-bb36-be14d7d96093
chunk uuid 443a227c-4f87-419a-b89a-3f5714eea403
    item 0 key (30039324 EXTENT_DATA 0) itemoff 15814 itemsize 469
        generation 136248 type 0 (inline)
        inline extent data size 448 ram_bytes 448 compression 0 (none)
    item 1 key (30039325 INODE_ITEM 0) itemoff 15654 itemsize 160
        generation 136248 transid 202216 size 213 nbytes 213
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 2 key (30039325 INODE_REF 30039322) itemoff 15596 itemsize 58
        index 4 namelen 48 name:
obs-service-download_src_package-20130318.ebuild
    item 3 key (30039325 EXTENT_DATA 0) itemoff 15362 itemsize 234
        generation 136248 type 0 (inline)
        inline extent data size 213 ram_bytes 213 compression 0 (none)
    item 4 key (30039326 INODE_ITEM 0) itemoff 15202 itemsize 160
        generation 136248 transid 202216 size 120 nbytes 0
        block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xe(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.541278502 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 5 key (30039326 INODE_REF 30037720) itemoff 15168 itemsize 34
        index 243 namelen 24 name: obs-service-download_url
    item 6 key (30039326 DIR_ITEM 1441374077) itemoff 15098 itemsize 70
        location key (30039329 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 40
        name: obs-service-download_url-20130318.ebuild
    item 7 key (30039326 DIR_ITEM 2438219243) itemoff 15056 itemsize 42
        location key (30039328 INODE_ITEM 0) type FILE
---------------------------------------------------

Cheers,

  M.

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-26 11:19                                   ` ^m'e
@ 2018-01-26 12:16                                     ` Qu Wenruo
  2018-01-26 15:15                                       ` ^m'e
  0 siblings, 1 reply; 32+ messages in thread
From: Qu Wenruo @ 2018-01-26 12:16 UTC (permalink / raw)
  To: ^m'e; +Cc: linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 11501 bytes --]

Branch updated, problem in 1399 should be fixed.

Seems the remaining problems are less and less now.

Thanks,
Qu

On 2018年01月26日 19:19, ^m'e wrote:
> On Thu, Jan 25, 2018 at 11:30 PM, Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
>>
>> Please provide dump for this:
>>
>> # btrfs inspect dump-tree -t 1399 <device> | grep -C 20 18446744073709551615
>>
> 
> This gives nothing.
> 
>> And
>>
>> # btrfs inspect dump-tree -t 1399 <device> | grep -C 20 30039322
>>
> 
> This gives:
> ---------------------------------------------------
> location key (30037910 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 3
>         name: bam
>     item 52 key (30037720 DIR_ITEM 508462201) itemoff 14104 itemsize 40
>         location key (30039832 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 10
>         name: suse-build
>     item 53 key (30037720 DIR_ITEM 541125215) itemoff 14070 itemsize 34
>         location key (30038354 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 4
>         name: cram
>     item 54 key (30037720 DIR_ITEM 543235706) itemoff 14035 itemsize 35
>         location key (30039133 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 5
>         name: lsuio
>     item 55 key (30037720 DIR_ITEM 586823170) itemoff 14000 itemsize 35
>         location key (30038846 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 5
>         name: geany
>     item 56 key (30037720 DIR_ITEM 603413733) itemoff 13938 itemsize 62
>         location key (30039322 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 32
>         name: obs-service-download_src_package
>     item 57 key (30037720 DIR_ITEM 623694194) itemoff 13903 itemsize 35
>         location key (30038092 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 5
>         name: byacc
>     item 58 key (30037720 DIR_ITEM 637448305) itemoff 13868 itemsize 35
>         location key (43374420 INODE_ITEM 0) type DIR
>         transid 200308 data_len 0 name_len 5
>         name: vpuml
>     item 59 key (30037720 DIR_ITEM 660989717) itemoff 13828 itemsize 40
>         location key (30038283 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 10
>         name: comparator
>     item 60 key (30037720 DIR_ITEM 666000672) itemoff 13782 itemsize 46
>         location key (30039257 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 16
>         name: molecule-plugins
>     item 61 key (30037720 DIR_ITEM 679217690) itemoff 13749 itemsize 33
>         location key (36281336 INODE_ITEM 0) type DIR
> --
>         location key (30039292 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 15
>         name: nvidia-cuda-sdk
>     item 73 key (30037720 DIR_INDEX 238) itemoff 13448 itemsize 49
>         location key (30039299 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 19
>         name: nvidia-cuda-toolkit
>     item 74 key (30037720 DIR_INDEX 239) itemoff 13411 itemsize 37
>         location key (30039309 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 7
>         name: objconv
>     item 75 key (30037720 DIR_INDEX 240) itemoff 13361 itemsize 50
>         location key (30039314 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 20
>         name: obs-service-cpanspec
>     item 76 key (30037720 DIR_INDEX 241) itemoff 13305 itemsize 56
>         location key (30039318 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 26
>         name: obs-service-download_files
>     item 77 key (30037720 DIR_INDEX 242) itemoff 13243 itemsize 62
>         location key (30039322 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 32
>         name: obs-service-download_src_package
>     item 78 key (30037720 DIR_INDEX 243) itemoff 13189 itemsize 54
>         location key (30039326 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 24
>         name: obs-service-download_url
>     item 79 key (30037720 DIR_INDEX 244) itemoff 13135 itemsize 54
>         location key (30039330 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 24
>         name: obs-service-extract_file
>     item 80 key (30037720 DIR_INDEX 245) itemoff 13077 itemsize 58
>         location key (30039334 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 28
>         name: obs-service-format_spec_file
>     item 81 key (30037720 DIR_INDEX 246) itemoff 13007 itemsize 70
>         location key (30039338 INODE_ITEM 0) type DIR
>         transid 136248 data_len 0 name_len 40
>         name: obs-service-generator_driver_update_disk
>     item 82 key (30037720 DIR_INDEX 247) itemoff 12953 itemsize 54
>         location key (30039342 INODE_ITEM 0) type DIR
> --
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 73 key (30039320 INODE_REF 30039318) itemoff 5278 itemsize 22
>         index 3 namelen 12 name: metadata.xml
>     item 74 key (30039320 EXTENT_DATA 0) itemoff 4809 itemsize 469
>         generation 136248 type 0 (inline)
>         inline extent data size 448 ram_bytes 448 compression 0 (none)
>     item 75 key (30039321 INODE_ITEM 0) itemoff 4649 itemsize 160
>         generation 136248 transid 202216 size 213 nbytes 213
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 76 key (30039321 INODE_REF 30039318) itemoff 4597 itemsize 52
>         index 4 namelen 42 name: obs-service-download_files-20130716.ebuild
>     item 77 key (30039321 EXTENT_DATA 0) itemoff 4363 itemsize 234
>         generation 136248 type 0 (inline)
>         inline extent data size 213 ram_bytes 213 compression 0 (none)
>     item 78 key (30039322 INODE_ITEM 0) itemoff 4203 itemsize 160
>         generation 136248 transid 229515 size 99 nbytes 0
>         block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xf(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1516557882.551679697 (2018-01-21 18:04:42)
>         mtime 1516557882.551679697 (2018-01-21 18:04:42)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 79 key (30039322 INODE_REF 30037720) itemoff 4161 itemsize 42
>         index 242 namelen 32 name: obs-service-download_src_package
>     item 80 key (30039322 DIR_ITEM 1076301169) itemoff 4083 itemsize 78
>         location key (30039325 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 48
>         name: obs-service-download_src_package-20130318.ebuild
>     item 81 key (30039322 DIR_ITEM 4007295565) itemoff 3969 itemsize 114
>         location key (0 UNKNOWN.0 0) type DIR_ITEM.0
>         transid 0 data_len 0 name_len 0
>         name:
>         location key (0 UNKNOWN.125 72057594038112709) type DIR_ITEM.0
>         transid 0 data_len 32907 name_len 3
>         name:
>         data
>     item 82 key (30039322 DIR_INDEX 4) itemoff 3891 itemsize 78
>         location key (30039325 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 48
>         name: obs-service-download_src_package-20130318.ebuild
>     item 83 key (30039323 INODE_ITEM 0) itemoff 3731 itemsize 160
>         generation 136248 transid 202216 size 782 nbytes 782
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 84 key (30039323 INODE_REF 47330540) itemoff 3713 itemsize 18
>         index 2 namelen 8 name: Manifest
>     item 85 key (30039323 EXTENT_DATA 0) itemoff 2910 itemsize 803
>         generation 136248 type 0 (inline)
>         inline extent data size 782 ram_bytes 782 compression 0 (none)
>     item 86 key (30039324 INODE_ITEM 0) itemoff 2750 itemsize 160
>         generation 136248 transid 202216 size 448 nbytes 448
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
> --
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 87 key (30039324 INODE_REF 47330540) itemoff 2728 itemsize 22
>         index 3 namelen 12 name: metadata.xml
> leaf 36701356032 items 44 free space 8701 generation 202216 owner 257
> leaf 36701356032 flags 0x1(WRITTEN) backref revision 1
> fs uuid de1723e2-150c-4448-bb36-be14d7d96093
> chunk uuid 443a227c-4f87-419a-b89a-3f5714eea403
>     item 0 key (30039324 EXTENT_DATA 0) itemoff 15814 itemsize 469
>         generation 136248 type 0 (inline)
>         inline extent data size 448 ram_bytes 448 compression 0 (none)
>     item 1 key (30039325 INODE_ITEM 0) itemoff 15654 itemsize 160
>         generation 136248 transid 202216 size 213 nbytes 213
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 2 key (30039325 INODE_REF 30039322) itemoff 15596 itemsize 58
>         index 4 namelen 48 name:
> obs-service-download_src_package-20130318.ebuild
>     item 3 key (30039325 EXTENT_DATA 0) itemoff 15362 itemsize 234
>         generation 136248 type 0 (inline)
>         inline extent data size 213 ram_bytes 213 compression 0 (none)
>     item 4 key (30039326 INODE_ITEM 0) itemoff 15202 itemsize 160
>         generation 136248 transid 202216 size 120 nbytes 0
>         block group 0 mode 40755 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xe(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.541278502 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 5 key (30039326 INODE_REF 30037720) itemoff 15168 itemsize 34
>         index 243 namelen 24 name: obs-service-download_url
>     item 6 key (30039326 DIR_ITEM 1441374077) itemoff 15098 itemsize 70
>         location key (30039329 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 40
>         name: obs-service-download_url-20130318.ebuild
>     item 7 key (30039326 DIR_ITEM 2438219243) itemoff 15056 itemsize 42
>         location key (30039328 INODE_ITEM 0) type FILE
> ---------------------------------------------------
> 
> Cheers,
> 
>   M.
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 520 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-26 12:16                                     ` Qu Wenruo
@ 2018-01-26 15:15                                       ` ^m'e
  2018-01-29  1:34                                         ` Qu Wenruo
  0 siblings, 1 reply; 32+ messages in thread
From: ^m'e @ 2018-01-26 15:15 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs

On Fri, Jan 26, 2018 at 12:16 PM, Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
> Branch updated, problem in 1399 should be fixed.
>
> Seems the remaining problems are less and less now.
>
> Thanks,
> Qu
>

Great! The fix worked, and repair goes throught at last :-) though
we're still left with some inconsistencies at check:
(1st run)
--------------------------------------------------------------------------
checking fs roots
ERROR: root 1385 INODE[30039323] is orphan item
ERROR: root 1385 INODE[18446744073709551361] is orphan item
ERROR: root 1399 DIR INODE [30039322] size 99 not equal to 96
ERROR: root 1399 INODE[18446744073709551361] is orphan item
ERROR: errors found in fs roots
...
--------------------------------------------------------------------------

repair (1st run)
--------------------------------------------------------------------------
Fixed 0 roots.
checking extents
checking free space cache
checking fs roots
warning line 4682
checking csums
checking root refs
enabling repair mode
Checking filesystem on /dev/sdb3
UUID: de1723e2-150c-4448-bb36-be14d7d96093
No device size related problem found
cache and super generation don't match, space cache will be invalidated
reset isize for dir 30039322 root 1399
found 104509362176 bytes used, no error found
total csum bytes: 99690492
total tree bytes: 2394259456
total fs tree bytes: 2173468672
total extent tree bytes: 87900160
btree space waste bytes: 574264314
file data blocks allocated: 190189735936
 referenced 150679924736
--------------------------------------------------------------------------

check (2nd run)
--------------------------------------------------------------------------
checking fs roots
ERROR: root 1385 INODE[30039323] is orphan item
ERROR: root 1385 INODE[18446744073709551361] is orphan item
ERROR: root 1399 INODE[18446744073709551361] is orphan item
ERROR: errors found in fs roots
Checking filesystem on /dev/sdb3
UUID: de1723e2-150c-4448-bb36-be14d7d96093
cache and super generation don't match, space cache will be invalidated
found 104509362176 bytes used, error(s) found
total csum bytes: 99690492
total tree bytes: 14561427456
total fs tree bytes: 14340636672
total extent tree bytes: 87900160
btree space waste bytes: 3163391144
file data blocks allocated: 362059718656
 referenced 315586768896
--------------------------------------------------------------------------

repair (2nd run)
--------------------------------------------------------------------------
Fixed 0 roots.
checking extents
checking free space cache
checking fs roots
checking csums
checking root refs
enabling repair mode
Checking filesystem on /dev/sdb3
UUID: de1723e2-150c-4448-bb36-be14d7d96093
No device size related problem found
cache and super generation don't match, space cache will be invalidated
found 104509362176 bytes used, no error found
total csum bytes: 99690492
total tree bytes: 2394259456
total fs tree bytes: 2173468672
total extent tree bytes: 87900160
btree space waste bytes: 574264314
file data blocks allocated: 190189735936
 referenced 150679924736
--------------------------------------------------------------------------

It looks like it didn't detect anything bad...
As a side note, check in "original" mode doesn't detect the issues as
in runs reported above.

Debugging:
--------------------------------------------------------------------------
# ./btrfs.static inspect dump-tree -t 1385 /dev/sdb3 | grep -C 20
18446744073709551361
    item 45 key (47329988 INODE_REF 256) itemoff 9768 itemsize 20
        index 28 namelen 10 name: lost+found
    item 46 key (47329988 DIR_ITEM 2438219243) itemoff 9726 itemsize 42
        location key (30039324 INODE_ITEM 0) type FILE
        transid 0 data_len 0 name_len 12
        name: metadata.xml
    item 47 key (47329988 DIR_INDEX 2) itemoff 9684 itemsize 42
        location key (30039324 INODE_ITEM 0) type FILE
        transid 0 data_len 0 name_len 12
        name: metadata.xml
    item 48 key (MULTIPLE INODE_ITEM 0) itemoff 9524 itemsize 160
        generation 461639 transid 0 size 0 nbytes 0
        block group 0 mode 100700 links 0 uid 0 gid 0 rdev 0
        sequence 0 flags 0x0(none)
        atime 1516888573.0 (2018-01-25 13:56:13)
        ctime 1516888573.0 (2018-01-25 13:56:13)
        mtime 1516888573.0 (2018-01-25 13:56:13)
        otime 0.0 (1970-01-01 00:00:00)
    item 49 key (ORPHAN ORPHAN_ITEM 30039323) itemoff 9524 itemsize 0
        orphan item
    item 50 key (ORPHAN ORPHAN_ITEM 18446744073709551361) itemoff 9524
itemsize 0
        orphan item
total bytes 247335313408
bytes used 104509362176
uuid de1723e2-150c-4448-bb36-be14d7d96093
--------------------------------------------------------------------------

--------------------------------------------------------------------------
# ./btrfs.static inspect dump-tree -t 1399 /dev/sdb3 | grep -C 20
18446744073709551361
    item 17 key (47343871 INODE_REF 6928733) itemoff 13096 itemsize 21
        index 2746 namelen 11 name: cron.hourly
    item 18 key (47343872 INODE_ITEM 0) itemoff 12936 itemsize 160
        generation 460550 transid 460550 size 0 nbytes 0
        block group 0 mode 100644 links 1 uid 0 gid 0 rdev 0
        sequence 0 flags 0x1(none)
        atime 1516784116.26956368 (2018-01-24 08:55:16)
        ctime 1516784116.26956368 (2018-01-24 08:55:16)
        mtime 1516784116.26956368 (2018-01-24 08:55:16)
        otime 1516784116.26956368 (2018-01-24 08:55:16)
    item 19 key (47343872 INODE_REF 6928733) itemoff 12916 itemsize 20
        index 2747 namelen 10 name: cron.daily
    item 20 key (MULTIPLE INODE_ITEM 0) itemoff 12756 itemsize 160
        generation 461641 transid 0 size 0 nbytes 0
        block group 0 mode 700 links 0 uid 0 gid 0 rdev 0
        sequence 0 flags 0x0(none)
        atime 1516888641.0 (2018-01-25 13:57:21)
        ctime 1516888641.0 (2018-01-25 13:57:21)
        mtime 1516888641.0 (2018-01-25 13:57:21)
        otime 0.0 (1970-01-01 00:00:00)
    item 21 key (ORPHAN ORPHAN_ITEM 18446744073709551361) itemoff
12756 itemsize 0
        orphan item
total bytes 247335313408
bytes used 104509362176
uuid de1723e2-150c-4448-bb36-be14d7d96093
--------------------------------------------------------------------------

--------------------------------------------------------------------------
# ./btrfs.static inspect dump-tree -t 1385 /dev/sdb3 | grep -C 20 30039323
        mtime 1516557882.551679697 (2018-01-21 18:04:42)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 79 key (30039322 INODE_REF 30037720) itemoff 4161 itemsize 42
        index 242 namelen 32 name: obs-service-download_src_package
    item 80 key (30039322 DIR_ITEM 1076301169) itemoff 4083 itemsize 78
        location key (30039325 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 48
        name: obs-service-download_src_package-20130318.ebuild
    item 81 key (30039322 DIR_ITEM 4007295565) itemoff 4045 itemsize 38
        location key (47302013 INODE_ITEM 0) type FILE
        transid 3377699720527872 data_len 0 name_len 8
        name: Manifest
    item 82 key (30039322 DIR_INDEX 4) itemoff 3967 itemsize 78
        location key (30039325 INODE_ITEM 0) type FILE
        transid 136248 data_len 0 name_len 48
        name: obs-service-download_src_package-20130318.ebuild
    item 83 key (30039322 DIR_INDEX 5) itemoff 3929 itemsize 38
        location key (47302013 INODE_ITEM 0) type FILE
        transid 3861419965563273305 data_len 0 name_len 8
        name: Manifest
    item 84 key (30039323 INODE_ITEM 0) itemoff 3769 itemsize 160
        generation 136248 transid 202216 size 782 nbytes 782
        block group 0 mode 100644 links 0 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 85 key (30039323 EXTENT_DATA 0) itemoff 2966 itemsize 803
        generation 136248 type 0 (inline)
        inline extent data size 782 ram_bytes 782 compression 0 (none)
    item 86 key (30039324 INODE_ITEM 0) itemoff 2806 itemsize 160
        generation 136248 transid 202216 size 448 nbytes 448
        block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
        sequence 0 flags 0xb(none)
        atime 1504685599.188061317 (2017-09-06 08:13:19)
        ctime 1512818139.540278499 (2017-12-09 11:15:39)
        mtime 1504685599.188061317 (2017-09-06 08:13:19)
        otime 1504685599.188061317 (2017-09-06 08:13:19)
    item 87 key (30039324 INODE_REF 47329988) itemoff 2784 itemsize 22
        index 2 namelen 12 name: metadata.xml
leaf 36701356032 items 44 free space 8701 generation 202216 owner 257
leaf 36701356032 flags 0x1(WRITTEN) backref revision 1
fs uuid de1723e2-150c-4448-bb36-be14d7d96093
chunk uuid 443a227c-4f87-419a-b89a-3f5714eea403
    item 0 key (30039324 EXTENT_DATA 0) itemoff 15814 itemsize 469
        generation 136248 type 0 (inline)
        inline extent data size 448 ram_bytes 448 compression 0 (none)
    item 1 key (30039325 INODE_ITEM 0) itemoff 15654 itemsize 160
--
        mtime 1516888573.0 (2018-01-25 13:56:13)
        otime 0.0 (1970-01-01 00:00:00)
    item 45 key (47329988 INODE_REF 256) itemoff 9768 itemsize 20
        index 28 namelen 10 name: lost+found
    item 46 key (47329988 DIR_ITEM 2438219243) itemoff 9726 itemsize 42
        location key (30039324 INODE_ITEM 0) type FILE
        transid 0 data_len 0 name_len 12
        name: metadata.xml
    item 47 key (47329988 DIR_INDEX 2) itemoff 9684 itemsize 42
        location key (30039324 INODE_ITEM 0) type FILE
        transid 0 data_len 0 name_len 12
        name: metadata.xml
    item 48 key (MULTIPLE INODE_ITEM 0) itemoff 9524 itemsize 160
        generation 461639 transid 0 size 0 nbytes 0
        block group 0 mode 100700 links 0 uid 0 gid 0 rdev 0
        sequence 0 flags 0x0(none)
        atime 1516888573.0 (2018-01-25 13:56:13)
        ctime 1516888573.0 (2018-01-25 13:56:13)
        mtime 1516888573.0 (2018-01-25 13:56:13)
        otime 0.0 (1970-01-01 00:00:00)
    item 49 key (ORPHAN ORPHAN_ITEM 30039323) itemoff 9524 itemsize 0
        orphan item
    item 50 key (ORPHAN ORPHAN_ITEM 18446744073709551361) itemoff 9524
itemsize 0
        orphan item
total bytes 247335313408
bytes used 104509362176
uuid de1723e2-150c-4448-bb36-be14d7d96093
--------------------------------------------------------------------------

Cheers,

   Marco

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-26 15:15                                       ` ^m'e
@ 2018-01-29  1:34                                         ` Qu Wenruo
  2018-01-29 13:58                                           ` ^m'e
  0 siblings, 1 reply; 32+ messages in thread
From: Qu Wenruo @ 2018-01-29  1:34 UTC (permalink / raw)
  To: ^m'e; +Cc: linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 12032 bytes --]



On 2018年01月26日 23:15, ^m'e wrote:
> On Fri, Jan 26, 2018 at 12:16 PM, Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
>> Branch updated, problem in 1399 should be fixed.
>>
>> Seems the remaining problems are less and less now.
>>
>> Thanks,
>> Qu
>>
> 
> Great! The fix worked, and repair goes throught at last :-) though
> we're still left with some inconsistencies at check:
> (1st run)
> --------------------------------------------------------------------------
> checking fs roots
> ERROR: root 1385 INODE[30039323] is orphan item
> ERROR: root 1385 INODE[18446744073709551361] is orphan item
> ERROR: root 1399 DIR INODE [30039322] size 99 not equal to 96

As you could see, dir isize can be fixed by both repair mode.
(Just in case, lowmem mode also supports repair)

> ERROR: root 1399 INODE[18446744073709551361] is orphan item
> ERROR: errors found in fs roots
> ...
> --------------------------------------------------------------------------
> 
> repair (1st run)
> --------------------------------------------------------------------------
> Fixed 0 roots.
> checking extents
> checking free space cache
> checking fs roots
> warning line 4682
> checking csums
> checking root refs
> enabling repair mode
> Checking filesystem on /dev/sdb3
> UUID: de1723e2-150c-4448-bb36-be14d7d96093
> No device size related problem found
> cache and super generation don't match, space cache will be invalidated
> reset isize for dir 30039322 root 1399
> found 104509362176 bytes used, no error found
> total csum bytes: 99690492
> total tree bytes: 2394259456
> total fs tree bytes: 2173468672
> total extent tree bytes: 87900160
> btree space waste bytes: 574264314
> file data blocks allocated: 190189735936
>  referenced 150679924736
> --------------------------------------------------------------------------
> 
> check (2nd run)
> --------------------------------------------------------------------------
> checking fs roots
> ERROR: root 1385 INODE[30039323] is orphan item
> ERROR: root 1385 INODE[18446744073709551361] is orphan item
> ERROR: root 1399 INODE[18446744073709551361] is orphan item

I'm not sure if the orphan item report is necessary for lowmem mode.

IIRC orphan item is completely valid.

I'll dig it further to fit it.

> ERROR: errors found in fs roots
> Checking filesystem on /dev/sdb3
> UUID: de1723e2-150c-4448-bb36-be14d7d96093
> cache and super generation don't match, space cache will be invalidated
> found 104509362176 bytes used, error(s) found
> total csum bytes: 99690492
> total tree bytes: 14561427456
> total fs tree bytes: 14340636672
> total extent tree bytes: 87900160
> btree space waste bytes: 3163391144
> file data blocks allocated: 362059718656
>  referenced 315586768896
> --------------------------------------------------------------------------
> 
> repair (2nd run)
> --------------------------------------------------------------------------
> Fixed 0 roots.
> checking extents
> checking free space cache
> checking fs roots
> checking csums
> checking root refs
> enabling repair mode
> Checking filesystem on /dev/sdb3
> UUID: de1723e2-150c-4448-bb36-be14d7d96093
> No device size related problem found
> cache and super generation don't match, space cache will be invalidated
> found 104509362176 bytes used, no error found
> total csum bytes: 99690492
> total tree bytes: 2394259456
> total fs tree bytes: 2173468672
> total extent tree bytes: 87900160
> btree space waste bytes: 574264314
> file data blocks allocated: 190189735936
>  referenced 150679924736
> --------------------------------------------------------------------------
> 
> It looks like it didn't detect anything bad...
> As a side note, check in "original" mode doesn't detect the issues as
> in runs reported above.
> 
> Debugging:
> --------------------------------------------------------------------------
> # ./btrfs.static inspect dump-tree -t 1385 /dev/sdb3 | grep -C 20
> 18446744073709551361
>     item 45 key (47329988 INODE_REF 256) itemoff 9768 itemsize 20
>         index 28 namelen 10 name: lost+found
>     item 46 key (47329988 DIR_ITEM 2438219243) itemoff 9726 itemsize 42
>         location key (30039324 INODE_ITEM 0) type FILE
>         transid 0 data_len 0 name_len 12
>         name: metadata.xml
>     item 47 key (47329988 DIR_INDEX 2) itemoff 9684 itemsize 42
>         location key (30039324 INODE_ITEM 0) type FILE
>         transid 0 data_len 0 name_len 12
>         name: metadata.xml
>     item 48 key (MULTIPLE INODE_ITEM 0) itemoff 9524 itemsize 160
>         generation 461639 transid 0 size 0 nbytes 0
>         block group 0 mode 100700 links 0 uid 0 gid 0 rdev 0
>         sequence 0 flags 0x0(none)
>         atime 1516888573.0 (2018-01-25 13:56:13)
>         ctime 1516888573.0 (2018-01-25 13:56:13)
>         mtime 1516888573.0 (2018-01-25 13:56:13)
>         otime 0.0 (1970-01-01 00:00:00)
>     item 49 key (ORPHAN ORPHAN_ITEM 30039323) itemoff 9524 itemsize 0
>         orphan item
>     item 50 key (ORPHAN ORPHAN_ITEM 18446744073709551361) itemoff 9524
> itemsize 0
>         orphan item

At least for me (and original mode), it's seems valid.

Please try mount the fs, and do some write, then sync the fs, and
finally umount it.

If everything goes as planned, the ORPHAN things will just be gone and
no more lowmem mode errors.

Thanks,
Qu

> total bytes 247335313408
> bytes used 104509362176
> uuid de1723e2-150c-4448-bb36-be14d7d96093
> --------------------------------------------------------------------------
> 
> --------------------------------------------------------------------------
> # ./btrfs.static inspect dump-tree -t 1399 /dev/sdb3 | grep -C 20
> 18446744073709551361
>     item 17 key (47343871 INODE_REF 6928733) itemoff 13096 itemsize 21
>         index 2746 namelen 11 name: cron.hourly
>     item 18 key (47343872 INODE_ITEM 0) itemoff 12936 itemsize 160
>         generation 460550 transid 460550 size 0 nbytes 0
>         block group 0 mode 100644 links 1 uid 0 gid 0 rdev 0
>         sequence 0 flags 0x1(none)
>         atime 1516784116.26956368 (2018-01-24 08:55:16)
>         ctime 1516784116.26956368 (2018-01-24 08:55:16)
>         mtime 1516784116.26956368 (2018-01-24 08:55:16)
>         otime 1516784116.26956368 (2018-01-24 08:55:16)
>     item 19 key (47343872 INODE_REF 6928733) itemoff 12916 itemsize 20
>         index 2747 namelen 10 name: cron.daily
>     item 20 key (MULTIPLE INODE_ITEM 0) itemoff 12756 itemsize 160
>         generation 461641 transid 0 size 0 nbytes 0
>         block group 0 mode 700 links 0 uid 0 gid 0 rdev 0
>         sequence 0 flags 0x0(none)
>         atime 1516888641.0 (2018-01-25 13:57:21)
>         ctime 1516888641.0 (2018-01-25 13:57:21)
>         mtime 1516888641.0 (2018-01-25 13:57:21)
>         otime 0.0 (1970-01-01 00:00:00)
>     item 21 key (ORPHAN ORPHAN_ITEM 18446744073709551361) itemoff
> 12756 itemsize 0
>         orphan item
> total bytes 247335313408
> bytes used 104509362176
> uuid de1723e2-150c-4448-bb36-be14d7d96093
> --------------------------------------------------------------------------
> 
> --------------------------------------------------------------------------
> # ./btrfs.static inspect dump-tree -t 1385 /dev/sdb3 | grep -C 20 30039323
>         mtime 1516557882.551679697 (2018-01-21 18:04:42)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 79 key (30039322 INODE_REF 30037720) itemoff 4161 itemsize 42
>         index 242 namelen 32 name: obs-service-download_src_package
>     item 80 key (30039322 DIR_ITEM 1076301169) itemoff 4083 itemsize 78
>         location key (30039325 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 48
>         name: obs-service-download_src_package-20130318.ebuild
>     item 81 key (30039322 DIR_ITEM 4007295565) itemoff 4045 itemsize 38
>         location key (47302013 INODE_ITEM 0) type FILE
>         transid 3377699720527872 data_len 0 name_len 8
>         name: Manifest
>     item 82 key (30039322 DIR_INDEX 4) itemoff 3967 itemsize 78
>         location key (30039325 INODE_ITEM 0) type FILE
>         transid 136248 data_len 0 name_len 48
>         name: obs-service-download_src_package-20130318.ebuild
>     item 83 key (30039322 DIR_INDEX 5) itemoff 3929 itemsize 38
>         location key (47302013 INODE_ITEM 0) type FILE
>         transid 3861419965563273305 data_len 0 name_len 8
>         name: Manifest
>     item 84 key (30039323 INODE_ITEM 0) itemoff 3769 itemsize 160
>         generation 136248 transid 202216 size 782 nbytes 782
>         block group 0 mode 100644 links 0 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 85 key (30039323 EXTENT_DATA 0) itemoff 2966 itemsize 803
>         generation 136248 type 0 (inline)
>         inline extent data size 782 ram_bytes 782 compression 0 (none)
>     item 86 key (30039324 INODE_ITEM 0) itemoff 2806 itemsize 160
>         generation 136248 transid 202216 size 448 nbytes 448
>         block group 0 mode 100644 links 1 uid 250 gid 250 rdev 0
>         sequence 0 flags 0xb(none)
>         atime 1504685599.188061317 (2017-09-06 08:13:19)
>         ctime 1512818139.540278499 (2017-12-09 11:15:39)
>         mtime 1504685599.188061317 (2017-09-06 08:13:19)
>         otime 1504685599.188061317 (2017-09-06 08:13:19)
>     item 87 key (30039324 INODE_REF 47329988) itemoff 2784 itemsize 22
>         index 2 namelen 12 name: metadata.xml
> leaf 36701356032 items 44 free space 8701 generation 202216 owner 257
> leaf 36701356032 flags 0x1(WRITTEN) backref revision 1
> fs uuid de1723e2-150c-4448-bb36-be14d7d96093
> chunk uuid 443a227c-4f87-419a-b89a-3f5714eea403
>     item 0 key (30039324 EXTENT_DATA 0) itemoff 15814 itemsize 469
>         generation 136248 type 0 (inline)
>         inline extent data size 448 ram_bytes 448 compression 0 (none)
>     item 1 key (30039325 INODE_ITEM 0) itemoff 15654 itemsize 160
> --
>         mtime 1516888573.0 (2018-01-25 13:56:13)
>         otime 0.0 (1970-01-01 00:00:00)
>     item 45 key (47329988 INODE_REF 256) itemoff 9768 itemsize 20
>         index 28 namelen 10 name: lost+found
>     item 46 key (47329988 DIR_ITEM 2438219243) itemoff 9726 itemsize 42
>         location key (30039324 INODE_ITEM 0) type FILE
>         transid 0 data_len 0 name_len 12
>         name: metadata.xml
>     item 47 key (47329988 DIR_INDEX 2) itemoff 9684 itemsize 42
>         location key (30039324 INODE_ITEM 0) type FILE
>         transid 0 data_len 0 name_len 12
>         name: metadata.xml
>     item 48 key (MULTIPLE INODE_ITEM 0) itemoff 9524 itemsize 160
>         generation 461639 transid 0 size 0 nbytes 0
>         block group 0 mode 100700 links 0 uid 0 gid 0 rdev 0
>         sequence 0 flags 0x0(none)
>         atime 1516888573.0 (2018-01-25 13:56:13)
>         ctime 1516888573.0 (2018-01-25 13:56:13)
>         mtime 1516888573.0 (2018-01-25 13:56:13)
>         otime 0.0 (1970-01-01 00:00:00)
>     item 49 key (ORPHAN ORPHAN_ITEM 30039323) itemoff 9524 itemsize 0
>         orphan item
>     item 50 key (ORPHAN ORPHAN_ITEM 18446744073709551361) itemoff 9524
> itemsize 0
>         orphan item
> total bytes 247335313408
> bytes used 104509362176
> uuid de1723e2-150c-4448-bb36-be14d7d96093
> --------------------------------------------------------------------------
> 
> Cheers,
> 
>    Marco
> --
> To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 520 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-29  1:34                                         ` Qu Wenruo
@ 2018-01-29 13:58                                           ` ^m'e
  2018-01-29 14:04                                             ` Qu Wenruo
  0 siblings, 1 reply; 32+ messages in thread
From: ^m'e @ 2018-01-29 13:58 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs

Thanks for the advice, Qu!

I used the system for a while, did some package upgrades -- writing in
the suspect corrupted area. Then tried a btrfs-send to my backup vol,
and it failed miserably with a nice kernel oops.

So I went for a lowmem repair:
----------------------------------------------------------------------------------------
# ./btrfsck.static check --repair --mode=lowmem /dev/sdb3 2>&1 | tee
/mnt/custom/rescue/btrfs-recovery/btrfs-repair.BTR-POOL.1.log
WARNING: low-memory mode repair support is only partial
Fixed 0 roots.
checking extents
checking free space cache
checking fs roots
ERROR: failed to add inode 28891726 as orphan item root 257
ERROR: root 257 INODE[28891726] is orphan item
ERROR: failed to add inode 28892766 as orphan item root 257
ERROR: root 257 INODE[28892766] is orphan item
ERROR: failed to add inode 28892768 as orphan item root 257
ERROR: root 257 INODE[28892768] is orphan item
ERROR: failed to add inode 28893017 as orphan item root 257
ERROR: root 257 INODE[28893017] is orphan item
ERROR: failed to add inode 28893132 as orphan item root 257
ERROR: root 257 INODE[28893132] is orphan item
ERROR: failed to add inode 28893724 as orphan item root 257
ERROR: root 257 INODE[28893724] is orphan item
ERROR: failed to add inode 28893744 as orphan item root 257
ERROR: root 257 INODE[28893744] is orphan item
ERROR: failed to add inode 28893858 as orphan item root 257
ERROR: root 257 INODE[28893858] is orphan item
ERROR: failed to add inode 28893860 as orphan item root 257
ERROR: root 257 INODE[28893860] is orphan item
ERROR: failed to add inode 28894007 as orphan item root 257
ERROR: root 257 INODE[28894007] is orphan item
ERROR: failed to add inode 28894011 as orphan item root 257
ERROR: root 257 INODE[28894011] is orphan item
ERROR: failed to add inode 28894084 as orphan item root 257
ERROR: root 257 INODE[28894084] is orphan item
ERROR: failed to add inode 28894145 as orphan item root 257
ERROR: root 257 INODE[28894145] is orphan item
ERROR: failed to add inode 28894223 as orphan item root 257
ERROR: root 257 INODE[28894223] is orphan item
ERROR: failed to add inode 28894249 as orphan item root 257
ERROR: root 257 INODE[28894249] is orphan item
ERROR: failed to add inode 28895101 as orphan item root 257
ERROR: root 257 INODE[28895101] is orphan item
ERROR: failed to add inode 44565472 as orphan item root 257
ERROR: root 257 INODE[44565472] is orphan item
ERROR: failed to add inode 44565473 as orphan item root 257
ERROR: root 257 INODE[44565473] is orphan item
ERROR: failed to add inode 44565474 as orphan item root 257
ERROR: root 257 INODE[44565474] is orphan item
ERROR: failed to add inode 44565475 as orphan item root 257
ERROR: root 257 INODE[44565475] is orphan item
ERROR: failed to add inode 44565477 as orphan item root 257
ERROR: root 257 INODE[44565477] is orphan item
ERROR: failed to add inode 44565478 as orphan item root 257
ERROR: root 257 INODE[44565478] is orphan item
ERROR: failed to add inode 44565486 as orphan item root 257
ERROR: root 257 INODE[44565486] is orphan item
ERROR: failed to add inode 44565487 as orphan item root 257
ERROR: root 257 INODE[44565487] is orphan item
ERROR: failed to add inode 44565489 as orphan item root 257
ERROR: root 257 INODE[44565489] is orphan item
ERROR: failed to add inode 44773502 as orphan item root 257
ERROR: root 257 INODE[44773502] is orphan item
ERROR: failed to add inode 44773506 as orphan item root 257
ERROR: root 257 INODE[44773506] is orphan item
ERROR: failed to add inode 44773507 as orphan item root 257
ERROR: root 257 INODE[44773507] is orphan item
ERROR: failed to add inode 44773508 as orphan item root 257
ERROR: root 257 INODE[44773508] is orphan item
ERROR: failed to add inode 44825557 as orphan item root 257
ERROR: root 257 INODE[44825557] is orphan item
ERROR: failed to add inode 47300728 as orphan item root 257
ERROR: root 257 INODE[47300728] is orphan item
ERROR: failed to add inode 47300730 as orphan item root 257
ERROR: root 257 INODE[47300730] is orphan item
ERROR: failed to add inode 47300732 as orphan item root 257
ERROR: root 257 INODE[47300732] is orphan item
ERROR: failed to add inode 47300733 as orphan item root 257
ERROR: root 257 INODE[47300733] is orphan item
ERROR: failed to add inode 47333260 as orphan item root 257
ERROR: root 257 INODE[47333260] is orphan item
ERROR: failed to add inode 47347678 as orphan item root 257
ERROR: root 257 INODE[47347678] is orphan item
ERROR: failed to add inode 47499572 as orphan item root 257
ERROR: root 257 INODE[47499572] is orphan item
enabling repair mode
Checking filesystem on /dev/sdb3
UUID: de1723e2-150c-4448-bb36-be14d7d96093
No device size related problem found
cache and super generation don't match, space cache will be invalidated
Can't find file name for inode 47353519, use 47353519 instead
Moving file '47353519' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47353519 name 47353519 filetype 2
Can't find file name for inode 47353521, use 47353521 instead
Moving file '47353521' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47353521 name 47353521 filetype 2
Can't find file name for inode 47411510, use 47411510 instead
Moving file '47411510' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47411510 name 47411510 filetype 2
Can't find file name for inode 47413179, use 47413179 instead
Moving file '47413179' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47413179 name 47413179 filetype 2
Can't find file name for inode 47417030, use 47417030 instead
Moving file '47417030' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47417030 name 47417030 filetype 2
Can't find file name for inode 47417033, use 47417033 instead
Moving file '47417033' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47417033 name 47417033 filetype 2
Can't find file name for inode 47417866, use 47417866 instead
Moving file '47417866' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47417866 name 47417866 filetype 2
Can't find file name for inode 47430048, use 47430048 instead
Moving file '47430048' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47430048 name 47430048 filetype 2
Can't find file name for inode 47430050, use 47430050 instead
Moving file '47430050' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47430050 name 47430050 filetype 2
Can't find file name for inode 47431474, use 47431474 instead
Moving file '47431474' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47431474 name 47431474 filetype 2
Can't find file name for inode 47431522, use 47431522 instead
Moving file '47431522' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47431522 name 47431522 filetype 2
Can't find file name for inode 47431745, use 47431745 instead
Moving file '47431745' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47431745 name 47431745 filetype 2
Can't find file name for inode 47431747, use 47431747 instead
Moving file '47431747' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47431747 name 47431747 filetype 2
Can't find file name for inode 47440642, use 47440642 instead
Moving file '47440642' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47440642 name 47440642 filetype 2
Can't find file name for inode 47440645, use 47440645 instead
Moving file '47440645' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47440645 name 47440645 filetype 2
Can't find file name for inode 47440647, use 47440647 instead
Moving file '47440647' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47440647 name 47440647 filetype 2
Can't find file name for inode 47440667, use 47440667 instead
Moving file '47440667' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47440667 name 47440667 filetype 2
Can't find file name for inode 47831628, use 47831628 instead
Moving file '47831628' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47831628 name 47831628 filetype 2
Can't find file name for inode 47831630, use 47831630 instead
Moving file '47831630' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47831630 name 47831630 filetype 2
Can't find file name for inode 47833987, use 47833987 instead
Moving file '47833987' to 'lost+found' dir sincERROR: ROOT_REF[228621
72057594038112278] couldn't find relative ref
ERROR: errors found in fs roots
e it has no valid backref
Fixed nlink of inode 257 root 47833987 name 47833987 filetype 2
Can't find file name for inode 47833988, use 47833988 instead
Moving file '47833988' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47833988 name 47833988 filetype 2
Can't find file name for inode 47833989, use 47833989 instead
Moving file '47833989' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47833989 name 47833989 filetype 2
Can't find file name for inode 47833990, use 47833990 instead
Moving file '47833990' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47833990 name 47833990 filetype 2
Can't find file name for inode 47833993, use 47833993 instead
Moving file '47833993' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47833993 name 47833993 filetype 2
Can't find file name for inode 47833999, use 47833999 instead
Moving file '47833999' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47833999 name 47833999 filetype 2
Can't find file name for inode 47834000, use 47834000 instead
Moving file '47834000' to 'lost+found' dir since it has no valid backref
Fixed nlink of inode 257 root 47834000 name 47834000 filetype 2
found 107441020928 bytes used, error(s) found
total csum bytes: 102422976
total tree bytes: 15472656384
total fs tree bytes: 15243919360
total extent tree bytes: 92798976
btree space waste bytes: 3363742740
file data blocks allocated: 384446418944
 referenced 335525724160
----------------------------------------------------------------------------------------

Then tried to mount the rootfs subvol:

# mount -o subvol=rootfs /dev/sdb3 /mnt/gentoo/
mount: /mnt/gentoo: wrong fs type, bad option, bad superblock on
/dev/sdb3, missing codepage or helper program, or other error.

kernel says:
----------------------------------------------------------------------------------------
[ 2172.296994] ------------[ cut here ]------------
[ 2172.297001] WARNING: CPU: 6 PID: 3576 at fs/btrfs/inode.c:3585
btrfs_orphan_cleanup+0x2d7/0x3e6
[ 2172.297002] Modules linked in: ccm binfmt_misc rmi_smbus rmi_core
arc4 iwlmvm mac80211 intel_rapl iTCO_wdt iTCO_vendor_support mei_wdt
x86_pkg_temp_thermal intel_powerclamp joydev iwlwifi btusb btrtl btbcm
btintel coretemp tpm_tis bluetooth serio_raw cfg80211 crct10dif_pclmul
crc32_pclmul thinkpad_acpi tpm_tis_core tpm ecdh_generic crc32c_intel
ghash_clmulni_intel rfkill i2c_i801 intel_cstate shpchp mei_me
wmi_bmof intel_uncore mei ie31200_edac lpc_ich intel_rapl_perf raid10
raid456 async_raid6_recov async_pq async_xor async_memcpy async_tx
raid1 raid0 multipath linear uas usb_storage nouveau i915 rtsx_pci_ms
memstick rtsx_pci_sdmmc mmc_core ttm drm_kms_helper drm rtsx_pci r8169
i2c_algo_bit mxm_wmi mii wmi video
[ 2172.297052] CPU: 6 PID: 3576 Comm: mount Not tainted 4.14.8-std520-amd64 #2
[ 2172.297053] Hardware name: LENOVO 20C6003AMZ/20C6003AMZ, BIOS
J9ET9FWW (2.25 ) 09/13/2017
[ 2172.297054] task: ffff979c2c8e0000 task.stack: ffffa716c31dc000
[ 2172.297056] RIP: 0010:btrfs_orphan_cleanup+0x2d7/0x3e6
[ 2172.297057] RSP: 0018:ffffa716c31df960 EFLAGS: 00210a87
[ 2172.297059] RAX: 0000000000084000 RBX: ffff979c71994000 RCX: 0000000000000000
[ 2172.297060] RDX: ffffffffa30061e8 RSI: 0000000000000000 RDI: ffffa716c31df8a8
[ 2172.297061] RBP: ffffa716c31df9d0 R08: ffffffffa30061e0 R09: ffffffffa24123c1
[ 2172.297063] R10: ffffa716c31df8a0 R11: fffff4bdc447c580 R12: ffff979b51f16a80
[ 2172.297064] R13: ffff979c6f9c01f0 R14: ffff979c2cb88000 R15: 0000000000000000
[ 2172.297066] FS:  0000000000000000(0000) GS:ffff979c7e380000(0063)
knlGS:00000000f7cf0b00
[ 2172.297067] CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
[ 2172.297068] CR2: 00000000086a5424 CR3: 00000001eed41003 CR4: 00000000001606e0
[ 2172.297069] Call Trace:
[ 2172.297074]  btrfs_lookup_dentry+0x37b/0x3b1
[ 2172.297076]  btrfs_lookup+0xd/0x2b
[ 2172.297080]  lookup_slow+0xce/0x103
[ 2172.297083]  walk_component+0x6c/0xdd
[ 2172.297085]  ? path_init+0xa5/0x259
[ 2172.297088]  path_lookupat+0xde/0x186
[ 2172.297091]  ? wake_up_bit+0x19/0x1b
[ 2172.297095]  ? slab_pre_alloc_hook+0x19/0x1f
[ 2172.297099]  ? idr_get_free_cmn+0x3d/0x25e
[ 2172.297101]  filename_lookup+0x78/0xf5
[ 2172.297106]  ? _raw_spin_unlock_irqrestore+0xf/0x11
[ 2172.297108]  ? slab_pre_alloc_hook+0x19/0x1f
[ 2172.297110]  ? kmem_cache_alloc+0x97/0x122
[ 2172.297112]  ? getname_kernel+0x28/0xe4
[ 2172.297114]  vfs_path_lookup+0x36/0x3d
[ 2172.297116]  ? vfs_path_lookup+0x36/0x3d
[ 2172.297120]  mount_subtree+0x3a/0x79
[ 2172.297123]  btrfs_mount+0x69f/0xadd
[ 2172.297127]  ? find_next_bit+0xb/0xd
[ 2172.297131]  ? pcpu_next_unpop+0x36/0x42
[ 2172.297135]  mount_fs+0x62/0x10c
[ 2172.297137]  vfs_kern_mount+0x66/0xd0
[ 2172.297139]  do_mount+0x6ef/0x96e
[ 2172.297142]  compat_SyS_mount+0x180/0x1a9
[ 2172.297147]  do_fast_syscall_32+0xb7/0xfe
[ 2172.297150]  entry_SYSENTER_compat+0x4c/0x5b
[ 2172.297151] RIP: 0023:0xf7f88c29
[ 2172.297152] RSP: 002b:00000000ff9aa530 EFLAGS: 00000296 ORIG_RAX:
0000000000000015
[ 2172.297154] RAX: ffffffffffffffda RBX: 00000000085bc498 RCX: 00000000085bc170
[ 2172.297155] RDX: 00000000085c57d0 RSI: 00000000c0ed0000 RDI: 00000000085bc468
[ 2172.297156] RBP: 00000000ff9aa5f8 R08: 0000000000000000 R09: 0000000000000000
[ 2172.297157] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
[ 2172.297158] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
[ 2172.297160] Code: 45 a8 f0 41 80 8d 20 ff ff ff 20 f0 ff 83 dc 03
00 00 41 83 7d 48 00 0f 84 91 00 00 00 41 8b 45 00 66 25 00 f0 66 3d
00 80 74 0f <0f> ff 4c 89 ef e8 8c 45 d9 ff e9 e7 fe ff ff be 01 00 00
00 48
[ 2172.297193] ---[ end trace c4a78519a58b55de ]---
----------------------------------------------------------------------------------------

More luck without the subvol opt, though with errors
----------------------------------------------------------------------------------------
[ 2172.297200] BTRFS error (device sdb3): Error removing orphan entry,
stopping orphan cleanup
[ 2172.297202] BTRFS error (device sdb3): could not do orphan cleanup -22
[ 2172.308961] BTRFS info (device sdb3): inode 47834000 still on the orphan list
[ 2203.992802] BTRFS info (device sdb3): disk space caching is enabled
[ 2203.992804] BTRFS info (device sdb3): has skinny extents
[ 2204.027064] BTRFS info (device sdb3): enabling ssd optimizations
----------------------------------------------------------------------------------------

I could check some stuff in "lost+found", didn't do any write.
Unmounted it, but something bad must have happened, as mount now fails
(whatever I try -- 'ro,recovery,clear_cache,check_int_data'') as with
the first attempt:
----------------------------------------------------------------------------------------
[ 2378.813926] BTRFS info (device sdb3): disk space caching is enabled
[ 2378.813927] BTRFS info (device sdb3): has skinny extents
[ 2378.837456] BTRFS error (device sdb3): parent transid verify failed
on 180409597952 wanted 463700 found 463765
[ 2378.837462] BTRFS error (device sdb3): failed to read block groups: -5
[ 2378.857965] BTRFS error (device sdb3): open_ctree failed
----------------------------------------------------------------------------------------

Subsequent lowmem repairs attempts *crash*:
----------------------------------------------------------------------------------------
# ./btrfsck.static check --repair --mode=lowmem /dev/sdb3
WARNING: low-memory mode repair support is only partial
parent transid verify failed on 180409597952 wanted 463700 found 463765
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
Fixed 0 roots.
checking extents
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
ERROR: chunk[143902375936 144976117760) did not find the related block
group item
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
----------------------------------------------------------------------------------------
[ 2552.772433] btrfsck.static[3797]: segfault at f6 ip
00000000004029d8 sp 00007ffee2bc8960 error 6 in
btrfs.static[400000+1c5000]
----------------------------------------------------------------------------------------

Standard repair still goes:
----------------------------------------------------------------------------------------
# ./btrfsck.static check --repair /dev/sdb3
parent transid verify failed on 180409597952 wanted 463700 found 463765
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
Fixed 0 roots.
checking extents
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
bad block 180409597952
ERROR: errors found in extent allocation tree or chunk allocation
checking free space cache
checking fs roots
checking csums
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
There are no extents for csum range 143880400896-143883313152
Csum exists for 143880400896-143883313152 but there is no extent record
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
There are no extents for csum range 143884201984-143884873728
Csum exists for 143884201984-143884873728 but there is no extent record
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
There are no extents for csum range 143885082624-143886172160
Csum exists for 143885082624-143886172160 but there is no extent record
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
There are no extents for csum range 143886176256-143891030016
Csum exists for 143886176256-143891030016 but there is no extent record
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
There are no extents for csum range 143891054592-143895662592
Csum exists for 143891054592-143895662592 but there is no extent record
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
There are no extents for csum range 143895982080-143896252416
Csum exists for 143895982080-143896252416 but there is no extent record
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
There are no extents for csum range 143899418624-143900753920
Csum exists for 143899418624-143900753920 but there is no extent record
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
There are no extents for csum range 143902375936-143906275328
Csum exists for 143902375936-143906275328 but there is no extent record
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
There are no extents for csum range 143907614720-143907672064
Csum exists for 143907614720-143907672064 but there is no extent record
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
There are no extents for csum range 143907938304-143910674432
Csum exists for 143907938304-143910674432 but there is no extent record
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
There are no extents for csum range 143910744064-143916498944
Csum exists for 143910744064-143916498944 but there is no extent record
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
There are no extents for csum range 143916601344-143916675072
Csum exists for 143916601344-143916675072 but there is no extent record
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
There are no extents for csum range 143916781568-143918166016
Csum exists for 143916781568-143918166016 but there is no extent record
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
There are no extents for csum range 143918206976-143918305280
Csum exists for 143918206976-143918305280 but there is no extent record
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
There are no extents for csum range 143918325760-143921917952
Csum exists for 143918325760-143921917952 but there is no extent record
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
There are no extents for csum range 143922094080-143924146176
Csum exists for 143922094080-143924146176 but there is no extent record
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
There are no extents for csum range 143924269056-143925121024
Csum exists for 143924269056-143925121024 but there is no extent record
parent transid verify failed on 180409597952 wanted 463700 found 463765
Ignoring transid failure
There are no extents for csum range 143925137408-143928786944
Csum exists for 143925137408-143928786944 but there is no extent record
ERROR: errors found in csum tree
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 180416380928 len 16384
extent buffer leak: start 44046696448 len 16384
extent buffer leak: start 44046696448 len 16384
extent buffer leak: start 44046696448 len 16384
extent buffer leak: start 44046696448 len 16384
extent buffer leak: start 44046696448 len 16384
extent buffer leak: start 44046696448 len 16384
extent buffer leak: start 44046696448 len 16384
extent buffer leak: start 44046696448 len 16384
extent buffer leak: start 44046696448 len 16384
extent buffer leak: start 44046696448 len 16384
extent buffer leak: start 44046696448 len 16384
extent buffer leak: start 44046696448 len 16384
extent buffer leak: start 44046696448 len 16384
extent buffer leak: start 44046696448 len 16384
extent buffer leak: start 44046696448 len 16384
extent buffer leak: start 44046696448 len 16384
extent buffer leak: start 44046696448 len 16384
extent buffer leak: start 44046696448 len 16384
extent buffer leak: start 44046696448 len 16384
enabling repair mode
Checking filesystem on /dev/sdb3
UUID: de1723e2-150c-4448-bb36-be14d7d96093
found 70715043840 bytes used, error(s) found
total csum bytes: 0
total tree bytes: 77332480
total fs tree bytes: 0
total extent tree bytes: 77201408
btree space waste bytes: 20938256
file data blocks allocated: 18350080
 referenced 18350080
----------------------------------------------------------------------------------------

Mmh, smells like Dip Sheet (TM)... :-(

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-29 13:58                                           ` ^m'e
@ 2018-01-29 14:04                                             ` Qu Wenruo
  2018-01-29 14:49                                               ` ^m'e
  0 siblings, 1 reply; 32+ messages in thread
From: Qu Wenruo @ 2018-01-29 14:04 UTC (permalink / raw)
  To: ^m'e; +Cc: linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 26208 bytes --]



On 2018年01月29日 21:58, ^m'e wrote:
> Thanks for the advice, Qu!
> 
> I used the system for a while, did some package upgrades -- writing in
> the suspect corrupted area. Then tried a btrfs-send to my backup vol,
> and it failed miserably with a nice kernel oops.
> 
> So I went for a lowmem repair:
> ----------------------------------------------------------------------------------------
> # ./btrfsck.static check --repair --mode=lowmem /dev/sdb3 2>&1 | tee
> /mnt/custom/rescue/btrfs-recovery/btrfs-repair.BTR-POOL.1.log
> WARNING: low-memory mode repair support is only partial
> Fixed 0 roots.
> checking extents
> checking free space cache
> checking fs roots
> ERROR: failed to add inode 28891726 as orphan item root 257
> ERROR: root 257 INODE[28891726] is orphan item

At least I need dig the kernel code further to determine if the orphan
inode handling in btrfs-progs is correct or not.

So there won't be more dirty fix soon.

Hopefully you could get some good backup and restore the system.

At least the problem is limited to a very small range, and it's
something we could handle easily.

Thanks for all your report,
Qu

> ERROR: failed to add inode 28892766 as orphan item root 257
> ERROR: root 257 INODE[28892766] is orphan item
> ERROR: failed to add inode 28892768 as orphan item root 257
> ERROR: root 257 INODE[28892768] is orphan item
> ERROR: failed to add inode 28893017 as orphan item root 257
> ERROR: root 257 INODE[28893017] is orphan item
> ERROR: failed to add inode 28893132 as orphan item root 257
> ERROR: root 257 INODE[28893132] is orphan item
> ERROR: failed to add inode 28893724 as orphan item root 257
> ERROR: root 257 INODE[28893724] is orphan item
> ERROR: failed to add inode 28893744 as orphan item root 257
> ERROR: root 257 INODE[28893744] is orphan item
> ERROR: failed to add inode 28893858 as orphan item root 257
> ERROR: root 257 INODE[28893858] is orphan item
> ERROR: failed to add inode 28893860 as orphan item root 257
> ERROR: root 257 INODE[28893860] is orphan item
> ERROR: failed to add inode 28894007 as orphan item root 257
> ERROR: root 257 INODE[28894007] is orphan item
> ERROR: failed to add inode 28894011 as orphan item root 257
> ERROR: root 257 INODE[28894011] is orphan item
> ERROR: failed to add inode 28894084 as orphan item root 257
> ERROR: root 257 INODE[28894084] is orphan item
> ERROR: failed to add inode 28894145 as orphan item root 257
> ERROR: root 257 INODE[28894145] is orphan item
> ERROR: failed to add inode 28894223 as orphan item root 257
> ERROR: root 257 INODE[28894223] is orphan item
> ERROR: failed to add inode 28894249 as orphan item root 257
> ERROR: root 257 INODE[28894249] is orphan item
> ERROR: failed to add inode 28895101 as orphan item root 257
> ERROR: root 257 INODE[28895101] is orphan item
> ERROR: failed to add inode 44565472 as orphan item root 257
> ERROR: root 257 INODE[44565472] is orphan item
> ERROR: failed to add inode 44565473 as orphan item root 257
> ERROR: root 257 INODE[44565473] is orphan item
> ERROR: failed to add inode 44565474 as orphan item root 257
> ERROR: root 257 INODE[44565474] is orphan item
> ERROR: failed to add inode 44565475 as orphan item root 257
> ERROR: root 257 INODE[44565475] is orphan item
> ERROR: failed to add inode 44565477 as orphan item root 257
> ERROR: root 257 INODE[44565477] is orphan item
> ERROR: failed to add inode 44565478 as orphan item root 257
> ERROR: root 257 INODE[44565478] is orphan item
> ERROR: failed to add inode 44565486 as orphan item root 257
> ERROR: root 257 INODE[44565486] is orphan item
> ERROR: failed to add inode 44565487 as orphan item root 257
> ERROR: root 257 INODE[44565487] is orphan item
> ERROR: failed to add inode 44565489 as orphan item root 257
> ERROR: root 257 INODE[44565489] is orphan item
> ERROR: failed to add inode 44773502 as orphan item root 257
> ERROR: root 257 INODE[44773502] is orphan item
> ERROR: failed to add inode 44773506 as orphan item root 257
> ERROR: root 257 INODE[44773506] is orphan item
> ERROR: failed to add inode 44773507 as orphan item root 257
> ERROR: root 257 INODE[44773507] is orphan item
> ERROR: failed to add inode 44773508 as orphan item root 257
> ERROR: root 257 INODE[44773508] is orphan item
> ERROR: failed to add inode 44825557 as orphan item root 257
> ERROR: root 257 INODE[44825557] is orphan item
> ERROR: failed to add inode 47300728 as orphan item root 257
> ERROR: root 257 INODE[47300728] is orphan item
> ERROR: failed to add inode 47300730 as orphan item root 257
> ERROR: root 257 INODE[47300730] is orphan item
> ERROR: failed to add inode 47300732 as orphan item root 257
> ERROR: root 257 INODE[47300732] is orphan item
> ERROR: failed to add inode 47300733 as orphan item root 257
> ERROR: root 257 INODE[47300733] is orphan item
> ERROR: failed to add inode 47333260 as orphan item root 257
> ERROR: root 257 INODE[47333260] is orphan item
> ERROR: failed to add inode 47347678 as orphan item root 257
> ERROR: root 257 INODE[47347678] is orphan item
> ERROR: failed to add inode 47499572 as orphan item root 257
> ERROR: root 257 INODE[47499572] is orphan item
> enabling repair mode
> Checking filesystem on /dev/sdb3
> UUID: de1723e2-150c-4448-bb36-be14d7d96093
> No device size related problem found
> cache and super generation don't match, space cache will be invalidated
> Can't find file name for inode 47353519, use 47353519 instead
> Moving file '47353519' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47353519 name 47353519 filetype 2
> Can't find file name for inode 47353521, use 47353521 instead
> Moving file '47353521' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47353521 name 47353521 filetype 2
> Can't find file name for inode 47411510, use 47411510 instead
> Moving file '47411510' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47411510 name 47411510 filetype 2
> Can't find file name for inode 47413179, use 47413179 instead
> Moving file '47413179' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47413179 name 47413179 filetype 2
> Can't find file name for inode 47417030, use 47417030 instead
> Moving file '47417030' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47417030 name 47417030 filetype 2
> Can't find file name for inode 47417033, use 47417033 instead
> Moving file '47417033' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47417033 name 47417033 filetype 2
> Can't find file name for inode 47417866, use 47417866 instead
> Moving file '47417866' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47417866 name 47417866 filetype 2
> Can't find file name for inode 47430048, use 47430048 instead
> Moving file '47430048' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47430048 name 47430048 filetype 2
> Can't find file name for inode 47430050, use 47430050 instead
> Moving file '47430050' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47430050 name 47430050 filetype 2
> Can't find file name for inode 47431474, use 47431474 instead
> Moving file '47431474' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47431474 name 47431474 filetype 2
> Can't find file name for inode 47431522, use 47431522 instead
> Moving file '47431522' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47431522 name 47431522 filetype 2
> Can't find file name for inode 47431745, use 47431745 instead
> Moving file '47431745' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47431745 name 47431745 filetype 2
> Can't find file name for inode 47431747, use 47431747 instead
> Moving file '47431747' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47431747 name 47431747 filetype 2
> Can't find file name for inode 47440642, use 47440642 instead
> Moving file '47440642' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47440642 name 47440642 filetype 2
> Can't find file name for inode 47440645, use 47440645 instead
> Moving file '47440645' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47440645 name 47440645 filetype 2
> Can't find file name for inode 47440647, use 47440647 instead
> Moving file '47440647' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47440647 name 47440647 filetype 2
> Can't find file name for inode 47440667, use 47440667 instead
> Moving file '47440667' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47440667 name 47440667 filetype 2
> Can't find file name for inode 47831628, use 47831628 instead
> Moving file '47831628' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47831628 name 47831628 filetype 2
> Can't find file name for inode 47831630, use 47831630 instead
> Moving file '47831630' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47831630 name 47831630 filetype 2
> Can't find file name for inode 47833987, use 47833987 instead
> Moving file '47833987' to 'lost+found' dir sincERROR: ROOT_REF[228621
> 72057594038112278] couldn't find relative ref
> ERROR: errors found in fs roots
> e it has no valid backref
> Fixed nlink of inode 257 root 47833987 name 47833987 filetype 2
> Can't find file name for inode 47833988, use 47833988 instead
> Moving file '47833988' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47833988 name 47833988 filetype 2
> Can't find file name for inode 47833989, use 47833989 instead
> Moving file '47833989' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47833989 name 47833989 filetype 2
> Can't find file name for inode 47833990, use 47833990 instead
> Moving file '47833990' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47833990 name 47833990 filetype 2
> Can't find file name for inode 47833993, use 47833993 instead
> Moving file '47833993' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47833993 name 47833993 filetype 2
> Can't find file name for inode 47833999, use 47833999 instead
> Moving file '47833999' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47833999 name 47833999 filetype 2
> Can't find file name for inode 47834000, use 47834000 instead
> Moving file '47834000' to 'lost+found' dir since it has no valid backref
> Fixed nlink of inode 257 root 47834000 name 47834000 filetype 2
> found 107441020928 bytes used, error(s) found
> total csum bytes: 102422976
> total tree bytes: 15472656384
> total fs tree bytes: 15243919360
> total extent tree bytes: 92798976
> btree space waste bytes: 3363742740
> file data blocks allocated: 384446418944
>  referenced 335525724160
> ----------------------------------------------------------------------------------------
> 
> Then tried to mount the rootfs subvol:
> 
> # mount -o subvol=rootfs /dev/sdb3 /mnt/gentoo/
> mount: /mnt/gentoo: wrong fs type, bad option, bad superblock on
> /dev/sdb3, missing codepage or helper program, or other error.
> 
> kernel says:
> ----------------------------------------------------------------------------------------
> [ 2172.296994] ------------[ cut here ]------------
> [ 2172.297001] WARNING: CPU: 6 PID: 3576 at fs/btrfs/inode.c:3585
> btrfs_orphan_cleanup+0x2d7/0x3e6
> [ 2172.297002] Modules linked in: ccm binfmt_misc rmi_smbus rmi_core
> arc4 iwlmvm mac80211 intel_rapl iTCO_wdt iTCO_vendor_support mei_wdt
> x86_pkg_temp_thermal intel_powerclamp joydev iwlwifi btusb btrtl btbcm
> btintel coretemp tpm_tis bluetooth serio_raw cfg80211 crct10dif_pclmul
> crc32_pclmul thinkpad_acpi tpm_tis_core tpm ecdh_generic crc32c_intel
> ghash_clmulni_intel rfkill i2c_i801 intel_cstate shpchp mei_me
> wmi_bmof intel_uncore mei ie31200_edac lpc_ich intel_rapl_perf raid10
> raid456 async_raid6_recov async_pq async_xor async_memcpy async_tx
> raid1 raid0 multipath linear uas usb_storage nouveau i915 rtsx_pci_ms
> memstick rtsx_pci_sdmmc mmc_core ttm drm_kms_helper drm rtsx_pci r8169
> i2c_algo_bit mxm_wmi mii wmi video
> [ 2172.297052] CPU: 6 PID: 3576 Comm: mount Not tainted 4.14.8-std520-amd64 #2
> [ 2172.297053] Hardware name: LENOVO 20C6003AMZ/20C6003AMZ, BIOS
> J9ET9FWW (2.25 ) 09/13/2017
> [ 2172.297054] task: ffff979c2c8e0000 task.stack: ffffa716c31dc000
> [ 2172.297056] RIP: 0010:btrfs_orphan_cleanup+0x2d7/0x3e6
> [ 2172.297057] RSP: 0018:ffffa716c31df960 EFLAGS: 00210a87
> [ 2172.297059] RAX: 0000000000084000 RBX: ffff979c71994000 RCX: 0000000000000000
> [ 2172.297060] RDX: ffffffffa30061e8 RSI: 0000000000000000 RDI: ffffa716c31df8a8
> [ 2172.297061] RBP: ffffa716c31df9d0 R08: ffffffffa30061e0 R09: ffffffffa24123c1
> [ 2172.297063] R10: ffffa716c31df8a0 R11: fffff4bdc447c580 R12: ffff979b51f16a80
> [ 2172.297064] R13: ffff979c6f9c01f0 R14: ffff979c2cb88000 R15: 0000000000000000
> [ 2172.297066] FS:  0000000000000000(0000) GS:ffff979c7e380000(0063)
> knlGS:00000000f7cf0b00
> [ 2172.297067] CS:  0010 DS: 002b ES: 002b CR0: 0000000080050033
> [ 2172.297068] CR2: 00000000086a5424 CR3: 00000001eed41003 CR4: 00000000001606e0
> [ 2172.297069] Call Trace:
> [ 2172.297074]  btrfs_lookup_dentry+0x37b/0x3b1
> [ 2172.297076]  btrfs_lookup+0xd/0x2b
> [ 2172.297080]  lookup_slow+0xce/0x103
> [ 2172.297083]  walk_component+0x6c/0xdd
> [ 2172.297085]  ? path_init+0xa5/0x259
> [ 2172.297088]  path_lookupat+0xde/0x186
> [ 2172.297091]  ? wake_up_bit+0x19/0x1b
> [ 2172.297095]  ? slab_pre_alloc_hook+0x19/0x1f
> [ 2172.297099]  ? idr_get_free_cmn+0x3d/0x25e
> [ 2172.297101]  filename_lookup+0x78/0xf5
> [ 2172.297106]  ? _raw_spin_unlock_irqrestore+0xf/0x11
> [ 2172.297108]  ? slab_pre_alloc_hook+0x19/0x1f
> [ 2172.297110]  ? kmem_cache_alloc+0x97/0x122
> [ 2172.297112]  ? getname_kernel+0x28/0xe4
> [ 2172.297114]  vfs_path_lookup+0x36/0x3d
> [ 2172.297116]  ? vfs_path_lookup+0x36/0x3d
> [ 2172.297120]  mount_subtree+0x3a/0x79
> [ 2172.297123]  btrfs_mount+0x69f/0xadd
> [ 2172.297127]  ? find_next_bit+0xb/0xd
> [ 2172.297131]  ? pcpu_next_unpop+0x36/0x42
> [ 2172.297135]  mount_fs+0x62/0x10c
> [ 2172.297137]  vfs_kern_mount+0x66/0xd0
> [ 2172.297139]  do_mount+0x6ef/0x96e
> [ 2172.297142]  compat_SyS_mount+0x180/0x1a9
> [ 2172.297147]  do_fast_syscall_32+0xb7/0xfe
> [ 2172.297150]  entry_SYSENTER_compat+0x4c/0x5b
> [ 2172.297151] RIP: 0023:0xf7f88c29
> [ 2172.297152] RSP: 002b:00000000ff9aa530 EFLAGS: 00000296 ORIG_RAX:
> 0000000000000015
> [ 2172.297154] RAX: ffffffffffffffda RBX: 00000000085bc498 RCX: 00000000085bc170
> [ 2172.297155] RDX: 00000000085c57d0 RSI: 00000000c0ed0000 RDI: 00000000085bc468
> [ 2172.297156] RBP: 00000000ff9aa5f8 R08: 0000000000000000 R09: 0000000000000000
> [ 2172.297157] R10: 0000000000000000 R11: 0000000000000000 R12: 0000000000000000
> [ 2172.297158] R13: 0000000000000000 R14: 0000000000000000 R15: 0000000000000000
> [ 2172.297160] Code: 45 a8 f0 41 80 8d 20 ff ff ff 20 f0 ff 83 dc 03
> 00 00 41 83 7d 48 00 0f 84 91 00 00 00 41 8b 45 00 66 25 00 f0 66 3d
> 00 80 74 0f <0f> ff 4c 89 ef e8 8c 45 d9 ff e9 e7 fe ff ff be 01 00 00
> 00 48
> [ 2172.297193] ---[ end trace c4a78519a58b55de ]---
> ----------------------------------------------------------------------------------------
> 
> More luck without the subvol opt, though with errors
> ----------------------------------------------------------------------------------------
> [ 2172.297200] BTRFS error (device sdb3): Error removing orphan entry,
> stopping orphan cleanup
> [ 2172.297202] BTRFS error (device sdb3): could not do orphan cleanup -22
> [ 2172.308961] BTRFS info (device sdb3): inode 47834000 still on the orphan list
> [ 2203.992802] BTRFS info (device sdb3): disk space caching is enabled
> [ 2203.992804] BTRFS info (device sdb3): has skinny extents
> [ 2204.027064] BTRFS info (device sdb3): enabling ssd optimizations
> ----------------------------------------------------------------------------------------
> 
> I could check some stuff in "lost+found", didn't do any write.
> Unmounted it, but something bad must have happened, as mount now fails
> (whatever I try -- 'ro,recovery,clear_cache,check_int_data'') as with
> the first attempt:
> ----------------------------------------------------------------------------------------
> [ 2378.813926] BTRFS info (device sdb3): disk space caching is enabled
> [ 2378.813927] BTRFS info (device sdb3): has skinny extents
> [ 2378.837456] BTRFS error (device sdb3): parent transid verify failed
> on 180409597952 wanted 463700 found 463765
> [ 2378.837462] BTRFS error (device sdb3): failed to read block groups: -5
> [ 2378.857965] BTRFS error (device sdb3): open_ctree failed
> ----------------------------------------------------------------------------------------
> 
> Subsequent lowmem repairs attempts *crash*:
> ----------------------------------------------------------------------------------------
> # ./btrfsck.static check --repair --mode=lowmem /dev/sdb3
> WARNING: low-memory mode repair support is only partial
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> Fixed 0 roots.
> checking extents
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> ERROR: chunk[143902375936 144976117760) did not find the related block
> group item
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> ----------------------------------------------------------------------------------------
> [ 2552.772433] btrfsck.static[3797]: segfault at f6 ip
> 00000000004029d8 sp 00007ffee2bc8960 error 6 in
> btrfs.static[400000+1c5000]
> ----------------------------------------------------------------------------------------
> 
> Standard repair still goes:
> ----------------------------------------------------------------------------------------
> # ./btrfsck.static check --repair /dev/sdb3
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> Fixed 0 roots.
> checking extents
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> bad block 180409597952
> ERROR: errors found in extent allocation tree or chunk allocation
> checking free space cache
> checking fs roots
> checking csums
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> There are no extents for csum range 143880400896-143883313152
> Csum exists for 143880400896-143883313152 but there is no extent record
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> There are no extents for csum range 143884201984-143884873728
> Csum exists for 143884201984-143884873728 but there is no extent record
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> There are no extents for csum range 143885082624-143886172160
> Csum exists for 143885082624-143886172160 but there is no extent record
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> There are no extents for csum range 143886176256-143891030016
> Csum exists for 143886176256-143891030016 but there is no extent record
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> There are no extents for csum range 143891054592-143895662592
> Csum exists for 143891054592-143895662592 but there is no extent record
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> There are no extents for csum range 143895982080-143896252416
> Csum exists for 143895982080-143896252416 but there is no extent record
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> There are no extents for csum range 143899418624-143900753920
> Csum exists for 143899418624-143900753920 but there is no extent record
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> There are no extents for csum range 143902375936-143906275328
> Csum exists for 143902375936-143906275328 but there is no extent record
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> There are no extents for csum range 143907614720-143907672064
> Csum exists for 143907614720-143907672064 but there is no extent record
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> There are no extents for csum range 143907938304-143910674432
> Csum exists for 143907938304-143910674432 but there is no extent record
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> There are no extents for csum range 143910744064-143916498944
> Csum exists for 143910744064-143916498944 but there is no extent record
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> There are no extents for csum range 143916601344-143916675072
> Csum exists for 143916601344-143916675072 but there is no extent record
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> There are no extents for csum range 143916781568-143918166016
> Csum exists for 143916781568-143918166016 but there is no extent record
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> There are no extents for csum range 143918206976-143918305280
> Csum exists for 143918206976-143918305280 but there is no extent record
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> There are no extents for csum range 143918325760-143921917952
> Csum exists for 143918325760-143921917952 but there is no extent record
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> There are no extents for csum range 143922094080-143924146176
> Csum exists for 143922094080-143924146176 but there is no extent record
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> There are no extents for csum range 143924269056-143925121024
> Csum exists for 143924269056-143925121024 but there is no extent record
> parent transid verify failed on 180409597952 wanted 463700 found 463765
> Ignoring transid failure
> There are no extents for csum range 143925137408-143928786944
> Csum exists for 143925137408-143928786944 but there is no extent record
> ERROR: errors found in csum tree
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 180416380928 len 16384
> extent buffer leak: start 44046696448 len 16384
> extent buffer leak: start 44046696448 len 16384
> extent buffer leak: start 44046696448 len 16384
> extent buffer leak: start 44046696448 len 16384
> extent buffer leak: start 44046696448 len 16384
> extent buffer leak: start 44046696448 len 16384
> extent buffer leak: start 44046696448 len 16384
> extent buffer leak: start 44046696448 len 16384
> extent buffer leak: start 44046696448 len 16384
> extent buffer leak: start 44046696448 len 16384
> extent buffer leak: start 44046696448 len 16384
> extent buffer leak: start 44046696448 len 16384
> extent buffer leak: start 44046696448 len 16384
> extent buffer leak: start 44046696448 len 16384
> extent buffer leak: start 44046696448 len 16384
> extent buffer leak: start 44046696448 len 16384
> extent buffer leak: start 44046696448 len 16384
> extent buffer leak: start 44046696448 len 16384
> extent buffer leak: start 44046696448 len 16384
> enabling repair mode
> Checking filesystem on /dev/sdb3
> UUID: de1723e2-150c-4448-bb36-be14d7d96093
> found 70715043840 bytes used, error(s) found
> total csum bytes: 0
> total tree bytes: 77332480
> total fs tree bytes: 0
> total extent tree bytes: 77201408
> btree space waste bytes: 20938256
> file data blocks allocated: 18350080
>  referenced 18350080
> ----------------------------------------------------------------------------------------
> 
> Mmh, smells like Dip Sheet (TM)... :-(
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 520 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-29 14:04                                             ` Qu Wenruo
@ 2018-01-29 14:49                                               ` ^m'e
  2018-01-29 15:08                                                 ` ^m'e
  2018-01-29 15:09                                                 ` Qu Wenruo
  0 siblings, 2 replies; 32+ messages in thread
From: ^m'e @ 2018-01-29 14:49 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs

On Mon, Jan 29, 2018 at 2:04 PM, Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
>
>
> On 2018年01月29日 21:58, ^m'e wrote:
>> Thanks for the advice, Qu!
>>
>> I used the system for a while, did some package upgrades -- writing in
>> the suspect corrupted area. Then tried a btrfs-send to my backup vol,
>> and it failed miserably with a nice kernel oops.
>>
>> So I went for a lowmem repair:
>> ----------------------------------------------------------------------------------------
>> # ./btrfsck.static check --repair --mode=lowmem /dev/sdb3 2>&1 | tee
>> /mnt/custom/rescue/btrfs-recovery/btrfs-repair.BTR-POOL.1.log
>> WARNING: low-memory mode repair support is only partial
>> Fixed 0 roots.
>> checking extents
>> checking free space cache
>> checking fs roots
>> ERROR: failed to add inode 28891726 as orphan item root 257
>> ERROR: root 257 INODE[28891726] is orphan item
>
> At least I need dig the kernel code further to determine if the orphan
> inode handling in btrfs-progs is correct or not.
>
> So there won't be more dirty fix soon.
>
> Hopefully you could get some good backup and restore the system.
>
> At least the problem is limited to a very small range, and it's
> something we could handle easily.
>
> Thanks for all your report,
> Qu
>
>

Right.

Meanwhile, could you please suggest the best course of action? btrfs
rescue or restore?
I have snapshots of my two subvols (rootfs, home -- now fs-checking
them  just in case...)

Cheers,

  Marco

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-29 14:49                                               ` ^m'e
@ 2018-01-29 15:08                                                 ` ^m'e
  2018-01-29 15:10                                                   ` Qu Wenruo
  2018-01-29 15:09                                                 ` Qu Wenruo
  1 sibling, 1 reply; 32+ messages in thread
From: ^m'e @ 2018-01-29 15:08 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs

Lowmem check on my backup pool reports dozens of 'backref lost' on
extents... Excerpt:
----------------------------------------------------------
# ./btrfsck.static check --mode=lowmem /dev/sda1
checking extents
ERROR: data extent[33866182656 4096] backref lost
ERROR: data extent[37102219264 114688] backref lost
ERROR: data extent[37090353152 45056] backref lost
ERROR: data extent[37193342976 114688] backref lost
ERROR: data extent[50151686144 53248] backref lost
ERROR: data extent[49782943744 126976] backref lost
ERROR: data extent[49718861824 77824] backref lost
ERROR: data extent[33853538304 4096] backref lost
ERROR: data extent[41170333696 692224] backref lost
ERROR: data extent[37550239744 4096] backref lost
ERROR: data extent[33866182656 4096] backref lost
ERROR: data extent[37102219264 114688] backref lost
...

ERROR: data extent[37193342976 114688] backref lost
ERROR: data extent[50151686144 53248] backref lost
ERROR: data extent[49782943744 126976] backref lost
ERROR: data extent[49718861824 77824] backref lost
ERROR: data extent[33853538304 4096] backref lost
ERROR: data extent[41170333696 692224] backref lost
ERROR: data extent[37550239744 4096] backref lost
ERROR: data extent[44122832896 8192] backref lost
ERROR: data extent[45874237440 40960] backref lost
ERROR: errors found in extent allocation tree or chunk allocation
checking free space cache
block group 112772251648 has wrong amount of free space
failed to load free space cache for block group 112772251648
Wanted offset 127268339712, found 127268323328
Wanted offset 127268339712, found 127268323328
cache appears valid but isn't 127267766272
block group 133173346304 has wrong amount of free space
failed to load free space cache for block group 133173346304
Wanted offset 142837039104, found 142837022720
Wanted offset 142837039104, found 142837022720
cache appears valid but isn't 142837022720
ERROR: errors found in free space cache
Checking filesystem on /dev/sda1
UUID: 854e1bf5-7a98-4bcb-b971-0d9f2ac9452a
found 200684883968 bytes used, error(s) found
total csum bytes: 186712500
total tree bytes: 40191000576
total fs tree bytes: 39574110208
total extent tree bytes: 359038976
btree space waste bytes: 7605597010
file data blocks allocated: 946099404800
 referenced 1091731312640
----------------------------------------------------------

Is that related to flawed snapshots of the ailing rootfs vol?
Is it safe to try to rollback from it?

Cheers,

  M.


On Mon, Jan 29, 2018 at 2:49 PM, ^m'e <marcoep@gmail.com> wrote:
> On Mon, Jan 29, 2018 at 2:04 PM, Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
>>
>>
>> On 2018年01月29日 21:58, ^m'e wrote:
>>> Thanks for the advice, Qu!
>>>
>>> I used the system for a while, did some package upgrades -- writing in
>>> the suspect corrupted area. Then tried a btrfs-send to my backup vol,
>>> and it failed miserably with a nice kernel oops.
>>>
>>> So I went for a lowmem repair:
>>> ----------------------------------------------------------------------------------------
>>> # ./btrfsck.static check --repair --mode=lowmem /dev/sdb3 2>&1 | tee
>>> /mnt/custom/rescue/btrfs-recovery/btrfs-repair.BTR-POOL.1.log
>>> WARNING: low-memory mode repair support is only partial
>>> Fixed 0 roots.
>>> checking extents
>>> checking free space cache
>>> checking fs roots
>>> ERROR: failed to add inode 28891726 as orphan item root 257
>>> ERROR: root 257 INODE[28891726] is orphan item
>>
>> At least I need dig the kernel code further to determine if the orphan
>> inode handling in btrfs-progs is correct or not.
>>
>> So there won't be more dirty fix soon.
>>
>> Hopefully you could get some good backup and restore the system.
>>
>> At least the problem is limited to a very small range, and it's
>> something we could handle easily.
>>
>> Thanks for all your report,
>> Qu
>>
>>
>
> Right.
>
> Meanwhile, could you please suggest the best course of action? btrfs
> rescue or restore?
> I have snapshots of my two subvols (rootfs, home -- now fs-checking
> them  just in case...)
>
> Cheers,
>
>   Marco



-- 
^m'e

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-29 14:49                                               ` ^m'e
  2018-01-29 15:08                                                 ` ^m'e
@ 2018-01-29 15:09                                                 ` Qu Wenruo
  2018-01-29 18:16                                                   ` ^m'e
  1 sibling, 1 reply; 32+ messages in thread
From: Qu Wenruo @ 2018-01-29 15:09 UTC (permalink / raw)
  To: ^m'e; +Cc: linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 2163 bytes --]



On 2018年01月29日 22:49, ^m'e wrote:
> On Mon, Jan 29, 2018 at 2:04 PM, Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
>>
>>
>> On 2018年01月29日 21:58, ^m'e wrote:
>>> Thanks for the advice, Qu!
>>>
>>> I used the system for a while, did some package upgrades -- writing in
>>> the suspect corrupted area. Then tried a btrfs-send to my backup vol,
>>> and it failed miserably with a nice kernel oops.
>>>
>>> So I went for a lowmem repair:
>>> ----------------------------------------------------------------------------------------
>>> # ./btrfsck.static check --repair --mode=lowmem /dev/sdb3 2>&1 | tee
>>> /mnt/custom/rescue/btrfs-recovery/btrfs-repair.BTR-POOL.1.log
>>> WARNING: low-memory mode repair support is only partial
>>> Fixed 0 roots.
>>> checking extents
>>> checking free space cache
>>> checking fs roots
>>> ERROR: failed to add inode 28891726 as orphan item root 257
>>> ERROR: root 257 INODE[28891726] is orphan item
>>
>> At least I need dig the kernel code further to determine if the orphan
>> inode handling in btrfs-progs is correct or not.
>>
>> So there won't be more dirty fix soon.
>>
>> Hopefully you could get some good backup and restore the system.
>>
>> At least the problem is limited to a very small range, and it's
>> something we could handle easily.
>>
>> Thanks for all your report,
>> Qu
>>
>>
> 
> Right.
> 
> Meanwhile, could you please suggest the best course of action? btrfs
> rescue or restore?
> I have snapshots of my two subvols (rootfs, home -- now fs-checking
> them  just in case...)

Don't run --repair any more.
It seems to make the case worse.

While the RW mount with orphan cleanup abort seems to screwed up the
filesystem.

In this case, it's pretty hard to recover, but still has small chance.

Use btrfs inspec dump-super to get backup roots:

# btrfs inspect dump-super -fFa <device> |grep backup_tree_root: | sort
| uniq

And try all the 4 numbers in the following commands:

# btrfs check --tree-root <number> <device>

To see if is there any good one without transid error.

Thanks,
Qu

> 
> Cheers,
> 
>   Marco
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 520 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-29 15:08                                                 ` ^m'e
@ 2018-01-29 15:10                                                   ` Qu Wenruo
  0 siblings, 0 replies; 32+ messages in thread
From: Qu Wenruo @ 2018-01-29 15:10 UTC (permalink / raw)
  To: ^m'e; +Cc: linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 4494 bytes --]



On 2018年01月29日 23:08, ^m'e wrote:
> Lowmem check on my backup pool reports dozens of 'backref lost' on
> extents... Excerpt:
> ----------------------------------------------------------
> # ./btrfsck.static check --mode=lowmem /dev/sda1
> checking extents
> ERROR: data extent[33866182656 4096] backref lost
> ERROR: data extent[37102219264 114688] backref lost
> ERROR: data extent[37090353152 45056] backref lost
> ERROR: data extent[37193342976 114688] backref lost
> ERROR: data extent[50151686144 53248] backref lost
> ERROR: data extent[49782943744 126976] backref lost
> ERROR: data extent[49718861824 77824] backref lost
> ERROR: data extent[33853538304 4096] backref lost
> ERROR: data extent[41170333696 692224] backref lost
> ERROR: data extent[37550239744 4096] backref lost
> ERROR: data extent[33866182656 4096] backref lost
> ERROR: data extent[37102219264 114688] backref lost
> ...
> 
> ERROR: data extent[37193342976 114688] backref lost
> ERROR: data extent[50151686144 53248] backref lost
> ERROR: data extent[49782943744 126976] backref lost
> ERROR: data extent[49718861824 77824] backref lost
> ERROR: data extent[33853538304 4096] backref lost
> ERROR: data extent[41170333696 692224] backref lost
> ERROR: data extent[37550239744 4096] backref lost
> ERROR: data extent[44122832896 8192] backref lost
> ERROR: data extent[45874237440 40960] backref lost
> ERROR: errors found in extent allocation tree or chunk allocation
> checking free space cache
> block group 112772251648 has wrong amount of free space
> failed to load free space cache for block group 112772251648
> Wanted offset 127268339712, found 127268323328
> Wanted offset 127268339712, found 127268323328
> cache appears valid but isn't 127267766272
> block group 133173346304 has wrong amount of free space
> failed to load free space cache for block group 133173346304
> Wanted offset 142837039104, found 142837022720
> Wanted offset 142837039104, found 142837022720
> cache appears valid but isn't 142837022720
> ERROR: errors found in free space cache
> Checking filesystem on /dev/sda1
> UUID: 854e1bf5-7a98-4bcb-b971-0d9f2ac9452a
> found 200684883968 bytes used, error(s) found
> total csum bytes: 186712500
> total tree bytes: 40191000576
> total fs tree bytes: 39574110208
> total extent tree bytes: 359038976
> btree space waste bytes: 7605597010
> file data blocks allocated: 946099404800
>  referenced 1091731312640
> ----------------------------------------------------------
> 
> Is that related to flawed snapshots of the ailing rootfs vol?

For that specific problem, lowmem is not that reliable.
Use original mode to make sure.

Thanks,
Qu

> Is it safe to try to rollback from it?
> 
> Cheers,
> 
>   M.
> 
> 
> On Mon, Jan 29, 2018 at 2:49 PM, ^m'e <marcoep@gmail.com> wrote:
>> On Mon, Jan 29, 2018 at 2:04 PM, Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
>>>
>>>
>>> On 2018年01月29日 21:58, ^m'e wrote:
>>>> Thanks for the advice, Qu!
>>>>
>>>> I used the system for a while, did some package upgrades -- writing in
>>>> the suspect corrupted area. Then tried a btrfs-send to my backup vol,
>>>> and it failed miserably with a nice kernel oops.
>>>>
>>>> So I went for a lowmem repair:
>>>> ----------------------------------------------------------------------------------------
>>>> # ./btrfsck.static check --repair --mode=lowmem /dev/sdb3 2>&1 | tee
>>>> /mnt/custom/rescue/btrfs-recovery/btrfs-repair.BTR-POOL.1.log
>>>> WARNING: low-memory mode repair support is only partial
>>>> Fixed 0 roots.
>>>> checking extents
>>>> checking free space cache
>>>> checking fs roots
>>>> ERROR: failed to add inode 28891726 as orphan item root 257
>>>> ERROR: root 257 INODE[28891726] is orphan item
>>>
>>> At least I need dig the kernel code further to determine if the orphan
>>> inode handling in btrfs-progs is correct or not.
>>>
>>> So there won't be more dirty fix soon.
>>>
>>> Hopefully you could get some good backup and restore the system.
>>>
>>> At least the problem is limited to a very small range, and it's
>>> something we could handle easily.
>>>
>>> Thanks for all your report,
>>> Qu
>>>
>>>
>>
>> Right.
>>
>> Meanwhile, could you please suggest the best course of action? btrfs
>> rescue or restore?
>> I have snapshots of my two subvols (rootfs, home -- now fs-checking
>> them  just in case...)
>>
>> Cheers,
>>
>>   Marco
> 
> 
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 520 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-29 15:09                                                 ` Qu Wenruo
@ 2018-01-29 18:16                                                   ` ^m'e
  2018-01-30  1:24                                                     ` Qu Wenruo
  0 siblings, 1 reply; 32+ messages in thread
From: ^m'e @ 2018-01-29 18:16 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs

Thanks!

Got these

  # ./btrfs.static inspect dump-super -fFa /dev/sdb3 |grep
backup_tree_root: | sort -u
        backup_tree_root:    180410073088    gen: 463765    level: 1
        backup_tree_root:    180415758336    gen: 463766    level: 1
        backup_tree_root:    180416364544    gen: 463767    level: 1
        backup_tree_root:    4194304    gen: 463764    level: 1

but, nada: all have transid failures...

The backup snapshots are OK as per original check.


On Mon, Jan 29, 2018 at 3:09 PM, Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
>
>
> On 2018年01月29日 22:49, ^m'e wrote:
>> On Mon, Jan 29, 2018 at 2:04 PM, Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
>>>
>>>
>>> On 2018年01月29日 21:58, ^m'e wrote:
>>>> Thanks for the advice, Qu!
>>>>
>>>> I used the system for a while, did some package upgrades -- writing in
>>>> the suspect corrupted area. Then tried a btrfs-send to my backup vol,
>>>> and it failed miserably with a nice kernel oops.
>>>>
>>>> So I went for a lowmem repair:
>>>> ----------------------------------------------------------------------------------------
>>>> # ./btrfsck.static check --repair --mode=lowmem /dev/sdb3 2>&1 | tee
>>>> /mnt/custom/rescue/btrfs-recovery/btrfs-repair.BTR-POOL.1.log
>>>> WARNING: low-memory mode repair support is only partial
>>>> Fixed 0 roots.
>>>> checking extents
>>>> checking free space cache
>>>> checking fs roots
>>>> ERROR: failed to add inode 28891726 as orphan item root 257
>>>> ERROR: root 257 INODE[28891726] is orphan item
>>>
>>> At least I need dig the kernel code further to determine if the orphan
>>> inode handling in btrfs-progs is correct or not.
>>>
>>> So there won't be more dirty fix soon.
>>>
>>> Hopefully you could get some good backup and restore the system.
>>>
>>> At least the problem is limited to a very small range, and it's
>>> something we could handle easily.
>>>
>>> Thanks for all your report,
>>> Qu
>>>
>>>
>>
>> Right.
>>
>> Meanwhile, could you please suggest the best course of action? btrfs
>> rescue or restore?
>> I have snapshots of my two subvols (rootfs, home -- now fs-checking
>> them  just in case...)
>
> Don't run --repair any more.
> It seems to make the case worse.
>
> While the RW mount with orphan cleanup abort seems to screwed up the
> filesystem.
>
> In this case, it's pretty hard to recover, but still has small chance.
>
> Use btrfs inspec dump-super to get backup roots:
>
> # btrfs inspect dump-super -fFa <device> |grep backup_tree_root: | sort
> | uniq
>
> And try all the 4 numbers in the following commands:
>
> # btrfs check --tree-root <number> <device>
>
> To see if is there any good one without transid error.
>
> Thanks,
> Qu
>
>>
>> Cheers,
>>
>>   Marco
>>
>



-- 
^m'e

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-29 18:16                                                   ` ^m'e
@ 2018-01-30  1:24                                                     ` Qu Wenruo
  2018-01-30 20:14                                                       ` Foo Bar
  0 siblings, 1 reply; 32+ messages in thread
From: Qu Wenruo @ 2018-01-30  1:24 UTC (permalink / raw)
  To: ^m'e; +Cc: linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 3075 bytes --]



On 2018年01月30日 02:16, ^m'e wrote:
> Thanks!
> 
> Got these
> 
>   # ./btrfs.static inspect dump-super -fFa /dev/sdb3 |grep
> backup_tree_root: | sort -u
>         backup_tree_root:    180410073088    gen: 463765    level: 1
>         backup_tree_root:    180415758336    gen: 463766    level: 1
>         backup_tree_root:    180416364544    gen: 463767    level: 1
>         backup_tree_root:    4194304    gen: 463764    level: 1
> 
> but, nada: all have transid failures...

That's why I call it "small chance"

> 
> The backup snapshots are OK as per original check.

Then you should be OK to restore.

Thanks,
Qu

> 
> 
> On Mon, Jan 29, 2018 at 3:09 PM, Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
>>
>>
>> On 2018年01月29日 22:49, ^m'e wrote:
>>> On Mon, Jan 29, 2018 at 2:04 PM, Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
>>>>
>>>>
>>>> On 2018年01月29日 21:58, ^m'e wrote:
>>>>> Thanks for the advice, Qu!
>>>>>
>>>>> I used the system for a while, did some package upgrades -- writing in
>>>>> the suspect corrupted area. Then tried a btrfs-send to my backup vol,
>>>>> and it failed miserably with a nice kernel oops.
>>>>>
>>>>> So I went for a lowmem repair:
>>>>> ----------------------------------------------------------------------------------------
>>>>> # ./btrfsck.static check --repair --mode=lowmem /dev/sdb3 2>&1 | tee
>>>>> /mnt/custom/rescue/btrfs-recovery/btrfs-repair.BTR-POOL.1.log
>>>>> WARNING: low-memory mode repair support is only partial
>>>>> Fixed 0 roots.
>>>>> checking extents
>>>>> checking free space cache
>>>>> checking fs roots
>>>>> ERROR: failed to add inode 28891726 as orphan item root 257
>>>>> ERROR: root 257 INODE[28891726] is orphan item
>>>>
>>>> At least I need dig the kernel code further to determine if the orphan
>>>> inode handling in btrfs-progs is correct or not.
>>>>
>>>> So there won't be more dirty fix soon.
>>>>
>>>> Hopefully you could get some good backup and restore the system.
>>>>
>>>> At least the problem is limited to a very small range, and it's
>>>> something we could handle easily.
>>>>
>>>> Thanks for all your report,
>>>> Qu
>>>>
>>>>
>>>
>>> Right.
>>>
>>> Meanwhile, could you please suggest the best course of action? btrfs
>>> rescue or restore?
>>> I have snapshots of my two subvols (rootfs, home -- now fs-checking
>>> them  just in case...)
>>
>> Don't run --repair any more.
>> It seems to make the case worse.
>>
>> While the RW mount with orphan cleanup abort seems to screwed up the
>> filesystem.
>>
>> In this case, it's pretty hard to recover, but still has small chance.
>>
>> Use btrfs inspec dump-super to get backup roots:
>>
>> # btrfs inspect dump-super -fFa <device> |grep backup_tree_root: | sort
>> | uniq
>>
>> And try all the 4 numbers in the following commands:
>>
>> # btrfs check --tree-root <number> <device>
>>
>> To see if is there any good one without transid error.
>>
>> Thanks,
>> Qu
>>
>>>
>>> Cheers,
>>>
>>>   Marco
>>>
>>
> 
> 
> 


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 520 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

* Re: btrfs check: backref lost, mismatch with its hash -- can't repair
  2018-01-30  1:24                                                     ` Qu Wenruo
@ 2018-01-30 20:14                                                       ` Foo Bar
  0 siblings, 0 replies; 32+ messages in thread
From: Foo Bar @ 2018-01-30 20:14 UTC (permalink / raw)
  To: Qu Wenruo; +Cc: linux-btrfs


[-- Attachment #1.1: Type: text/plain, Size: 3337 bytes --]

Finally restored by merging the last snapshot with what btrfs restore gave me
-- surprisingly almost the whole bunch of it :-)

Thanks for helping!

Cheers,

   Marco

Qu Wenruo wrote on 2018-01-30 02:24:
> 
> 
> On 2018年01月30日 02:16, ^m'e wrote:
>> Thanks!
>>
>> Got these
>>
>>   # ./btrfs.static inspect dump-super -fFa /dev/sdb3 |grep
>> backup_tree_root: | sort -u
>>         backup_tree_root:    180410073088    gen: 463765    level: 1
>>         backup_tree_root:    180415758336    gen: 463766    level: 1
>>         backup_tree_root:    180416364544    gen: 463767    level: 1
>>         backup_tree_root:    4194304    gen: 463764    level: 1
>>
>> but, nada: all have transid failures...
> 
> That's why I call it "small chance"
> 
>>
>> The backup snapshots are OK as per original check.
> 
> Then you should be OK to restore.
> 
> Thanks,
> Qu
> 
>>
>>
>> On Mon, Jan 29, 2018 at 3:09 PM, Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
>>>
>>>
>>> On 2018年01月29日 22:49, ^m'e wrote:
>>>> On Mon, Jan 29, 2018 at 2:04 PM, Qu Wenruo <quwenruo.btrfs@gmx.com> wrote:
>>>>>
>>>>>
>>>>> On 2018年01月29日 21:58, ^m'e wrote:
>>>>>> Thanks for the advice, Qu!
>>>>>>
>>>>>> I used the system for a while, did some package upgrades -- writing in
>>>>>> the suspect corrupted area. Then tried a btrfs-send to my backup vol,
>>>>>> and it failed miserably with a nice kernel oops.
>>>>>>
>>>>>> So I went for a lowmem repair:
>>>>>> ----------------------------------------------------------------------------------------
>>>>>> # ./btrfsck.static check --repair --mode=lowmem /dev/sdb3 2>&1 | tee
>>>>>> /mnt/custom/rescue/btrfs-recovery/btrfs-repair.BTR-POOL.1.log
>>>>>> WARNING: low-memory mode repair support is only partial
>>>>>> Fixed 0 roots.
>>>>>> checking extents
>>>>>> checking free space cache
>>>>>> checking fs roots
>>>>>> ERROR: failed to add inode 28891726 as orphan item root 257
>>>>>> ERROR: root 257 INODE[28891726] is orphan item
>>>>>
>>>>> At least I need dig the kernel code further to determine if the orphan
>>>>> inode handling in btrfs-progs is correct or not.
>>>>>
>>>>> So there won't be more dirty fix soon.
>>>>>
>>>>> Hopefully you could get some good backup and restore the system.
>>>>>
>>>>> At least the problem is limited to a very small range, and it's
>>>>> something we could handle easily.
>>>>>
>>>>> Thanks for all your report,
>>>>> Qu
>>>>>
>>>>>
>>>>
>>>> Right.
>>>>
>>>> Meanwhile, could you please suggest the best course of action? btrfs
>>>> rescue or restore?
>>>> I have snapshots of my two subvols (rootfs, home -- now fs-checking
>>>> them  just in case...)
>>>
>>> Don't run --repair any more.
>>> It seems to make the case worse.
>>>
>>> While the RW mount with orphan cleanup abort seems to screwed up the
>>> filesystem.
>>>
>>> In this case, it's pretty hard to recover, but still has small chance.
>>>
>>> Use btrfs inspec dump-super to get backup roots:
>>>
>>> # btrfs inspect dump-super -fFa <device> |grep backup_tree_root: | sort
>>> | uniq
>>>
>>> And try all the 4 numbers in the following commands:
>>>
>>> # btrfs check --tree-root <number> <device>
>>>
>>> To see if is there any good one without transid error.
>>>
>>> Thanks,
>>> Qu
>>>


[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 195 bytes --]

^ permalink raw reply	[flat|nested] 32+ messages in thread

end of thread, other threads:[~2018-01-30 20:14 UTC | newest]

Thread overview: 32+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-01-22 14:11 btrfs check: backref lost, mismatch with its hash -- can't repair ^m'e
2018-01-22 14:38 ` Qu Wenruo
2018-01-22 15:04   ` ^m'e
2018-01-24  8:49     ` Qu Wenruo
2018-01-24  9:18       ` Foo Bar
2018-01-24 10:14         ` Qu Wenruo
2018-01-24 11:57           ` ^m'e
2018-01-24 12:39             ` Qu Wenruo
2018-01-24 14:47               ` ^m'e
2018-01-24 19:00                 ` ^m'e
2018-01-24 20:41                   ` ^m'e
2018-01-25  0:59                     ` Qu Wenruo
2018-01-25 11:54                       ` ^m'e
2018-01-25 12:09                         ` Qu Wenruo
2018-01-25 12:29                           ` ^m'e
2018-01-25 12:37                             ` Qu Wenruo
2018-01-25 16:40                               ` ^m'e
2018-01-25 23:30                                 ` Qu Wenruo
2018-01-26 11:19                                   ` ^m'e
2018-01-26 12:16                                     ` Qu Wenruo
2018-01-26 15:15                                       ` ^m'e
2018-01-29  1:34                                         ` Qu Wenruo
2018-01-29 13:58                                           ` ^m'e
2018-01-29 14:04                                             ` Qu Wenruo
2018-01-29 14:49                                               ` ^m'e
2018-01-29 15:08                                                 ` ^m'e
2018-01-29 15:10                                                   ` Qu Wenruo
2018-01-29 15:09                                                 ` Qu Wenruo
2018-01-29 18:16                                                   ` ^m'e
2018-01-30  1:24                                                     ` Qu Wenruo
2018-01-30 20:14                                                       ` Foo Bar
2018-01-25  0:59                   ` Qu Wenruo

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.