Posso obter "Permissão negada" quando ficar sem espaço?

2

Estou executando o software smrtanalysis , que é muito exigente em termos de CPU, RAM e armazenamento. Depois de correr por algumas horas, recebi a seguinte mensagem de erro:

IOError: [Errno 13] Permission denied: '/afs/bx.psu.edu/user/s/szr/smrtanalysis/tmpdir/tmpqNMh9s'

No entanto, quando verifico os arquivos, parece que as permissões estão definidas OK (estou iniciando o programa como biomonika):

[biomonika@brubeck tmpdir]$ ls -l tmpqNMh9s
-rw-------  1 biomonika biomonika  639 Feb  6 01:13 tmpqNMh9s

Na verdade, o tmpdir está cheio de pastas e arquivos com nome semelhante criados em momentos muito semelhantes. No momento do erro, havia apenas 131 GB de espaço livre sobrando.

Gostaria de saber se "Permissão negada" pode significar algo diferente de permissões configuradas incorretamente, por exemplo, ficando sem espaço. No entanto, o disco é " afs " com o qual não tenho experiência - sou experiente apenas com o uso de chmod, daí a questão.

    
por Perlnika 06.02.2014 / 17:13

1 resposta

1

Na maior parte, o AFS não presta atenção às permissões "chmod". Para ver quais direitos você tem no diretório, execute fs getcalleraccess <dir> , assim:

$ fs getcalleraccess .
Callers access to . is rlidwka

As letras "rlidwka" são direitos de acesso no AFS. Uma explicação para o significado de cada um desses direitos pode ser encontrada na página do manual fs_listacl (1) . Você provavelmente está esperando ter pelo menos direitos "rlidwk" nesse diretório. Você também pode ver quais ACLs estão definidas no diretório executando fs la <dir> , mas isso pode não ser útil se você não estiver familiarizado com a configuração relevante do AFS.

Outras possibilidades são que suas credenciais do AFS expiraram ou, por algum motivo, são inválidas. Para ver se este é o caso, tente procurar nos logs do syslog em sua máquina e procure por "afs". Dependendo de qual plataforma estiver, essas mensagens podem estar em / var / log / syslog, / var / log / messages, / var / adm / messages, / var / log / kern.log ou na saída do dmesg comando. Se seus tokens do AFS expirarem ou forem inválidos, deve haver uma mensagem de aviso em um desses.

Se nada disso explicar o comportamento, você poderia tentar strace ing o processo, para ver o que syscall falha (ou um programa similar; strace no Linux, truss no Solaris, possivelmente dtruss no Mac OS X). Mas isso gerará um ton de saída e levará muito tempo, se o processo fizer muito processamento e E / S.

    
por 10.05.2014 / 23:24