Hi,

I'm trying to convert a data=RAID10,metadata=RAID1 (4 disks) array to RAID1 (2 disks). The array was less than half full, and I disconnected two parity drives, leaving two that contained one copy of all data.

After stubbing out btrfs_check_rw_degradable (because btrfs currently can't realize when it has all drives needed for RAID10), I've successfully mounted rw+degraded, balance-converted all RAID10 data to RAID1, and then btrfs-device-delete-d one of the missing drives. It fails at deleting the second.

The process reached a point where the last missing device shows as containing 20 GB of RAID1 metadata. At this point, attempting to delete the device causes the operation to shortly fail with "No space left", followed by a "kernel BUG at fs/btrfs/relocation.c:2499!", and the "btrfs device delete" command to crash with a segmentation fault.

Here is the information about the filesystem:

https://dump.thecybershadow.net/55d558b4d0a59643e24c6b4ee9019dca/04%3A28%3A23-upload.txt

And here is the dmesg output (with enospc_debug):

https://dump.thecybershadow.net/9d3811b85d078908141a30886df8894c/04%3A28%3A53-upload.txt

Attempting to unmount the filesystem causes another warning:

https://dump.thecybershadow.net/6d6f2353cd07cd8464ece7e4df90816e/04%3A30%3A30-upload.txt

The umount command then hangs indefinitely.

Linux 5.1.15-arch1-1-ARCH, btrfs-progs v5.1.1

--
Best regards,
 Vladimir

Reply via email to