Ubuntu: arquivo .tmp imovível na unidade de rede sem PID

0

tl; versão dr: Eu tenho um arquivo localdb.kdbx.tmp em uma unidade de rede local que não consigo renomear / excluir / copiar / sobrescrever / abrir / etc. Todas as tentativas, sudo ou não, lançam um erro "Dispositivo ou recurso ocupado". O fusor em execução e o lsof não mostram nada; Tanto quanto eu posso dizer nada está acessando ativamente o arquivo e não há PID associado ou processo pai. Remontar a unidade com o conjunto FUSE para permitir root e outros usuários não faz diferença. As permissões de arquivo são normais e tudo o mais no diretório (backups, etc.) está se comportando conforme o esperado.

detalhes: Eu tenho um banco de dados compartilhado do KeePass hospedado em uma unidade de rede local compartilhada entre vários computadores no local. Algumas das máquinas executam o Windows, outras executam o Linux. Estou usando pessoalmente o Ubuntu 14.04 de 32 bits com o keepass2 2.34 instalado.

Ao tentar salvar algumas atualizações recentes no banco de dados KP localdb.kdbx ontem (eu era a única pessoa que acessava o arquivo no momento), Keepass emitiu um erro e disse que o banco de dados pode estar corrompido. Eu desliguei minha máquina, assumindo que eu poderia sobrescrever o arquivo no dia seguinte. Mas quando entrei e me conectei à unidade esta manhã, o localdb.kdbx existia apenas como localdb.kdbx.tmp e ninguém pode abri-lo (o KeePass lança especificamente um erro "violação da trava no caminho").

Eu solucionaria o problema nos fóruns do KeePass, mas só precisávamos poder usar o nome do arquivo, então ficaria feliz em apenas excluí-lo para que eu possa recriá-lo a partir de um backup. O problema é que recebo um erro "Dispositivo ou recurso ocupado" sempre que tento fazer alguma coisa com o arquivo. Usar lsof e fuser no arquivo .tmp apenas retorna um espaço em branco sem PID, portanto, não há nada para matar e nenhuma maneira de "liberar" o arquivo para exclusão. Eu pensei que poderia ser uma questão FUSE e tentei as soluções em Como obter acesso sudo aos compartilhamentos montados pelo Gigolo e AVISO: não pode stat () fuse.gvfsd-fuse sistema de arquivos sem sorte.

Alguma dica?

    
por Boxbot 09.08.2016 / 23:01

1 resposta

0

ETA: eu estava enganado; a unidade não é uma máquina SMB Windows, mas uma máquina executando uma compilação QNAP Linux 3.2.26 (que o avahi-discover estava adquirindo como Windows).

Descobriu-se que a unidade de rede era uma máquina Windows SMB (pensei erroneamente que era Linux) (consulte ETA) e o processo de bloqueio do arquivo estava sendo executado pelo Windows. Eu não levei em conta que lsof e fuser só retornam processos para a máquina em que estão sendo executados (ou seja, minha máquina local, e não a unidade de rede :).

A unidade de rede não tinha o ssh habilitado e o smbclient não me permitia substituir o bloqueio, então pedi ao nosso administrador de rede para reinicializar a unidade. O processo foi encerrado e consegui excluir o arquivo.

(Para referência dos outros: usei o avahi-discover para obter o sistema operacional da unidade de rede e outros detalhes.)

Adere a @derobert por me apontar na direção dos processos do servidor.

    
por 11.08.2016 / 20:10