涉及 NFS 时,rox-filer 会因 listxattr 而挂起

涉及 NFS 时,rox-filer 会因 listxattr 而挂起

从最近开始,rox-filer当我需要显示 NFS 挂载目录时,它就挂起了。strace rox-filer -n显示以下内容:

[snip]
open("/home/vinter/.icons/Adwaita/index.theme", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/usr/share/icons/Adwaita/cursors/sb_h_double_arrow", O_RDONLY) = 11
fstat(11, {st_mode=S_IFREG|0644, st_size=15776, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f42d96bb000
read(11, "Xcur\20\0\0\0\0\0\1\0\3\0\0\0\2\0\375\377\30\0\0\0004\0\0\0\2\0\375\377"..., 4096) = 4096
lseek(11, 0, SEEK_SET)                  = 0
read(11, "Xcur\20\0\0\0\0\0\1\0\3\0\0\0\2\0\375\377\30\0\0\0004\0\0\0\2\0\375\377"..., 4096) = 4096
close(11)                               = 0
munmap(0x7f42d96bb000, 4096)            = 0
poll([{fd=3, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{"\22\0\n\0C\0@\3\301\1\0\0\301\1\0\0\10\0\0\0\20\0\0\0l\0\5\0\0\0\0\0"..., 2644}, {NULL, 0}, {"", 0}], 3) = 2644
poll([{fd=3, events=POLLIN}], 1, 4294967295) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"\34\0!\1C\0@\3\301\1\0\0\201\352q\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 4096}], msg_controllen=0, msg_flags=0}, 0) = 64
poll([{fd=3, events=POLLIN}], 1, 4294967295) = 1 ([{fd=3, revents=POLLIN}])
recvmsg(3, {msg_name(0)=NULL, msg_iov(1)=[{"\1\0001\1\0\0\0\0N\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(3, 0x7fffd0fc3050, 0)           = -1 EAGAIN (Resource temporarily unavailable)
write(5, "\1\0\0\0\0\0\0\0", 8)         = 8
lstat("/mnt/nas/pub", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0
listxattr("/mnt/nas/pub", 
[hangs]

nautilus另一方面,没有任何问题,但我rox-filer太喜欢 的一些独特功能而不想改变。这里发生了什么?请注意,NFS 运行正常,只有这个listxattr出现故障。当我进入 NFS 并从那里启动它时,发生了相同的行为cd- 它接收文件列表,但挂起listxattr

我的挂载选项是_netdev,rw,soft,bg,noauto,noatime,intr,x-systemd.automount,但它们与此无关 -defaults显示相同的行为。系统是 Debian Sid(dist-upgrade 星期四左右),内核是 3.15-10.dmz.1-liquorix-amd64。

答案1

Rox Filer 支持读取扩展属性,但 NFS 不支持这些扩展属性(而且据开发人员称,永远不会支持)。这将导致 listxattr(列出扩展属性)系统调用失败。

也许软件中存在错误,代码错误地处理了返回的错误代码并挂起。报告错误将是您唯一的选择,除非 Rox Filer 中有某种方法可以关闭读取/显示扩展属性。

相关内容