Linux Btrfs filesystem development
 help / color / mirror / Atom feed
* Stuck subvolume removal:
@ 2025-11-13 22:40 Paul Graff
  2025-11-13 22:54 ` Qu Wenruo
  0 siblings, 1 reply; 7+ messages in thread
From: Paul Graff @ 2025-11-13 22:40 UTC (permalink / raw)
  To: linux-btrfs

Hi, currently there is a dropped subvolume error when running a full 
balance on a single SSD.

|:~> sudo btrfs balance start / WARNING: Full balance without filters 
requested. This operation is very intense and takes potentially very 
long. It is recommended to use the balance filters to narrow down the 
scope of balance. Use 'btrfs balance start --full-balance' option to 
skip this warning. The operation will start in 10 seconds. Use Ctrl-C to 
stop it. 10 9 8 7 6 5 4 3 2 1 Starting balance without any filters. 
ERROR: error during balancing '/': Structure needs cleaning There may be 
more info in syslog - try dmesg | tail hightower-i5-6600k:~> dmesg | 
tail [38576.407681] [ T29728] BTRFS info (device dm-2): found 37170 
extents, stage: update data pointers [38584.873805] [ T29728] BTRFS info 
(device dm-2): relocating block group 64891125760 flags data 
[38607.693519] [ T29728] BTRFS info (device dm-2): found 33194 extents, 
stage: move data extents [38641.574032] [ T29728] BTRFS info (device 
dm-2): found 33194 extents, stage: update data pointers [38649.812477] [ 
T29728] BTRFS info (device dm-2): relocating block group 62710087680 
flags data [38662.710999] [ T29728] BTRFS info (device dm-2): found 
43884 extents, stage: move data extents [38696.292982] [ T29728] BTRFS 
info (device dm-2): found 43884 extents, stage: update data pointers 
[38708.587669] [ T29728] BTRFS info (device dm-2): relocating block 
group 60294168576 flags metadata|dup [38714.889735] [ T29728] BTRFS 
error (device dm-2): cannot relocate partially dropped subvolume 490, 
drop progress key (853588 108 0) [38723.736887] [ T29728] BTRFS info 
(device dm-2): balance: ended with status: -117 hightower-i5-6600k:~>|

After passing,

|:~> sudo btrfs subvolume sync / [sudo] password for root: 
hightower-i5-6600k:~> |

the command returned to prompt very, very quickly.

A second balance attempt results with the following output:

|:~> sudo btrfs balance start / WARNING: Full balance without filters 
requested. This operation is very intense and takes potentially very 
long. It is recommended to use the balance filters to narrow down the 
scope of balance. Use 'btrfs balance start --full-balance' option to 
skip this warning. The operation will start in 10 seconds. Use Ctrl-C to 
stop it. 10 9 8 7 6 5 4 3 2 1 Starting balance without any filters. 
ERROR: error during balancing '/': Structure needs cleaning There may be 
more info in syslog - try dmesg | tail hightower-i5-6600k:~> |

|:~> dmesg | tail [93689.781162] [ T69656] BTRFS info (device dm-2): 
found 16 extents, stage: update data pointers [93690.667290] [ T69656] 
BTRFS info (device dm-2): relocating block group 1495819878400 flags 
data [93703.323923] [ T69656] BTRFS info (device dm-2): found 33 
extents, stage: move data extents [93705.575991] [ T69656] BTRFS info 
(device dm-2): found 33 extents, stage: update data pointers 
[93706.769453] [ T69656] BTRFS info (device dm-2): relocating block 
group 1494746136576 flags data [93725.570642] [ T69656] BTRFS info 
(device dm-2): found 39 extents, stage: move data extents [93727.449779] 
[ T69656] BTRFS info (device dm-2): found 39 extents, stage: update data 
pointers [93728.465650] [ T69656] BTRFS info (device dm-2): relocating 
block group 60294168576 flags metadata|dup [93736.722689] [ T69656] 
BTRFS error (device dm-2): cannot relocate partially dropped subvolume 
490, drop progress key (853588 108 0) [93750.594559] [ T69656] BTRFS 
info (device dm-2): balance: ended with status: -117 hightower-i5-6600k:~> |

Please see the following referenced, prior posting for stuck subvolume 
removal similarity. 
https://lore.kernel.org/linux-btrfs/9f936d59-d782-1f48-bbb7-dd1c8dae2615@gmail.com/

Is there a patch for btrfsprogs? If so can the patch be merged?|
|

What are your thoughts on this?





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

* Re: Stuck subvolume removal:
  2025-11-13 22:40 Stuck subvolume removal: Paul Graff
@ 2025-11-13 22:54 ` Qu Wenruo
  2025-11-14 19:38   ` Paul Graff
  0 siblings, 1 reply; 7+ messages in thread
From: Qu Wenruo @ 2025-11-13 22:54 UTC (permalink / raw)
  To: Paul Graff, linux-btrfs



在 2025/11/14 09:10, Paul Graff 写道:
> Hi, currently there is a dropped subvolume error when running a full 
> balance on a single SSD.
> 
> |:~> sudo btrfs balance start / WARNING: Full balance without filters 
> requested. This operation is very intense and takes potentially very 
> long. It is recommended to use the balance filters to narrow down the 
> scope of balance. Use 'btrfs balance start --full-balance' option to 
> skip this warning. The operation will start in 10 seconds. Use Ctrl-C to 
> stop it. 10 9 8 7 6 5 4 3 2 1 Starting balance without any filters. 
> ERROR: error during balancing '/': Structure needs cleaning There may be 
> more info in syslog - try dmesg | tail hightower-i5-6600k:~> dmesg | 
> tail [38576.407681] [ T29728] BTRFS info (device dm-2): found 37170 
> extents, stage: update data pointers [38584.873805] [ T29728] BTRFS info 
> (device dm-2): relocating block group 64891125760 flags data 
> [38607.693519] [ T29728] BTRFS info (device dm-2): found 33194 extents, 
> stage: move data extents [38641.574032] [ T29728] BTRFS info (device 
> dm-2): found 33194 extents, stage: update data pointers [38649.812477] 
> [ T29728] BTRFS info (device dm-2): relocating block group 62710087680 
> flags data [38662.710999] [ T29728] BTRFS info (device dm-2): found 
> 43884 extents, stage: move data extents [38696.292982] [ T29728] BTRFS 
> info (device dm-2): found 43884 extents, stage: update data pointers 
> [38708.587669] [ T29728] BTRFS info (device dm-2): relocating block 
> group 60294168576 flags metadata|dup [38714.889735] [ T29728] BTRFS 
> error (device dm-2): cannot relocate partially dropped subvolume 490, 
> drop progress key (853588 108 0) [38723.736887] [ T29728] BTRFS info 
> (device dm-2): balance: ended with status: -117 hightower-i5-6600k:~>|

The format is a mess.
Please provide a proper formatted dmesg instead.

Along with the kernel version.

The relocation is rejected because there is a half-dropped subvolume, 
which is not that common.
It maybe a problem with the fs that there are some ghost subvolumes that 
are never dropped.

There used to be kernel bug that can lead to such ghost subvolumes, IIRC 
the latest btrfs check can detect it.

So please also provide the output of "btrfs check --readonly" of the 
unmounted fs.

Thanks,
Qu

> 
> After passing,
> 
> |:~> sudo btrfs subvolume sync / [sudo] password for root: hightower- 
> i5-6600k:~> |
> 
> the command returned to prompt very, very quickly.
> 
> A second balance attempt results with the following output:
> 
> |:~> sudo btrfs balance start / WARNING: Full balance without filters 
> requested. This operation is very intense and takes potentially very 
> long. It is recommended to use the balance filters to narrow down the 
> scope of balance. Use 'btrfs balance start --full-balance' option to 
> skip this warning. The operation will start in 10 seconds. Use Ctrl-C to 
> stop it. 10 9 8 7 6 5 4 3 2 1 Starting balance without any filters. 
> ERROR: error during balancing '/': Structure needs cleaning There may be 
> more info in syslog - try dmesg | tail hightower-i5-6600k:~> |
> 
> |:~> dmesg | tail [93689.781162] [ T69656] BTRFS info (device dm-2): 
> found 16 extents, stage: update data pointers [93690.667290] [ T69656] 
> BTRFS info (device dm-2): relocating block group 1495819878400 flags 
> data [93703.323923] [ T69656] BTRFS info (device dm-2): found 33 
> extents, stage: move data extents [93705.575991] [ T69656] BTRFS info 
> (device dm-2): found 33 extents, stage: update data pointers 
> [93706.769453] [ T69656] BTRFS info (device dm-2): relocating block 
> group 1494746136576 flags data [93725.570642] [ T69656] BTRFS info 
> (device dm-2): found 39 extents, stage: move data extents [93727.449779] 
> [ T69656] BTRFS info (device dm-2): found 39 extents, stage: update data 
> pointers [93728.465650] [ T69656] BTRFS info (device dm-2): relocating 
> block group 60294168576 flags metadata|dup [93736.722689] [ T69656] 
> BTRFS error (device dm-2): cannot relocate partially dropped subvolume 
> 490, drop progress key (853588 108 0) [93750.594559] [ T69656] BTRFS 
> info (device dm-2): balance: ended with status: -117 hightower- 
> i5-6600k:~> |
> 
> Please see the following referenced, prior posting for stuck subvolume 
> removal similarity. https://lore.kernel.org/linux-btrfs/9f936d59- 
> d782-1f48-bbb7-dd1c8dae2615@gmail.com/
> 
> Is there a patch for btrfsprogs? If so can the patch be merged?|
> |
> 
> What are your thoughts on this?
> 
> 
> 
> 
> 


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

* Re: Stuck subvolume removal:
  2025-11-13 22:54 ` Qu Wenruo
@ 2025-11-14 19:38   ` Paul Graff
  2025-11-14 19:55     ` Qu Wenruo
  0 siblings, 1 reply; 7+ messages in thread
From: Paul Graff @ 2025-11-14 19:38 UTC (permalink / raw)
  To: Qu Wenruo, linux-btrfs



On 11/13/25 4:54 PM, Qu Wenruo wrote:
>
>
> 在 2025/11/14 09:10, Paul Graff 写道:
>> Hi, currently there is a dropped subvolume error when running a full 
>> balance on a single SSD.
>>
>> |:~> sudo btrfs balance start / WARNING: Full balance without filters 
>> requested. This operation is very intense and takes potentially very 
>> long. It is recommended to use the balance filters to narrow down the 
>> scope of balance. Use 'btrfs balance start --full-balance' option to 
>> skip this warning. The operation will start in 10 seconds. Use Ctrl-C 
>> to stop it. 10 9 8 7 6 5 4 3 2 1 Starting balance without any 
>> filters. ERROR: error during balancing '/': Structure needs cleaning 
>> There may be more info in syslog - try dmesg | tail 
>> hightower-i5-6600k:~> dmesg | tail [38576.407681] [ T29728] BTRFS 
>> info (device dm-2): found 37170 extents, stage: update data pointers 
>> [38584.873805] [ T29728] BTRFS info (device dm-2): relocating block 
>> group 64891125760 flags data [38607.693519] [ T29728] BTRFS info 
>> (device dm-2): found 33194 extents, stage: move data extents 
>> [38641.574032] [ T29728] BTRFS info (device dm-2): found 33194 
>> extents, stage: update data pointers [38649.812477] [ T29728] BTRFS 
>> info (device dm-2): relocating block group 62710087680 flags data 
>> [38662.710999] [ T29728] BTRFS info (device dm-2): found 43884 
>> extents, stage: move data extents [38696.292982] [ T29728] BTRFS info 
>> (device dm-2): found 43884 extents, stage: update data pointers 
>> [38708.587669] [ T29728] BTRFS info (device dm-2): relocating block 
>> group 60294168576 flags metadata|dup [38714.889735] [ T29728] BTRFS 
>> error (device dm-2): cannot relocate partially dropped subvolume 490, 
>> drop progress key (853588 108 0) [38723.736887] [ T29728] BTRFS info 
>> (device dm-2): balance: ended with status: -117 hightower-i5-6600k:~>|
>
> The format is a mess.
My apologies for the disastrous output format above.
> Please provide a proper formatted dmesg instead.

:~> sudo dmesg | tail

[sudo] password for root:

[44928.672213] [ T96240] BTRFS info (device dm-2): found 55680 extents, 
stage: update data pointers

[44937.810972] [ T96240] BTRFS info (device dm-2): found 4 extents, 
stage: update data pointers

[44938.590658] [ T96240] BTRFS info (device dm-2): relocating block 
group 60294168576 flags metadata|dup

[44945.516661] [ T96240] BTRFS error (device dm-2): cannot relocate 
partially dropped subvolume 490, drop progress key (853588 108 0)

[44955.995468] [ T96240] BTRFS info (device dm-2): balance: ended with 
status: -117

:~>


>
> Along with the kernel version.
Most current openSUSE Rescue system CD used for btrfs check, uname -a > 
6.17.7-1
>
> The relocation is rejected because there is a half-dropped subvolume, 
> which is not that common.
> It maybe a problem with the fs that there are some ghost subvolumes 
> that are never dropped.
>
> There used to be kernel bug that can lead to such ghost subvolumes, 
> IIRC the latest btrfs check can detect it.
>
> So please also provide the output of "btrfs check --readonly" of the 
> unmounted fs.

:~ # btrfs check --readonly --progress /dev/mapper/system-root

Opening filesystem to check...

Checking filesystem on /dev/mapper/system-root

UUID: 605560ad-fe93-4d09-8760-df0725b43ee1

[1/8] checking log skipped (none written)

[1/7] checking root items (0:00:14 elapsed, 5328460 items checked)

[2/7] checking extents (0:01:01 elapsed, 984830 items checked)

[3/7] checking free space cache (0:00:12 elapsed, 471 items checked)

[4/7] checking fs roots (0:04:32 elapsed, 910644 items checked)

[5/7] checking csums (without verifying data) (0:00:12 elapsed, 895024 
items checked)

fs tree 490 missing orphan item (0:00:00 elapsed, 94 items checked)

[6/7] checking root refs (0:00:01 elapsed, 94 items checked)

ERROR: errors found in root refs

found 496776130741 bytes used, error(s) found

total csum bytes: 465839608

total tree bytes: 16133832704

total fs tree bytes: 14983905280

total extent tree bytes: 624771072

btree space waste bytes: 3613129770

file data blocks allocated: 1062495817728

referenced 976540409856

:~ #


>
> Thanks,
> Qu
>
-Greatest Hopes
Paul
>>
>> After passing,
>>
>> |:~> sudo btrfs subvolume sync / [sudo] password for root: hightower- 
>> i5-6600k:~> |
>>
>> the command returned to prompt very, very quickly.
>>
>> A second balance attempt results with the following output:
>>
>> |:~> sudo btrfs balance start / WARNING: Full balance without filters 
>> requested. This operation is very intense and takes potentially very 
>> long. It is recommended to use the balance filters to narrow down the 
>> scope of balance. Use 'btrfs balance start --full-balance' option to 
>> skip this warning. The operation will start in 10 seconds. Use Ctrl-C 
>> to stop it. 10 9 8 7 6 5 4 3 2 1 Starting balance without any 
>> filters. ERROR: error during balancing '/': Structure needs cleaning 
>> There may be more info in syslog - try dmesg | tail 
>> hightower-i5-6600k:~> |
>>
>> |:~> dmesg | tail [93689.781162] [ T69656] BTRFS info (device dm-2): 
>> found 16 extents, stage: update data pointers [93690.667290] [ 
>> T69656] BTRFS info (device dm-2): relocating block group 
>> 1495819878400 flags data [93703.323923] [ T69656] BTRFS info (device 
>> dm-2): found 33 extents, stage: move data extents [93705.575991] [ 
>> T69656] BTRFS info (device dm-2): found 33 extents, stage: update 
>> data pointers [93706.769453] [ T69656] BTRFS info (device dm-2): 
>> relocating block group 1494746136576 flags data [93725.570642] [ 
>> T69656] BTRFS info (device dm-2): found 39 extents, stage: move data 
>> extents [93727.449779] [ T69656] BTRFS info (device dm-2): found 39 
>> extents, stage: update data pointers [93728.465650] [ T69656] BTRFS 
>> info (device dm-2): relocating block group 60294168576 flags 
>> metadata|dup [93736.722689] [ T69656] BTRFS error (device dm-2): 
>> cannot relocate partially dropped subvolume 490, drop progress key 
>> (853588 108 0) [93750.594559] [ T69656] BTRFS info (device dm-2): 
>> balance: ended with status: -117 hightower- i5-6600k:~> |
>>
>> Please see the following referenced, prior posting for stuck 
>> subvolume removal similarity. 
>> https://lore.kernel.org/linux-btrfs/9f936d59- 
>> d782-1f48-bbb7-dd1c8dae2615@gmail.com/
>>
>> Is there a patch for btrfsprogs? If so can the patch be merged?|
>> |
>>
>> What are your thoughts on this?
>>
>>
>>
>>
>>
>


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

* Re: Stuck subvolume removal:
  2025-11-14 19:38   ` Paul Graff
@ 2025-11-14 19:55     ` Qu Wenruo
  2026-01-28  8:42       ` Paul Graff
  0 siblings, 1 reply; 7+ messages in thread
From: Qu Wenruo @ 2025-11-14 19:55 UTC (permalink / raw)
  To: Paul Graff, linux-btrfs



在 2025/11/15 06:08, Paul Graff 写道:
> 
> 
> On 11/13/25 4:54 PM, Qu Wenruo wrote:
>>
>>
>> 在 2025/11/14 09:10, Paul Graff 写道:
>>> Hi, currently there is a dropped subvolume error when running a full 
>>> balance on a single SSD.
>>>
>>> |:~> sudo btrfs balance start / WARNING: Full balance without filters 
>>> requested. This operation is very intense and takes potentially very 
>>> long. It is recommended to use the balance filters to narrow down the 
>>> scope of balance. Use 'btrfs balance start --full-balance' option to 
>>> skip this warning. The operation will start in 10 seconds. Use Ctrl-C 
>>> to stop it. 10 9 8 7 6 5 4 3 2 1 Starting balance without any 
>>> filters. ERROR: error during balancing '/': Structure needs cleaning 
>>> There may be more info in syslog - try dmesg | tail hightower- 
>>> i5-6600k:~> dmesg | tail [38576.407681] [ T29728] BTRFS info (device 
>>> dm-2): found 37170 extents, stage: update data pointers 
>>> [38584.873805] [ T29728] BTRFS info (device dm-2): relocating block 
>>> group 64891125760 flags data [38607.693519] [ T29728] BTRFS info 
>>> (device dm-2): found 33194 extents, stage: move data extents 
>>> [38641.574032] [ T29728] BTRFS info (device dm-2): found 33194 
>>> extents, stage: update data pointers [38649.812477] [ T29728] BTRFS 
>>> info (device dm-2): relocating block group 62710087680 flags data 
>>> [38662.710999] [ T29728] BTRFS info (device dm-2): found 43884 
>>> extents, stage: move data extents [38696.292982] [ T29728] BTRFS info 
>>> (device dm-2): found 43884 extents, stage: update data pointers 
>>> [38708.587669] [ T29728] BTRFS info (device dm-2): relocating block 
>>> group 60294168576 flags metadata|dup [38714.889735] [ T29728] BTRFS 
>>> error (device dm-2): cannot relocate partially dropped subvolume 490, 
>>> drop progress key (853588 108 0) [38723.736887] [ T29728] BTRFS info 
>>> (device dm-2): balance: ended with status: -117 hightower-i5-6600k:~>|
>>
>> The format is a mess.
> My apologies for the disastrous output format above.
>> Please provide a proper formatted dmesg instead.
> 
> :~> sudo dmesg | tail
> 
> [sudo] password for root:
> 
> [44928.672213] [ T96240] BTRFS info (device dm-2): found 55680 extents, 
> stage: update data pointers
> 
> [44937.810972] [ T96240] BTRFS info (device dm-2): found 4 extents, 
> stage: update data pointers
> 
> [44938.590658] [ T96240] BTRFS info (device dm-2): relocating block 
> group 60294168576 flags metadata|dup
> 
> [44945.516661] [ T96240] BTRFS error (device dm-2): cannot relocate 
> partially dropped subvolume 490, drop progress key (853588 108 0)
> 
> [44955.995468] [ T96240] BTRFS info (device dm-2): balance: ended with 
> status: -117
> 
> :~>
> 
> 
>>
>> Along with the kernel version.
> Most current openSUSE Rescue system CD used for btrfs check, uname -a > 
> 6.17.7-1
>>
>> The relocation is rejected because there is a half-dropped subvolume, 
>> which is not that common.
>> It maybe a problem with the fs that there are some ghost subvolumes 
>> that are never dropped.
>>
>> There used to be kernel bug that can lead to such ghost subvolumes, 
>> IIRC the latest btrfs check can detect it.
>>
>> So please also provide the output of "btrfs check --readonly" of the 
>> unmounted fs.
> 
> :~ # btrfs check --readonly --progress /dev/mapper/system-root
> 
> Opening filesystem to check...
> 
> Checking filesystem on /dev/mapper/system-root
> 
> UUID: 605560ad-fe93-4d09-8760-df0725b43ee1
> 
> [1/8] checking log skipped (none written)
> 
> [1/7] checking root items (0:00:14 elapsed, 5328460 items checked)
> 
> [2/7] checking extents (0:01:01 elapsed, 984830 items checked)
> 
> [3/7] checking free space cache (0:00:12 elapsed, 471 items checked)
> 
> [4/7] checking fs roots (0:04:32 elapsed, 910644 items checked)
> 
> [5/7] checking csums (without verifying data) (0:00:12 elapsed, 895024 
> items checked)
> 
> fs tree 490 missing orphan item (0:00:00 elapsed, 94 items checked)

So indeed your fs has a half dropped ghost subvolume, most likely caused 
by some older kernels.

Unfortunately btrfs-progs doesn't have the ability to repair it yet, 
I'll craft a branch of btrfs-progs with the repair ability soon.

Meanwhile please prepare an environment to compile btrfs-progs.

Thanks,
Qu

> 
> [6/7] checking root refs (0:00:01 elapsed, 94 items checked)
> 
> ERROR: errors found in root refs
> 
> found 496776130741 bytes used, error(s) found
> 
> total csum bytes: 465839608
> 
> total tree bytes: 16133832704
> 
> total fs tree bytes: 14983905280
> 
> total extent tree bytes: 624771072
> 
> btree space waste bytes: 3613129770
> 
> file data blocks allocated: 1062495817728
> 
> referenced 976540409856
> 
> :~ #
> 
> 
>>
>> Thanks,
>> Qu
>>
> -Greatest Hopes
> Paul
>>>
>>> After passing,
>>>
>>> |:~> sudo btrfs subvolume sync / [sudo] password for root: hightower- 
>>> i5-6600k:~> |
>>>
>>> the command returned to prompt very, very quickly.
>>>
>>> A second balance attempt results with the following output:
>>>
>>> |:~> sudo btrfs balance start / WARNING: Full balance without filters 
>>> requested. This operation is very intense and takes potentially very 
>>> long. It is recommended to use the balance filters to narrow down the 
>>> scope of balance. Use 'btrfs balance start --full-balance' option to 
>>> skip this warning. The operation will start in 10 seconds. Use Ctrl-C 
>>> to stop it. 10 9 8 7 6 5 4 3 2 1 Starting balance without any 
>>> filters. ERROR: error during balancing '/': Structure needs cleaning 
>>> There may be more info in syslog - try dmesg | tail hightower- 
>>> i5-6600k:~> |
>>>
>>> |:~> dmesg | tail [93689.781162] [ T69656] BTRFS info (device dm-2): 
>>> found 16 extents, stage: update data pointers [93690.667290] 
>>> [ T69656] BTRFS info (device dm-2): relocating block group 
>>> 1495819878400 flags data [93703.323923] [ T69656] BTRFS info (device 
>>> dm-2): found 33 extents, stage: move data extents [93705.575991] 
>>> [ T69656] BTRFS info (device dm-2): found 33 extents, stage: update 
>>> data pointers [93706.769453] [ T69656] BTRFS info (device dm-2): 
>>> relocating block group 1494746136576 flags data [93725.570642] 
>>> [ T69656] BTRFS info (device dm-2): found 39 extents, stage: move 
>>> data extents [93727.449779] [ T69656] BTRFS info (device dm-2): found 
>>> 39 extents, stage: update data pointers [93728.465650] [ T69656] 
>>> BTRFS info (device dm-2): relocating block group 60294168576 flags 
>>> metadata|dup [93736.722689] [ T69656] BTRFS error (device dm-2): 
>>> cannot relocate partially dropped subvolume 490, drop progress key 
>>> (853588 108 0) [93750.594559] [ T69656] BTRFS info (device dm-2): 
>>> balance: ended with status: -117 hightower- i5-6600k:~> |
>>>
>>> Please see the following referenced, prior posting for stuck 
>>> subvolume removal similarity. https://lore.kernel.org/linux- 
>>> btrfs/9f936d59- d782-1f48-bbb7-dd1c8dae2615@gmail.com/
>>>
>>> Is there a patch for btrfsprogs? If so can the patch be merged?|
>>> |
>>>
>>> What are your thoughts on this?
>>>
>>>
>>>
>>>
>>>
>>
> 


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

* Re: Stuck subvolume removal:
  2025-11-14 19:55     ` Qu Wenruo
@ 2026-01-28  8:42       ` Paul Graff
  2026-01-28  8:49         ` Qu Wenruo
  0 siblings, 1 reply; 7+ messages in thread
From: Paul Graff @ 2026-01-28  8:42 UTC (permalink / raw)
  To: Qu Wenruo, linux-btrfs


On 11/14/25 1:55 PM, Qu Wenruo wrote:
>
>
> 在 2025/11/15 06:08, Paul Graff 写道:
>>
>>
>> On 11/13/25 4:54 PM, Qu Wenruo wrote:
>>>
>>>
>>> 在 2025/11/14 09:10, Paul Graff 写道:
>>>> Hi, currently there is a dropped subvolume error when running a 
>>>> full balance on a single SSD.
>>>>
>>>> |:~> sudo btrfs balance start / WARNING: Full balance without 
>>>> filters requested. This operation is very intense and takes 
>>>> potentially very long. It is recommended to use the balance filters 
>>>> to narrow down the scope of balance. Use 'btrfs balance start 
>>>> --full-balance' option to skip this warning. The operation will 
>>>> start in 10 seconds. Use Ctrl-C to stop it. 10 9 8 7 6 5 4 3 2 1 
>>>> Starting balance without any filters. ERROR: error during balancing 
>>>> '/': Structure needs cleaning There may be more info in syslog - 
>>>> try dmesg | tail hightower- i5-6600k:~> dmesg | tail [38576.407681] 
>>>> [ T29728] BTRFS info (device dm-2): found 37170 extents, stage: 
>>>> update data pointers [38584.873805] [ T29728] BTRFS info (device 
>>>> dm-2): relocating block group 64891125760 flags data [38607.693519] 
>>>> [ T29728] BTRFS info (device dm-2): found 33194 extents, stage: 
>>>> move data extents [38641.574032] [ T29728] BTRFS info (device 
>>>> dm-2): found 33194 extents, stage: update data pointers 
>>>> [38649.812477] [ T29728] BTRFS info (device dm-2): relocating block 
>>>> group 62710087680 flags data [38662.710999] [ T29728] BTRFS info 
>>>> (device dm-2): found 43884 extents, stage: move data extents 
>>>> [38696.292982] [ T29728] BTRFS info (device dm-2): found 43884 
>>>> extents, stage: update data pointers [38708.587669] [ T29728] BTRFS 
>>>> info (device dm-2): relocating block group 60294168576 flags 
>>>> metadata|dup [38714.889735] [ T29728] BTRFS error (device dm-2): 
>>>> cannot relocate partially dropped subvolume 490, drop progress key 
>>>> (853588 108 0) [38723.736887] [ T29728] BTRFS info (device dm-2): 
>>>> balance: ended with status: -117 hightower-i5-6600k:~>|
>>>
>>> The format is a mess.
>> My apologies for the disastrous output format above.
>>> Please provide a proper formatted dmesg instead.
>>
>> :~> sudo dmesg | tail
>>
>> [sudo] password for root:
>>
>> [44928.672213] [ T96240] BTRFS info (device dm-2): found 55680 
>> extents, stage: update data pointers
>>
>> [44937.810972] [ T96240] BTRFS info (device dm-2): found 4 extents, 
>> stage: update data pointers
>>
>> [44938.590658] [ T96240] BTRFS info (device dm-2): relocating block 
>> group 60294168576 flags metadata|dup
>>
>> [44945.516661] [ T96240] BTRFS error (device dm-2): cannot relocate 
>> partially dropped subvolume 490, drop progress key (853588 108 0)
>>
>> [44955.995468] [ T96240] BTRFS info (device dm-2): balance: ended 
>> with status: -117
>>
>> :~>
>>
>>
>>>
>>> Along with the kernel version.
>> Most current openSUSE Rescue system CD used for btrfs check, uname -a 
>> > 6.17.7-1
>>>
>>> The relocation is rejected because there is a half-dropped 
>>> subvolume, which is not that common.
>>> It maybe a problem with the fs that there are some ghost subvolumes 
>>> that are never dropped.
>>>
>>> There used to be kernel bug that can lead to such ghost subvolumes, 
>>> IIRC the latest btrfs check can detect it.
>>>
>>> So please also provide the output of "btrfs check --readonly" of the 
>>> unmounted fs.
>>
>> :~ # btrfs check --readonly --progress /dev/mapper/system-root
>>
>> Opening filesystem to check...
>>
>> Checking filesystem on /dev/mapper/system-root
>>
>> UUID: 605560ad-fe93-4d09-8760-df0725b43ee1
>>
>> [1/8] checking log skipped (none written)
>>
>> [1/7] checking root items (0:00:14 elapsed, 5328460 items checked)
>>
>> [2/7] checking extents (0:01:01 elapsed, 984830 items checked)
>>
>> [3/7] checking free space cache (0:00:12 elapsed, 471 items checked)
>>
>> [4/7] checking fs roots (0:04:32 elapsed, 910644 items checked)
>>
>> [5/7] checking csums (without verifying data) (0:00:12 elapsed, 
>> 895024 items checked)
>>
>> fs tree 490 missing orphan item (0:00:00 elapsed, 94 items checked)
>
> So indeed your fs has a half dropped ghost subvolume, most likely 
> caused by some older kernels.
>
> Unfortunately btrfs-progs doesn't have the ability to repair it yet, 
> I'll craft a branch of btrfs-progs with the repair ability soon.
>
> Meanwhile please prepare an environment to compile btrfs-progs.
>
> Thanks,
> Qu

Hi, I would like to ask if there is a solution to the "dropped ghost 
subvolume" the filesystem on machine here exhibits as of yet?

-Thanks

Paul Graff

>
>>
>> [6/7] checking root refs (0:00:01 elapsed, 94 items checked)
>>
>> ERROR: errors found in root refs
>>
>> found 496776130741 bytes used, error(s) found
>>
>> total csum bytes: 465839608
>>
>> total tree bytes: 16133832704
>>
>> total fs tree bytes: 14983905280
>>
>> total extent tree bytes: 624771072
>>
>> btree space waste bytes: 3613129770
>>
>> file data blocks allocated: 1062495817728
>>
>> referenced 976540409856
>>
>> :~ #
>>
>>
>>>
>>> Thanks,
>>> Qu
>>>
>> -Greatest Hopes
>> Paul
>>>>
>>>> After passing,
>>>>
>>>> |:~> sudo btrfs subvolume sync / [sudo] password for root: 
>>>> hightower- i5-6600k:~> |
>>>>
>>>> the command returned to prompt very, very quickly.
>>>>
>>>> A second balance attempt results with the following output:
>>>>
>>>> |:~> sudo btrfs balance start / WARNING: Full balance without 
>>>> filters requested. This operation is very intense and takes 
>>>> potentially very long. It is recommended to use the balance filters 
>>>> to narrow down the scope of balance. Use 'btrfs balance start 
>>>> --full-balance' option to skip this warning. The operation will 
>>>> start in 10 seconds. Use Ctrl-C to stop it. 10 9 8 7 6 5 4 3 2 1 
>>>> Starting balance without any filters. ERROR: error during balancing 
>>>> '/': Structure needs cleaning There may be more info in syslog - 
>>>> try dmesg | tail hightower- i5-6600k:~> |
>>>>
>>>> |:~> dmesg | tail [93689.781162] [ T69656] BTRFS info (device 
>>>> dm-2): found 16 extents, stage: update data pointers [93690.667290] 
>>>> [ T69656] BTRFS info (device dm-2): relocating block group 
>>>> 1495819878400 flags data [93703.323923] [ T69656] BTRFS info 
>>>> (device dm-2): found 33 extents, stage: move data extents 
>>>> [93705.575991] [ T69656] BTRFS info (device dm-2): found 33 
>>>> extents, stage: update data pointers [93706.769453] [ T69656] BTRFS 
>>>> info (device dm-2): relocating block group 1494746136576 flags data 
>>>> [93725.570642] [ T69656] BTRFS info (device dm-2): found 39 
>>>> extents, stage: move data extents [93727.449779] [ T69656] BTRFS 
>>>> info (device dm-2): found 39 extents, stage: update data pointers 
>>>> [93728.465650] [ T69656] BTRFS info (device dm-2): relocating block 
>>>> group 60294168576 flags metadata|dup [93736.722689] [ T69656] BTRFS 
>>>> error (device dm-2): cannot relocate partially dropped subvolume 
>>>> 490, drop progress key (853588 108 0) [93750.594559] [ T69656] 
>>>> BTRFS info (device dm-2): balance: ended with status: -117 
>>>> hightower- i5-6600k:~> |
>>>>
>>>> Please see the following referenced, prior posting for stuck 
>>>> subvolume removal similarity. https://lore.kernel.org/linux- 
>>>> btrfs/9f936d59- d782-1f48-bbb7-dd1c8dae2615@gmail.com/
>>>>
>>>> Is there a patch for btrfsprogs? If so can the patch be merged?|
>>>> |
>>>>
>>>> What are your thoughts on this?
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>
>

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

* Re: Stuck subvolume removal:
  2026-01-28  8:42       ` Paul Graff
@ 2026-01-28  8:49         ` Qu Wenruo
  2026-03-01 15:47           ` Paul Graff
  0 siblings, 1 reply; 7+ messages in thread
From: Qu Wenruo @ 2026-01-28  8:49 UTC (permalink / raw)
  To: Paul Graff, Qu Wenruo, linux-btrfs



在 2026/1/28 19:12, Paul Graff 写道:
[...]
>> Unfortunately btrfs-progs doesn't have the ability to repair it yet, 
>> I'll craft a branch of btrfs-progs with the repair ability soon.
>>
>> Meanwhile please prepare an environment to compile btrfs-progs.
>>
>> Thanks,
>> Qu
> 
> Hi, I would like to ask if there is a solution to the "dropped ghost 
> subvolume" the filesystem on machine here exhibits as of yet?

My bad, forgot to inform you about the fix.

In fact the fix is already merged into btrfs-progs, but not yet included 
in any release.

If you can compile btrfs-progs, please fetch and compile the latest 
devel branch:

https://github.com/kdave/btrfs-progs/tree/devel

After compiling the devel branch, you can use `btrfs check --repair` to 
fix the problem, which will add back the missing orphan item for those 
ghost subvolumes.

Thanks,
Qu

> 
> -Thanks
> 
> Paul Graff
> 
>>
>>>
>>> [6/7] checking root refs (0:00:01 elapsed, 94 items checked)
>>>
>>> ERROR: errors found in root refs
>>>
>>> found 496776130741 bytes used, error(s) found
>>>
>>> total csum bytes: 465839608
>>>
>>> total tree bytes: 16133832704
>>>
>>> total fs tree bytes: 14983905280
>>>
>>> total extent tree bytes: 624771072
>>>
>>> btree space waste bytes: 3613129770
>>>
>>> file data blocks allocated: 1062495817728
>>>
>>> referenced 976540409856
>>>
>>> :~ #
>>>
>>>
>>>>
>>>> Thanks,
>>>> Qu
>>>>
>>> -Greatest Hopes
>>> Paul
>>>>>
>>>>> After passing,
>>>>>
>>>>> |:~> sudo btrfs subvolume sync / [sudo] password for root: 
>>>>> hightower- i5-6600k:~> |
>>>>>
>>>>> the command returned to prompt very, very quickly.
>>>>>
>>>>> A second balance attempt results with the following output:
>>>>>
>>>>> |:~> sudo btrfs balance start / WARNING: Full balance without 
>>>>> filters requested. This operation is very intense and takes 
>>>>> potentially very long. It is recommended to use the balance filters 
>>>>> to narrow down the scope of balance. Use 'btrfs balance start -- 
>>>>> full-balance' option to skip this warning. The operation will start 
>>>>> in 10 seconds. Use Ctrl-C to stop it. 10 9 8 7 6 5 4 3 2 1 Starting 
>>>>> balance without any filters. ERROR: error during balancing '/': 
>>>>> Structure needs cleaning There may be more info in syslog - try 
>>>>> dmesg | tail hightower- i5-6600k:~> |
>>>>>
>>>>> |:~> dmesg | tail [93689.781162] [ T69656] BTRFS info (device 
>>>>> dm-2): found 16 extents, stage: update data pointers [93690.667290] 
>>>>> [ T69656] BTRFS info (device dm-2): relocating block group 
>>>>> 1495819878400 flags data [93703.323923] [ T69656] BTRFS info 
>>>>> (device dm-2): found 33 extents, stage: move data extents 
>>>>> [93705.575991] [ T69656] BTRFS info (device dm-2): found 33 
>>>>> extents, stage: update data pointers [93706.769453] [ T69656] BTRFS 
>>>>> info (device dm-2): relocating block group 1494746136576 flags data 
>>>>> [93725.570642] [ T69656] BTRFS info (device dm-2): found 39 
>>>>> extents, stage: move data extents [93727.449779] [ T69656] BTRFS 
>>>>> info (device dm-2): found 39 extents, stage: update data pointers 
>>>>> [93728.465650] [ T69656] BTRFS info (device dm-2): relocating block 
>>>>> group 60294168576 flags metadata|dup [93736.722689] [ T69656] BTRFS 
>>>>> error (device dm-2): cannot relocate partially dropped subvolume 
>>>>> 490, drop progress key (853588 108 0) [93750.594559] [ T69656] 
>>>>> BTRFS info (device dm-2): balance: ended with status: -117 
>>>>> hightower- i5-6600k:~> |
>>>>>
>>>>> Please see the following referenced, prior posting for stuck 
>>>>> subvolume removal similarity. https://lore.kernel.org/linux- 
>>>>> btrfs/9f936d59- d782-1f48-bbb7-dd1c8dae2615@gmail.com/
>>>>>
>>>>> Is there a patch for btrfsprogs? If so can the patch be merged?|
>>>>> |
>>>>>
>>>>> What are your thoughts on this?
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>
>>
> 


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

* Re: Stuck subvolume removal:
  2026-01-28  8:49         ` Qu Wenruo
@ 2026-03-01 15:47           ` Paul Graff
  0 siblings, 0 replies; 7+ messages in thread
From: Paul Graff @ 2026-03-01 15:47 UTC (permalink / raw)
  To: Qu Wenruo, Qu Wenruo, linux-btrfs



On 1/28/26 2:49 AM, Qu Wenruo wrote:
> 
> 
> 在 2026/1/28 19:12, Paul Graff 写道:
> [...]
>>> Unfortunately btrfs-progs doesn't have the ability to repair it yet, 
>>> I'll craft a branch of btrfs-progs with the repair ability soon.
>>>
>>> Meanwhile please prepare an environment to compile btrfs-progs.
>>>
>>> Thanks,
>>> Qu
>>
>> Hi, I would like to ask if there is a solution to the "dropped ghost 
>> subvolume" the filesystem on machine here exhibits as of yet?
> 
> My bad, forgot to inform you about the fix.
> 
> In fact the fix is already merged into btrfs-progs, but not yet included 
> in any release.
> 
> If you can compile btrfs-progs, please fetch and compile the latest 
> devel branch:
> 
> https://github.com/kdave/btrfs-progs/tree/devel
> 
> After compiling the devel branch, you can use `btrfs check --repair` to 
> fix the problem, which will add back the missing orphan item for those 
> ghost subvolumes.
> 
I did not know how to compile from the devel branch, this is 
unfortunate. I waited until openSUSE Tumbleweed btrfsprogs Version 
6.19-1.1 was included in a snapshot which took a while but seems to have 
worked. I first ran # btrfs check --repair /dev/mapper/system-root from 
a openSUSE Rescue CD image, it completed. I then ran # btrfs balance 
start / yesterday when the drive was mounted and it took 12 hours or so 
but did complete. I think this problem is finally fixed?

Thanks for helping with this.
Paul

> Thanks,
> Qu
> 
>>
>> -Thanks
>>
>> Paul Graff
>>
>>>
>>>>
>>>> [6/7] checking root refs (0:00:01 elapsed, 94 items checked)
>>>>
>>>> ERROR: errors found in root refs
>>>>
>>>> found 496776130741 bytes used, error(s) found
>>>>
>>>> total csum bytes: 465839608
>>>>
>>>> total tree bytes: 16133832704
>>>>
>>>> total fs tree bytes: 14983905280
>>>>
>>>> total extent tree bytes: 624771072
>>>>
>>>> btree space waste bytes: 3613129770
>>>>
>>>> file data blocks allocated: 1062495817728
>>>>
>>>> referenced 976540409856
>>>>
>>>> :~ #
>>>>
>>>>
>>>>>
>>>>> Thanks,
>>>>> Qu
>>>>>
>>>> -Greatest Hopes
>>>> Paul
>>>>>>
>>>>>> After passing,
>>>>>>
>>>>>> |:~> sudo btrfs subvolume sync / [sudo] password for root: 
>>>>>> hightower- i5-6600k:~> |
>>>>>>
>>>>>> the command returned to prompt very, very quickly.
>>>>>>
>>>>>> A second balance attempt results with the following output:
>>>>>>
>>>>>> |:~> sudo btrfs balance start / WARNING: Full balance without 
>>>>>> filters requested. This operation is very intense and takes 
>>>>>> potentially very long. It is recommended to use the balance 
>>>>>> filters to narrow down the scope of balance. Use 'btrfs balance 
>>>>>> start -- full-balance' option to skip this warning. The operation 
>>>>>> will start in 10 seconds. Use Ctrl-C to stop it. 10 9 8 7 6 5 4 3 
>>>>>> 2 1 Starting balance without any filters. ERROR: error during 
>>>>>> balancing '/': Structure needs cleaning There may be more info in 
>>>>>> syslog - try dmesg | tail hightower- i5-6600k:~> |
>>>>>>
>>>>>> |:~> dmesg | tail [93689.781162] [ T69656] BTRFS info (device 
>>>>>> dm-2): found 16 extents, stage: update data pointers 
>>>>>> [93690.667290] [ T69656] BTRFS info (device dm-2): relocating 
>>>>>> block group 1495819878400 flags data [93703.323923] [ T69656] 
>>>>>> BTRFS info (device dm-2): found 33 extents, stage: move data 
>>>>>> extents [93705.575991] [ T69656] BTRFS info (device dm-2): found 
>>>>>> 33 extents, stage: update data pointers [93706.769453] [ T69656] 
>>>>>> BTRFS info (device dm-2): relocating block group 1494746136576 
>>>>>> flags data [93725.570642] [ T69656] BTRFS info (device dm-2): 
>>>>>> found 39 extents, stage: move data extents [93727.449779] 
>>>>>> [ T69656] BTRFS info (device dm-2): found 39 extents, stage: 
>>>>>> update data pointers [93728.465650] [ T69656] BTRFS info (device 
>>>>>> dm-2): relocating block group 60294168576 flags metadata|dup 
>>>>>> [93736.722689] [ T69656] BTRFS error (device dm-2): cannot 
>>>>>> relocate partially dropped subvolume 490, drop progress key 
>>>>>> (853588 108 0) [93750.594559] [ T69656] BTRFS info (device dm-2): 
>>>>>> balance: ended with status: -117 hightower- i5-6600k:~> |
>>>>>>
>>>>>> Please see the following referenced, prior posting for stuck 
>>>>>> subvolume removal similarity. https://lore.kernel.org/linux- 
>>>>>> btrfs/9f936d59- d782-1f48-bbb7-dd1c8dae2615@gmail.com/
>>>>>>
>>>>>> Is there a patch for btrfsprogs? If so can the patch be merged?|
>>>>>> |
>>>>>>
>>>>>> What are your thoughts on this?
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
> 


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

end of thread, other threads:[~2026-03-01 15:47 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-11-13 22:40 Stuck subvolume removal: Paul Graff
2025-11-13 22:54 ` Qu Wenruo
2025-11-14 19:38   ` Paul Graff
2025-11-14 19:55     ` Qu Wenruo
2026-01-28  8:42       ` Paul Graff
2026-01-28  8:49         ` Qu Wenruo
2026-03-01 15:47           ` Paul Graff

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox