I'm running BTRFS on Ubuntu 16.04  - I was testing intensive database
IO which ends up with pretty fragmented data file:

root@blinky:/var/lib/mysql/sbtest# filefrag sbtest1.ibd

sbtest1.ibd: 13415923 extents found

This is 500G device which is some 60% full:

/dev/nvme0n1                500107608 308009444 189718556  62% /mnt/data/mysql

root@blinky:/# btrfs fi show Label: none uuid:
2a396366-e3c9-4d14-b4cc-3d8992bd1c6b Total devices 1 FS bytes used
293.24GiB devid 1 size 476.94GiB used 476.94GiB path /dev/nvme0n1


this file (sbtest1.ibd) takes some 250GB - majority of space

As I try to defrag this file with:

btrfs fi defrag sbtest1.ibd

I get either error of "no space available"   and file system goes to
read only or filesystem completely breaks down and IO errors are
reported.

Note during my experiments I have mounted this filesystem repeatedly
with and without nodatacow and autodefrag   options, I assume these
should not cause any file system dammage, do they ?

Here is the portion of the latest log:

Feb  7 19:10:42 blinky kernel: [40722.055010] ------------[ cut here
]------------
Feb  7 19:10:42 blinky kernel: [40722.055060] WARNING: CPU: 12 PID:
17002 at /build/linux-W6HB68/linux-4.4.0/fs/btrfs/extent-tree.c:6552
__btrfs_free_extent.isr
a.70+0x2e6/0xd30 [btrfs]()
Feb  7 19:10:42 blinky kernel: [40722.055063] BTRFS: error (device
nvme0n1) in __btrfs_free_extent:6552: errno=-28 No space left
Feb  7 19:10:42 blinky kernel: [40722.055066] BTRFS info (device
nvme0n1): forced readonly
Feb  7 19:10:42 blinky kernel: [40722.055068] BTRFS: error (device
nvme0n1) in btrfs_run_delayed_refs:2927: errno=-28 No space left
Feb  7 19:10:42 blinky kernel: [40722.055086] BTRFS: Transaction
aborted (error -28)
Feb  7 19:10:42 blinky kernel: [40722.055087] Modules linked in:
snd_hda_codec_hdmi nls_iso8859_1 intel_rapl x86_pkg_temp_thermal
intel_powerclamp coretemp kvm
snd_hda_codec_realtek irqbypass snd_hda_codec_generic serio_raw
sb_edac snd_hda_intel edac_core snd_hda_codec snd_hda_core snd_hwdep
snd_pcm input_leds snd_time
r mei_me lpc_ich snd mei soundcore shpchp tpm_infineon mac_hid ib_iser
rdma_cm iw_cm ib_cm ib_sa ib_mad ib_core ib_addr iscsi_tcp
libiscsi_tcp libiscsi scsi_tra
nsport_iscsi autofs4 btrfs raid10 raid456 async_raid6_recov
async_memcpy async_pq async_xor async_tx xor raid6_pq libcrc32c raid1
raid0 multipath linear hid_gen
eric usbhid hid nouveau crct10dif_pclmul mxm_wmi crc32_pclmul video
ghash_clmulni_intel i2c_algo_bit aesni_intel ttm aes_x86_64 lrw
drm_kms_helper gf128mul glue
_helper ablk_helper syscopyarea psmouse cryptd sysfillrect e1000e
sysimgblt fb_sys_fops ahci libahci alx ptp drm mdio pps_core nvme fjes
wmi
Feb  7 19:10:42 blinky kernel: [40722.055180] CPU: 12 PID: 17002 Comm:
btrfs-transacti Tainted: G        W       4.4.0-62-generic #83-Ubuntu
Feb  7 19:10:42 blinky kernel: [40722.055181] Hardware name: Gigabyte
Technology Co., Ltd. Default string/X99-Ultra Gaming-CF, BIOS F5
08/29/2016
Feb  7 19:10:42 blinky kernel: [40722.055183]  0000000000000286
000000007c7f47a0 ffff880f1b4c7b00 ffffffff813f7c63
Feb  7 19:10:42 blinky kernel: [40722.055185]  ffff880f1b4c7b48
ffffffffc0392498 ffff880f1b4c7b38 ffffffff810812d2
Feb  7 19:10:42 blinky kernel: [40722.055188]  0000007021b82000
00000000ffffffe4 0000000000000000 ffff880fe62a4000
Feb  7 19:10:42 blinky kernel: [40722.055190] Call Trace:
Feb  7 19:10:42 blinky kernel: [40722.055197]  [<ffffffff813f7c63>]
dump_stack+0x63/0x90
Feb  7 19:10:42 blinky kernel: [40722.055202]  [<ffffffff810812d2>]
warn_slowpath_common+0x82/0xc0
Feb  7 19:10:42 blinky kernel: [40722.055205]  [<ffffffff8108136c>]
warn_slowpath_fmt+0x5c/0x80
Feb  7 19:10:42 blinky kernel: [40722.055219]  [<ffffffffc02f1ec6>]
__btrfs_free_extent.isra.70+0x2e6/0xd30 [btrfs]
Feb  7 19:10:42 blinky kernel: [40722.055232]  [<ffffffffc02f5e34>]
__btrfs_run_delayed_refs+0x444/0x11f0 [btrfs]
Feb  7 19:10:42 blinky kernel: [40722.055236]  [<ffffffff810ece94>] ?
lock_timer_base.isra.22+0x54/0x70
Feb  7 19:10:42 blinky kernel: [40722.055248]  [<ffffffffc02f9a8d>]
btrfs_run_delayed_refs+0x7d/0x2a0 [btrfs]
Feb  7 19:10:42 blinky kernel: [40722.055251]  [<ffffffff810ed018>] ?
del_timer_sync+0x48/0x50
Feb  7 19:10:42 blinky kernel: [40722.055266]  [<ffffffffc030ecbc>]
btrfs_commit_transaction+0xac/0xa90 [btrfs]
Feb  7 19:10:42 blinky kernel: [40722.055279]  [<ffffffffc030a2b9>]
transaction_kthread+0x229/0x240 [btrfs]
Feb  7 19:10:42 blinky kernel: [40722.055291]  [<ffffffffc030a090>] ?
btrfs_cleanup_transaction+0x570/0x570 [btrfs]
Feb  7 19:10:42 blinky kernel: [40722.055294]  [<ffffffff810a0ba8>]
kthread+0xd8/0xf0
Feb  7 19:10:42 blinky kernel: [40722.055296]  [<ffffffff810a0ad0>] ?
kthread_create_on_node+0x1e0/0x1e0
Feb  7 19:10:42 blinky kernel: [40722.055300]  [<ffffffff8183898f>]
ret_from_fork+0x3f/0x70
Feb  7 19:10:42 blinky kernel: [40722.055301]  [<ffffffff810a0ad0>] ?
kthread_create_on_node+0x1e0/0x1e0
Feb  7 19:10:42 blinky kernel: [40722.055303] ---[ end trace
92a6418dcae8a352 ]---
Feb  7 19:10:42 blinky kernel: [40722.055306] BTRFS: error (device
nvme0n1) in __btrfs_free_extent:6552: errno=-28 No space left
Feb  7 19:10:42 blinky kernel: [40722.055314] BTRFS: error (device
nvme0n1) in btrfs_run_delayed_refs:2927: errno=-28 No space left
Feb  7 19:10:42 blinky kernel: [40722.353231] pending csums is 482394112
Feb  7 19:11:28 blinky kernel: [40768.119500] BTRFS error (device
nvme0n1): parent transid verify failed on 249832390656 wanted 5084
found 5065
Feb  7 19:11:28 blinky kernel: [40768.119517] BTRFS info (device
nvme0n1): no csum found for inode 554 start 34088566784
Feb  7 19:11:28 blinky kernel: [40768.119675] BTRFS error (device
nvme0n1): parent transid verify failed on 249832390656 wanted 5084
found 5065
Feb  7 19:11:28 blinky kernel: [40768.119682] BTRFS info (device
nvme0n1): no csum found for inode 554 start 34088570880
Feb  7 19:11:28 blinky kernel: [40768.119835] BTRFS error (device
nvme0n1): parent transid verify failed on 249832390656 wanted 5084
found 5065
Feb  7 19:11:28 blinky kernel: [40768.119842] BTRFS info (device
nvme0n1): no csum found for inode 554 start 34088574976
Feb  7 19:11:28 blinky kernel: [40768.119996] BTRFS error (device
nvme0n1): parent transid verify failed on 249832390656 wanted 5084
found 5065
Feb  7 19:11:28 blinky kernel: [40768.120006] BTRFS info (device
nvme0n1): no csum found for inode 554 start 34088579072
Feb  7 19:11:28 blinky kernel: [40768.120110] BTRFS warning (device
nvme0n1): csum failed ino 554 off 34088566784 csum 1373278930 expected
csum 0
Feb  7 19:11:28 blinky kernel: [40768.120115] BTRFS warning (device
nvme0n1): csum failed ino 554 off 34088570880 csum 4181088238 expected
csum 0
Feb  7 19:11:28 blinky kernel: [40768.120117] BTRFS warning (device
nvme0n1): csum failed ino 554 off 34088574976 csum 3715803016 expected
csum 0
Feb  7 19:11:28 blinky kernel: [40768.120120] BTRFS warning (device
nvme0n1): csum failed ino 554 off 34088579072 csum 1194440854 expected
csum 0
Feb  7 19:11:30 blinky kernel: [40770.940061] BTRFS error (device
nvme0n1): parent transid verify failed on 249827934208 wanted 5084
found 5065
Feb  7 19:11:30 blinky kernel: [40770.940078] BTRFS info (device
nvme0n1): no csum found for inode 554 start 34968256512
Feb  7 19:11:30 blinky kernel: [40770.940235] BTRFS error (device
nvme0n1): parent transid verify failed on 249827934208 wanted 5084
found 5065
Feb  7 19:11:30 blinky kernel: [40770.940243] BTRFS info (device
nvme0n1): no csum found for inode 554 start 34968260608
Feb  7 19:11:30 blinky kernel: [40770.940395] BTRFS error (device
nvme0n1): parent transid verify failed on 249827934208 wanted 5084
found 5065
Feb  7 19:11:30 blinky kernel: [40770.940403] BTRFS info (device
nvme0n1): no csum found for inode 554 start 34968264704
Feb  7 19:11:30 blinky kernel: [40770.940558] BTRFS error (device
nvme0n1): parent transid verify failed on 249827934208 wanted 5084
found 5065
Feb  7 19:11:30 blinky kernel: [40770.940566] BTRFS info (device
nvme0n1): no csum found for inode 554 start 34968268800
Feb  7 19:11:30 blinky kernel: [40770.940692] BTRFS warning (device
nvme0n1): csum failed ino 554 off 34968256512 csum 3504832266 expected
csum 0
Feb  7 19:11:30 blinky kernel: [40770.940697] BTRFS warning (device
nvme0n1): csum failed ino 554 off 34968260608 csum 3188344593 expected
csum 0
Feb  7 19:11:30 blinky kernel: [40770.940700] BTRFS warning (device
nvme0n1): csum failed ino 554 off 34968264704 csum 3938983550 expected
csum 0
Feb  7 19:11:30 blinky kernel: [40770.940703] BTRFS warning (device
nvme0n1): csum failed ino 554 off 34968268800 csum 238540766 expected
csum 0
Feb  7 19:11:34 blinky kernel: [40774.871386] BTRFS error (device
nvme0n1): parent transid verify failed on 329898901504 wanted 5084
found 5065
Feb  7 19:11:34 blinky kernel: [40774.871403] BTRFS info (device
nvme0n1): no csum found for inode 554 start 36158881792
Feb  7 19:11:34 blinky kernel: [40774.871527] BTRFS error (device
nvme0n1): parent transid verify failed on 329898901504 wanted 5084
found 5065
Feb  7 19:11:34 blinky kernel: [40774.871535] BTRFS info (device
nvme0n1): no csum found for inode 554 start 36158885888
Feb  7 19:11:34 blinky kernel: [40774.871655] BTRFS error (device
nvme0n1): parent transid verify failed on 329898901504 wanted 5084
found 5065
Feb  7 19:11:34 blinky kernel: [40774.871662] BTRFS info (device
nvme0n1): no csum found for inode 554 start 36158889984
Feb  7 19:11:34 blinky kernel: [40774.871784] BTRFS error (device
nvme0n1): parent transid verify failed on 329898901504 wanted 5084
found 5065
Feb  7 19:11:34 blinky kernel: [40774.871791] BTRFS info (device
nvme0n1): no csum found for inode 554 start 36158894080
Feb  7 19:11:34 blinky kernel: [40774.871886] BTRFS warning (device
nvme0n1): csum failed ino 554 off 36158881792 csum 2472964550 expected
csum 0
Feb  7 19:11:34 blinky kernel: [40774.871890] BTRFS warning (device
nvme0n1): csum failed ino 554 off 36158885888 csum 2540567641 expected
csum 0
Feb  7 19:11:34 blinky kernel: [40774.871894] BTRFS warning (device
nvme0n1): csum failed ino 554 off 36158889984 csum 1718736600 expected
csum 0
Feb  7 19:11:34 blinky kernel: [40774.871896] BTRFS warning (device
nvme0n1): csum failed ino 554 off 36158894080 csum 1541543398 expected
csum 0
Feb  7 19:11:36 blinky kernel: [40776.947022] BTRFS error (device
nvme0n1): parent transid verify failed on 249831424000 wanted 5084
found 5065
Feb  7 19:11:36 blinky kernel: [40776.947037] BTRFS info (device
nvme0n1): no csum found for inode 554 start 36834557952

I have performed scrub before running defrag it did not find any errors.

This is the test data which I can easily recreate but I'm generally
interested what could be the cause of this and how to repair system in
such condition.

As I run file system check it seems to be OK:

root@blinky:~# btrfsck /dev/nvme0n1 Checking filesystem on
/dev/nvme0n1 UUID: 2a396366-e3c9-4d14-b4cc-3d8992bd1c6b checking
extents checking free space cache checking fs roots checking csums
checking root refs found 314622067165 bytes used err is 0 total csum
bytes: 302861376 total tree bytes: 4492017664 total fs tree bytes:
1496743936 total extent tree bytes: 2126643200 btree space waste
bytes: 1389440305 file data blocks allocated: 345977790464 referenced
288756027392

Let me know if you have any ideas how to troubleshoot

-- 
Peter Zaitsev, CEO, Percona
Tel: +1 888 401 3401 ext 7360   Skype:  peter_zaitsev
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to