rox-filer trava em listxattr quando o NFS está preocupado

0

Desde muito recentemente, rox-filer trava para mim assim que é suposto exibir um diretório onde um NFS está montado. strace rox-filer -n mostra o seguinte:

[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
[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%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%57%pre%%pre%%pre%04%pre%%pre%%pre%%pre%57"..., 4096) = 4096
lseek(11, 0, SEEK_SET)                  = 0
read(11, "Xcur%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%57%pre%%pre%%pre%04%pre%%pre%%pre%%pre%57"..., 4096) = 4096
close(11)                               = 0
munmap(0x7f42d96bb000, 4096)            = 0
poll([{fd=3, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=3, revents=POLLOUT}])
writev(3, [{"%pre%\n%pre%C%pre%@1%pre%%pre%1%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%l%pre%%pre%%pre%%pre%%pre%%pre%"..., 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)=[{"%pre%!C%pre%@1%pre%%pre%12q%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%"..., 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)=[{"%pre%01%pre%%pre%%pre%%pre%N%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32
recvmsg(3, 0x7fffd0fc3050, 0)           = -1 EAGAIN (Resource temporarily unavailable)
write(5, "%pre%%pre%%pre%%pre%%pre%%pre%%pre%", 8)         = 8
lstat("/mnt/nas/pub", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0
listxattr("/mnt/nas/pub", 
[hangs]
%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%57%pre%%pre%%pre%04%pre%%pre%%pre%%pre%57"..., 4096) = 4096 lseek(11, 0, SEEK_SET) = 0 read(11, "Xcur%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%57%pre%%pre%%pre%04%pre%%pre%%pre%%pre%57"..., 4096) = 4096 close(11) = 0 munmap(0x7f42d96bb000, 4096) = 0 poll([{fd=3, events=POLLIN|POLLOUT}], 1, 4294967295) = 1 ([{fd=3, revents=POLLOUT}]) writev(3, [{"%pre%\n%pre%C%pre%@1%pre%%pre%1%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%l%pre%%pre%%pre%%pre%%pre%%pre%"..., 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)=[{"%pre%!C%pre%@1%pre%%pre%12q%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%"..., 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)=[{"%pre%01%pre%%pre%%pre%%pre%N%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%%pre%", 4096}], msg_controllen=0, msg_flags=0}, 0) = 32 recvmsg(3, 0x7fffd0fc3050, 0) = -1 EAGAIN (Resource temporarily unavailable) write(5, "%pre%%pre%%pre%%pre%%pre%%pre%%pre%", 8) = 8 lstat("/mnt/nas/pub", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0 listxattr("/mnt/nas/pub", [hangs]

nautilus , por outro lado, não tem problemas, mas eu gosto de alguns dos recursos exclusivos do rox-filer demais para serem alterados. O que esta acontecendo aqui? Lembre-se, o NFS está funcionando perfeitamente, é só esse listxattr que falha. O mesmo comportamento ocorre quando eu cd dentro do NFS e o inicio de lá - ele recebe a listagem de arquivos, mas trava em listxattr .

Minhas opções de montagem são _netdev,rw,soft,bg,noauto,noatime,intr,x-systemd.automount , mas elas não têm relação com isso - defaults mostra o mesmo comportamento. O sistema é Debian Sid (dist-upgrade quinta-feira ou assim), o Kernel é 3.15-10.dmz.1-liquorix-amd64.

    
por Pikaro 24.08.2014 / 09:51

1 resposta

0

O Rox Filer suporta a leitura de Atributos Estendidos, mas estes atributos estendidos não são suportados pelo NFS (e, de acordo com os desenvolvedores, nunca serão). Isso faria com que a chamada do sistema listxattr (Listar Atributos Estendidos) falhasse.

Talvez haja um bug no software, e o código está lidando incorretamente com o código de erro retornado e com o enforcamento. Reportar o bug seria sua única opção, a menos que haja alguma maneira no Rox Filer de desativar a leitura / exibição de atributos estendidos.

    
por 10.09.2014 / 02:48