Назад | Перейти на главную страницу

mv бесконечно зависает в файловой системе btrfs

Недавно у меня начались проблемы при запуске mv в моей системе ReadyNAS 312. Кажется, что вызов блокируется сразу, т.е. когда я запускаю strace на нем он, кажется, застревает, прежде чем что-то сделать:

open("[...]", O_RDONLY|O_NOFOLLOW) = 3
fstat(3, {st_mode=S_IFREG|0666, st_size=287873154, ...}) = 0
open("[...]", O_WRONLY|O_CREAT|O_EXCL, 0600) = 4
fstat(4, {st_mode=S_IFREG|0600, st_size=0, ...}) = 0
ioctl(4, BTRFS_IOC_CLONE^C^C^Z
[1]  + 7789 suspended  strace mv  .

Полный strace вывод находится на [0].

И наоборот cp работает без проблем (вывод на [1]).

Пока mv зависает, он использует 100% ЦП в соответствии с top и согласно ps r -A он работает:

% ps r -A
  PID TTY      STAT   TIME COMMAND
 2490 ?        R      0:45 [btrfs-transacti]
20257 pts/0    R+     1:15 mv [...]
21097 pts/1    R+     0:00 ps r -A

Однако, как видно выше, через несколько секунд к нему присоединяется процесс [btrfs-transacti] (также используя 100% ЦП).

Выход cat /proc/20257/status является

 % cat /proc/20257/status
Name:   mv
State:  R (running)
Tgid:   20257
Ngid:   0
Pid:    20257
PPid:   20254
TracerPid:  20254
Uid:    0   0   0   0
Gid:    0   0   0   0
FDSize: 64
Groups: 0 
NStgid: 20257
NSpid:  20257
NSpgid: 20254
NSsid:  4613
VmPeak:    24084 kB
VmSize:    24084 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:      1616 kB
VmRSS:      1616 kB
VmData:      220 kB
VmStk:       136 kB
VmExe:       124 kB
VmLib:      2516 kB
VmPTE:        64 kB
VmPMD:        12 kB
VmSwap:        0 kB
Threads:    1
SigQ:   0/7915
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000000000000
SigIgn: 0000000000000000
SigCgt: 0000000180000000
CapInh: 0000000000000000
CapPrm: 0000003fffffffff
CapEff: 0000003fffffffff
CapBnd: 0000003fffffffff
Cpus_allowed:   f
Cpus_allowed_list:  0-3
Mems_allowed:   1
Mems_allowed_list:  0
voluntary_ctxt_switches:    308
nonvoluntary_ctxt_switches: 467

Количество непроизвольных переключений контекста медленно растет, в то время как произвольные переключения контекста остаются постоянными.

Дисковая система - это то, что Netgear называет X-RAID, но в основном это RAID-1. Ядро

 % uname -a
Linux readynas312 4.1.30.x86_64.1 #1 SMP Thu Sep 22 16:30:32 PDT 2016 x86_64 GNU/Linux

Пожалуйста, дайте мне знать, если я должен предоставить дополнительную информацию.

[0] https://gist.github.com/dinyar/6e32fae19d38fd66f942dd70ee6cda8c

[1] https://gist.github.com/dinyar/4c40ff7bc0fca986a1ea875287810928

Я поискал еще немного и почти уверен, что обнаружил ошибку, описанную в [0].

[0] http://permalink.gmane.org/gmane.comp.file-systems.btrfs/46877