rsync ...阻塞超过 120 秒

rsync ...阻塞超过 120 秒

我正在两个外部 USB 2TB 驱动器之间运行 rsync,以在 CentOS 5.9 服务器上进行复制。它似乎已停滞,当我 cd 到副本中的源驱动器时它会挂起,而目标驱动器可以访问。当我执行“df”命令时,它显示复制没有任何进展。

当我执行“dmesg”时,我看到了以前从未见过的输出:

INFO: task rsync:3108 blocked for more than 120 seconds.
"echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message.
rsync         D 000011E8  2160  3108   3105  3109               (NOTLB)
       d1c3ddcc 00000082 46745343 000011e8 c04601e6 00000044 00000000 0000000a 
       d73a9550 467cd3ea 000011e8 000880a7 00000000 d73a965c c1506700 e6a4ec80 
       c0461802 e889b75f 00000000 00e5ba3a 02570c3a c042e4a3 c1506bbc 02570c3a 
Call Trace:
 [<c04601e6>] __alloc_pages+0x69/0x2cf
 [<c0461802>] __do_page_cache_readahead+0x117/0x178
 [<e889b75f>] ext3_get_block+0x0/0xd6 [ext3]
 [<c042e4a3>] getnstimeofday+0x30/0xb6
 [<c06278a0>] io_schedule+0x36/0x59
 [<c045babe>] sync_page+0x0/0x3b
 [<c045baf6>] sync_page+0x38/0x3b
 [<c06279b2>] __wait_on_bit_lock+0x2a/0x52
 [<c045ba39>] __lock_page+0x52/0x59
 [<c0438220>] wake_bit_function+0x0/0x3c
 [<c045c265>] do_generic_mapping_read+0x1f7/0x382
 [<c045cc69>] __generic_file_aio_read+0x16a/0x1a3
 [<c045b72b>] file_read_actor+0x0/0xd5
 [<c045ccdf>] generic_file_aio_read+0x3d/0x44
 [<c0478f3b>] do_sync_read+0xb6/0xf1
 [<c04381f3>] autoremove_wake_function+0x0/0x2d
 [<c044e6c7>] audit_syscall_entry+0x193/0x1bd
 [<c0478e85>] do_sync_read+0x0/0xf1
 [<c0479814>] vfs_read+0x9f/0x141
 [<c0479cc6>] sys_read+0x3c/0x63
 [<c0404f4b>] syscall_call+0x7/0xb
 =======================

我可以终止进程吗?如果可以,按什么顺序?哪些进程?有些处于 S 和 D 状态。有人能解释一下发生了什么吗?谢谢!

答案1

这可能是使用 i386 内核的 CentOS 5.9 的一个错误,因为我将两个外部硬盘移动到了 CentOS 6.3 x86_64 机器上,并且它毫无问题地完成了这个 rsync。

相关内容