TL;DR It seems as regression in 4.17, but I managed to find a
workaround to make filesystem rw mountable again.

Kernel built from tag v4.17-rc1
btrfs-progs 4.16

Tonight two my machines (PC (ECC RAM) and laptop(non-ECC RAM)) were
doing usual weekly balance with this command via cron:
btrfs balance start -musage=50 -dusage=50 <mountpoint>
Both machines run same kernel version. 

On PC that caused root and "data" filesystems to go readonly. Root is on
an SSD with data single and metadata DUP, "data" filesystem is on 2 HDDs
with RAID1 for data and metadata.

On laptop only /home went ro, it's on NVMe SSD with data single and
metadata DUP. 

Btrfs check of PC rootfs was without any errors in both modes, I did
them once each before reboot on readonly filesystem with --force flag
and then from live usb. Same output without any errors.

After reboot kernel refused rw mount rootfs with the same error as
during cron balance, ro mount was accepted, error during rw mount:
BTRFS: error (device dm-17) in merge_reloc_roots:2465: errno=-117
unknown BTRFS info (device dm-17): forced readonly BTRFS info (device
dm-17): delayed_refs has NO entry BTRFS error (device dm-17): cleaner
transaction attach returned -3

mount rw with skip_balance parameter didn't help to mount.

After that I mounted rw the rootfs with 4.16.2 kernel, mount was
successful and kernel finished balance. After that the filesystem is
mountable rw by 4.17-rc1 kernel without errors, btrfs check is clean
too.

Data filesystem behaves the same, rw mount on 4.17-rc1 kernel yields:
[ 2321.370113] BTRFS: error (device dm-17) in merge_reloc_roots:2465:
errno=-117 unknown [ 2321.370119] BTRFS warning (device dm-17): failed
to recover relocation: -30 [ 2321.370137] BTRFS info (device dm-17):
delayed_refs has NO entry [ 2321.370155] BTRFS error (device dm-17):
cleaner transaction attach returned -30 [ 2321.414219] BTRFS error
(device dm-17): open_ctree failed

Rw mount on 4.16.2 goes ok and after balance finishes the filesystem is
mountable by 4.17-rc1 again. I saved /home filesystem from laptop in
unmountable by 4.17-rc1 state and can test patches and/or create
btrfs-image if it's needed.
Apr 20 23:46:00 fire kernel: BTRFS: device label root devid 1 transid 350197 
/dev/dm-2
Apr 20 23:46:00 fire kernel: BTRFS info (device dm-2): enabling auto defrag
Apr 20 23:46:00 fire kernel: BTRFS info (device dm-2): use lzo compression, 
level 0
Apr 20 23:46:00 fire kernel: BTRFS info (device dm-2): using free space tree
Apr 20 23:46:00 fire kernel: BTRFS info (device dm-2): has skinny extents
Apr 20 23:46:00 fire kernel: BTRFS info (device dm-2): using free space tree
Apr 20 23:46:10 fire kernel: BTRFS: device label home devid 2 transid 358906 
/dev/dm-5
Apr 20 23:46:13 fire kernel: BTRFS: device label home devid 1 transid 358906 
/dev/dm-12
Apr 20 23:46:13 fire kernel: BTRFS info (device dm-12): use zstd compression, 
level 0
Apr 20 23:46:13 fire kernel: BTRFS info (device dm-12): enabling auto defrag
Apr 20 23:46:13 fire kernel: BTRFS info (device dm-12): using free space tree
Apr 20 23:46:13 fire kernel: BTRFS info (device dm-12): has skinny extents
Apr 20 23:52:32 fire kernel: BTRFS: device label storage devid 1 transid 357668 
/dev/dm-17
Apr 20 23:52:32 fire kernel: BTRFS: device label backup devid 1 transid 5383 
/dev/dm-18
Apr 20 23:52:41 fire kernel: BTRFS: device label storage devid 2 transid 357668 
/dev/dm-21
Apr 20 23:52:41 fire kernel: BTRFS: device label backup devid 2 transid 5383 
/dev/dm-22
Apr 20 23:52:42 fire kernel: BTRFS info (device dm-17): enabling auto defrag
Apr 20 23:52:42 fire kernel: BTRFS info (device dm-17): use zstd compression, 
level 0
Apr 20 23:52:42 fire kernel: BTRFS info (device dm-17): using free space tree
Apr 20 23:52:42 fire kernel: BTRFS info (device dm-17): has skinny extents
Apr 20 23:52:45 fire kernel: BTRFS info (device dm-18): enabling auto defrag
Apr 20 23:52:45 fire kernel: BTRFS info (device dm-18): use zstd compression, 
level 0
Apr 20 23:52:45 fire kernel: BTRFS info (device dm-18): using free space tree
Apr 20 23:52:45 fire kernel: BTRFS info (device dm-18): has skinny extents
Apr 21 01:30:00 fire kernel: BTRFS info (device dm-2): relocating block group 
27309113344 flags system|dup
Apr 21 01:30:00 fire kernel: BTRFS info (device dm-12): relocating block group 
62910365696 flags system|raid1
Apr 21 01:30:00 fire kernel: BTRFS info (device dm-17): relocating block group 
2140869230592 flags metadata|raid1
Apr 21 01:30:00 fire kernel: BTRFS info (device dm-2): relocating block group 
27040677888 flags metadata|dup
Apr 21 01:30:00 fire kernel: BTRFS info (device dm-12): relocating block group 
61836623872 flags data|raid1
Apr 21 01:30:01 fire kernel: BTRFS info (device dm-12): found 5 extents
Apr 21 01:30:01 fire kernel: BTRFS: error (device dm-2) in 
merge_reloc_roots:2465: errno=-117 unknown
Apr 21 01:30:01 fire kernel: BTRFS info (device dm-2): forced readonly
Apr 21 01:30:03 fire kernel: BTRFS info (device dm-12): found 5 extents
Apr 21 01:30:04 fire kernel: BTRFS info (device dm-12): relocating block group 
60762882048 flags metadata|raid1
Apr 21 01:30:08 fire kernel: BTRFS info (device dm-17): found 1521 extents
Apr 21 01:30:08 fire kernel: BTRFS info (device dm-17): relocating block group 
2139761934336 flags metadata|raid1
Apr 21 01:30:22 fire kernel: BTRFS info (device dm-12): found 1709 extents
Apr 21 01:30:25 fire kernel: BTRFS info (device dm-17): found 4297 extents
Apr 21 01:30:25 fire kernel: BTRFS info (device dm-2): delayed_refs has NO entry
Apr 21 01:30:26 fire kernel: BTRFS: error (device dm-17) in 
merge_reloc_roots:2465: errno=-117 unknown
Apr 21 01:30:26 fire kernel: BTRFS info (device dm-17): forced readonly
Apr 21 01:30:26 fire kernel: BTRFS info (device dm-17): delayed_refs has NO 
entry
Apr 21 10:28:29 fire kernel: BTRFS error (device dm-17): cleaner transaction 
attach returned -30
Apr 12 14:56:42 xps kernel: BTRFS info (device dm-3): enabling auto defrag
Apr 12 14:56:42 xps kernel: BTRFS info (device dm-3): using free space tree
Apr 12 14:56:42 xps kernel: BTRFS info (device dm-3): has skinny extents
Apr 14 02:00:00 xps kernel: BTRFS info (device dm-1): relocating block group 
30496784384 flags data
Apr 14 02:00:00 xps kernel: BTRFS info (device dm-1): found 2 extents
Apr 14 02:00:00 xps kernel: BTRFS info (device dm-1): found 2 extents
Apr 14 02:00:00 xps kernel: BTRFS info (device dm-1): relocating block group 
30463229952 flags system|dup
Apr 14 02:00:00 xps kernel: BTRFS info (device dm-1): found 1 extents
Apr 14 02:00:00 xps kernel: BTRFS info (device dm-1): relocating block group 
29892804608 flags metadata|dup
Apr 14 02:00:00 xps kernel: BTRFS info (device dm-1): found 849 extents
Apr 14 02:05:00 xps kernel: BTRFS info (device dm-3): relocating block group 
64453869568 flags metadata|dup
Apr 14 02:05:01 xps kernel: BTRFS info (device dm-3): found 2145 extents
Apr 14 02:05:01 xps kernel: BTRFS info (device dm-3): relocating block group 
64420315136 flags system|dup
Apr 14 02:05:01 xps kernel: BTRFS info (device dm-3): found 1 extents
Apr 14 02:05:01 xps kernel: BTRFS info (device dm-3): relocating block group 
61165535232 flags data
Apr 14 02:05:01 xps kernel: BTRFS info (device dm-3): found 13 extents
Apr 14 02:05:01 xps kernel: BTRFS info (device dm-3): found 13 extents
Apr 14 02:05:01 xps kernel: BTRFS info (device dm-3): relocating block group 
60091793408 flags data
Apr 14 02:05:01 xps kernel: BTRFS info (device dm-3): found 5 extents
Apr 14 02:05:01 xps kernel: BTRFS info (device dm-3): found 5 extents
Apr 14 02:05:01 xps kernel: BTRFS info (device dm-3): relocating block group 
59018051584 flags data
Apr 14 02:05:01 xps kernel: BTRFS info (device dm-3): found 5 extents
Apr 14 02:05:01 xps kernel: BTRFS info (device dm-3): found 5 extents
Apr 14 02:05:01 xps kernel: BTRFS info (device dm-3): relocating block group 
57944309760 flags data
Apr 14 02:05:01 xps kernel: BTRFS info (device dm-3): found 4 extents
Apr 14 02:05:01 xps kernel: BTRFS info (device dm-3): found 4 extents
Apr 14 02:05:01 xps kernel: BTRFS info (device dm-3): relocating block group 
56870567936 flags data
Apr 14 02:05:01 xps kernel: BTRFS info (device dm-3): found 3 extents
Apr 14 02:05:02 xps kernel: BTRFS info (device dm-3): found 3 extents
Apr 14 02:05:02 xps kernel: BTRFS info (device dm-3): relocating block group 
55796826112 flags data
Apr 14 02:05:02 xps kernel: BTRFS info (device dm-3): found 4 extents
Apr 14 02:05:02 xps kernel: BTRFS info (device dm-3): found 4 extents
Apr 14 02:05:02 xps kernel: BTRFS info (device dm-3): relocating block group 
54723084288 flags data
Apr 14 02:05:02 xps kernel: BTRFS info (device dm-3): found 7 extents
Apr 14 02:05:02 xps kernel: BTRFS info (device dm-3): found 7 extents
Apr 14 02:05:02 xps kernel: BTRFS info (device dm-3): relocating block group 
53649342464 flags data
Apr 14 02:05:02 xps kernel: BTRFS info (device dm-3): found 8 extents
Apr 14 02:05:02 xps kernel: BTRFS info (device dm-3): found 8 extents
Apr 14 02:05:02 xps kernel: BTRFS info (device dm-3): relocating block group 
52575600640 flags data
Apr 14 02:05:02 xps kernel: BTRFS info (device dm-3): found 2 extents
Apr 14 02:05:03 xps kernel: BTRFS info (device dm-3): found 2 extents
Apr 14 02:05:03 xps kernel: BTRFS info (device dm-3): relocating block group 
51501858816 flags data
Apr 14 02:05:03 xps kernel: BTRFS info (device dm-3): found 4 extents
Apr 14 02:05:03 xps kernel: BTRFS info (device dm-3): found 4 extents
Apr 14 02:05:03 xps kernel: BTRFS info (device dm-3): relocating block group 
50428116992 flags data
Apr 14 02:05:03 xps kernel: BTRFS info (device dm-3): found 3 extents
Apr 14 02:05:03 xps kernel: BTRFS info (device dm-3): found 3 extents
Apr 14 02:05:03 xps kernel: BTRFS info (device dm-3): relocating block group 
49354375168 flags data
Apr 14 02:05:03 xps kernel: BTRFS info (device dm-3): found 7 extents
Apr 14 02:05:03 xps kernel: BTRFS info (device dm-3): found 7 extents
Apr 14 02:05:03 xps kernel: BTRFS info (device dm-3): relocating block group 
48280633344 flags data
Apr 14 02:05:03 xps kernel: BTRFS info (device dm-3): found 7 extents
Apr 14 02:05:04 xps kernel: BTRFS info (device dm-3): found 7 extents
Apr 14 02:05:04 xps kernel: BTRFS info (device dm-3): relocating block group 
47206891520 flags data
Apr 14 02:05:04 xps kernel: BTRFS info (device dm-3): found 7 extents
Apr 14 02:05:04 xps kernel: BTRFS info (device dm-3): found 7 extents
Apr 14 02:05:04 xps kernel: BTRFS info (device dm-3): relocating block group 
46133149696 flags data
Apr 14 02:05:04 xps kernel: BTRFS info (device dm-3): found 8 extents
Apr 14 02:05:04 xps kernel: BTRFS info (device dm-3): found 8 extents
Apr 14 02:05:04 xps kernel: BTRFS info (device dm-3): relocating block group 
45059407872 flags data
Apr 14 02:05:04 xps kernel: BTRFS info (device dm-3): found 7 extents
Apr 14 02:05:05 xps kernel: BTRFS info (device dm-3): found 7 extents
Apr 17 22:00:37 xps kernel: BTRFS: device label root devid 1 transid 186700 
/dev/dm-1
Apr 17 22:00:37 xps kernel: BTRFS: device label home devid 1 transid 269843 
/dev/dm-3
Apr 17 22:00:37 xps kernel: BTRFS info (device dm-1): enabling auto defrag
Apr 17 22:00:37 xps kernel: BTRFS info (device dm-1): using free space tree
Apr 17 22:00:37 xps kernel: BTRFS info (device dm-1): has skinny extents
Apr 17 22:00:37 xps kernel: BTRFS info (device dm-1): using free space tree
Apr 17 22:00:38 xps kernel: BTRFS info (device dm-3): enabling auto defrag
Apr 17 22:00:38 xps kernel: BTRFS info (device dm-3): using free space tree
Apr 17 22:00:38 xps kernel: BTRFS info (device dm-3): has skinny extents
Apr 21 02:00:00 xps kernel: BTRFS info (device dm-1): relocating block group 
31100764160 flags data
Apr 21 02:00:00 xps kernel: BTRFS info (device dm-1): found 2 extents
Apr 21 02:00:00 xps kernel: BTRFS info (device dm-1): found 2 extents
Apr 21 02:00:00 xps kernel: BTRFS info (device dm-1): relocating block group 
30832328704 flags metadata|dup
Apr 21 02:00:01 xps kernel: BTRFS info (device dm-1): found 1104 extents
Apr 21 02:00:01 xps kernel: BTRFS info (device dm-1): found 188 extents
Apr 21 02:00:01 xps kernel: BTRFS info (device dm-1): found 188 extents
Apr 21 02:00:01 xps kernel: BTRFS info (device dm-1): found 188 extents
Apr 21 02:00:01 xps kernel: BTRFS info (device dm-1): relocating block group 
30798774272 flags system|dup
Apr 21 02:00:01 xps kernel: BTRFS info (device dm-1): found 1 extents
Apr 21 02:05:00 xps kernel: BTRFS info (device dm-3): relocating block group 
68815945728 flags data
Apr 21 02:05:00 xps kernel: BTRFS info (device dm-3): found 18 extents
Apr 21 02:05:00 xps kernel: BTRFS info (device dm-3): found 18 extents
Apr 21 02:05:00 xps kernel: BTRFS info (device dm-3): relocating block group 
67742203904 flags metadata|dup
Apr 21 02:05:01 xps kernel: BTRFS: error (device dm-3) in 
merge_reloc_roots:2465: errno=-117 unknown
Apr 21 02:05:01 xps kernel: BTRFS info (device dm-3): forced readonly
Apr 21 02:05:11 xps kernel: BTRFS error (device dm-3): pending csums is 13107200
# btrfs check --readonly /dev/disk/by-uuid/011912ff-8375-4fd0-8568-715cd28c2b8b
Checking filesystem on /dev/disk/by-uuid/011912ff-8375-4fd0-8568-715cd28c2b8b
UUID: 011912ff-8375-4fd0-8568-715cd28c2b8b
checking extents
checking free space tree
checking fs roots
checking csums
checking root refs
found 1023097102336 bytes used, no error found
total csum bytes: 995795540
total tree bytes: 1777254400
total fs tree bytes: 499777536
total extent tree bytes: 156712960
btree space waste bytes: 206534832
file data blocks allocated: 2580921212928
 referenced 1103042093056
# btrfs check --mode lowmem --readonly 
/dev/disk/by-uuid/011912ff-8375-4fd0-8568-715cd28c2b8b                          
                                                               [18/6001]
Checking filesystem on /dev/disk/by-uuid/011912ff-8375-4fd0-8568-715cd28c2b8b
UUID: 011912ff-8375-4fd0-8568-715cd28c2b8b
checking extents
ERROR: extent[1211914780672, 16777216] referencer count mismatch (root: 2073, 
owner: 236200, offset: 33554432) wanted: 17, have: 18
ERROR: extent[1623008329728, 16777216] referencer count mismatch (root: 2073, 
owner: 241424, offset: 83886080) wanted: 12, have: 17
ERROR: extent[1636104806400, 16777216] referencer count mismatch (root: 2073, 
owner: 195667, offset: 117440512) wanted: 13, have: 14
ERROR: extent[1639128367104, 16777216] referencer count mismatch (root: 2073, 
owner: 197430, offset: 0) wanted: 13, have: 17
ERROR: extent[1689763446784, 16777216] referencer count mismatch (root: 2073, 
owner: 246255, offset: 67108864) wanted: 4, have: 17
ERROR: extent[1811447328768, 16777216] referencer count mismatch (root: 2073, 
owner: 253089, offset: 33554432) wanted: 15, have: 16
ERROR: extent[1853376790528, 16777216] referencer count mismatch (root: 2073, 
owner: 265031, offset: 117440512) wanted: 4, have: 5
ERROR: extent[1864968953856, 16777216] referencer count mismatch (root: 2073, 
owner: 271372, offset: 100663296) wanted: 12, have: 15
ERROR: extent[1865509302272, 16777216] referencer count mismatch (root: 2073, 
owner: 271480, offset: 0) wanted: 15, have: 19
ERROR: extent[1873773236224, 16777216] referencer count mismatch (root: 260, 
owner: 28919, offset: 33554432) wanted: 1, have: 2
ERROR: extent[1875367809024, 16777216] referencer count mismatch (root: 2073, 
owner: 275001, offset: 0) wanted: 12, have: 15
ERROR: extent[2060846788608, 134217728] referencer count mismatch (root: 263, 
owner: 265, offset: 50054324224) wanted: 31, have: 111
ERROR: extent[2080751099904, 134217728] referencer count mismatch (root: 263, 
owner: 265, offset: 32112349184) wanted: 2, have: 12
ERROR: extent[2094597668864, 186949632] referencer count mismatch (root: 259, 
owner: 33786, offset: 0) wanted: 27, have: 69
ERROR: errors found in extent allocation tree or chunk allocation
checking free space tree
checking fs roots
checking csums
checking root refs
found 1023097102336 bytes used, error(s) found
total csum bytes: 995795540
total tree bytes: 1976434688
total fs tree bytes: 698957824
total extent tree bytes: 156712960
btree space waste bytes: 219547602
file data blocks allocated: 2849277431808
 referenced 1426447798272
WARNING: filesystem mounted, continuing because of --force
checking extents
checking free space tree
checking fs roots
checking csums
checking root refs
Checking filesystem on /dev/xps/home
UUID: 4b4b80dc-e2e3-4d76-96ae-02d42879771d
found 24599171072 bytes used, no error found
total csum bytes: 23610896
total tree bytes: 405340160
total fs tree bytes: 357548032
total extent tree bytes: 18857984
btree space waste bytes: 79738263
file data blocks allocated: 38386794496
 referenced 38672330752
WARNING: filesystem mounted, continuing because of --force
checking extents
checking free space tree
checking fs roots
ERROR: root 5 DIR INODE[791126] shouldn't have more than one link(0)
ERROR: errors found in fs roots
Checking filesystem on /dev/xps/home
UUID: 4b4b80dc-e2e3-4d76-96ae-02d42879771d
found 24599171072 bytes used, error(s) found
total csum bytes: 23610896
total tree bytes: 353976320
total fs tree bytes: 306184192
total extent tree bytes: 18857984
btree space waste bytes: 66493351
file data blocks allocated: 24513560576
 referenced 24935272448

Reply via email to