cp or rsync from NFS mount to local disk hangs when fsc is enabled

  • 7012769
  • 02-Jul-2013
  • 02-Jul-2013

Environment


SUSE Linux Enterprise Server 11 Service Pack 2

Situation

If fscache (fsc) is enabled for NFS the second 'cp' or 'rsync' after dropping the caches hangs. By copying/rsyncing a sparse file the hang can be reproduced without dropping the cache. Here's an example:

time cp -va /NFS/mount /tmp/ ; rm -rf /tmp/mount
time cp -va --sparse=always /NFS/mount /tmp/

or

time cp -va /NFS/mount /tmp/
echo 3 > /proc/sys/vm/drop_caches
sync
time cp -va /NFS/mount /tmp/


The cat /proc/<PID_of_cp>/stack shows:

[<ffffffff810efc89>] sleep_on_page_killable+0x9/0x40
[<ffffffff810efd56>] __lock_page_killable+0x96/0xd0
[<ffffffff810f0f47>] do_generic_file_read+0x227/0x490
[<ffffffff810f180c>] generic_file_aio_read+0xfc/0x260
[<ffffffffa0553cf1>] nfs_file_read+0xf1/0x140 [nfs]
[<ffffffff81150190>] do_sync_read+0xc0/0x100
[<ffffffff81150937>] vfs_read+0xc7/0x130
[<ffffffff81150aa3>] sys_read+0x53/0xa0
[<ffffffff8144ca12>] system_call_fastpath+0x16/0x1b
[<00007f052a61af00>] 0x7f052a61af00
[<ffffffffffffffff>] 0xffffffffffffffff

It seems that 'cp' is waiting to get access to a page that is already been locked but not been released. Any further access to the page hangs.

Resolution

The kernel update 3.0.80-0.5.1 released June 2013 includes the patch to resolve the problem. Please install the recommended update.

Feedback service temporarily unavailable. For content questions or problems, please contact Support.