Este era realmente um problema do eCryptfs, na forma como o eCryptfs lidava com situações de disco completo. Dê uma olhada:
Este bug já foi corrigido. Uma atualização do kernel deve se livrar do problema.
Depois de ficar sem espaço no $ HOME eu encontrei alguns dos meus scripts falhando, deixando arquivos corrompidos arround. Vou explicar com um exemplo:
Estou usando o Ubuntu 12.04, a partição / é ext4 com o $ HOME na mesma partição e a opção de diretório de usuário criptografado (perguntada na instalação) ativa.
Quando não houver mais espaço livre disponível, se eu tentar criar um arquivo
$ touch last-successful
touch: cannot touch 'last-successful': No space left on device
Mesmo pensando, descobri que o arquivo foi criado, mas os metadados são ilegíveis por algum motivo (pontos de interrogação).
O arquivo também não pode ser usado. Não é possível ler / escrever.
$ ls -lah
ls: cannot access last-successful: No such file or directory
drwxrwxr-x 2 user1 user1 4.0K Oct 28 12:10 .
drwxrwxr-x 3 user1 user1 4.0K Oct 28 12:01 ..
-????????? ? ? ? ? ? last-successful
-rw-rw-r-- 1 user1 user1 189 Jul 12 12:09 README
Mesmo depois que o espaço livre se torna disponível, ele não pode ser alterado ou excluído (e as mensagens de erro não fazem muito sentido), dê uma olhada:
$ echo "hi" >> last-successful
bash: last-successful: File exists
$ rm last-successful
rm: cannot remove 'last-successful': No such file or directory
Após o rm, ainda vejo a mesma listagem de antes (com o arquivo 'last-successful' e com pontos de interrogação)
Somente após a reinicialização, os arquivos podem ser listados sem pontos de interrogação.
$ ls -lah
drwxrwxr-x 2 user1 user1 4.0K Oct 28 12:10 .
drwxrwxr-x 3 user1 user1 4.0K Oct 28 12:01 ..
-rw-rw-r-- 1 user1 user1 0 Oct 27 00:02 last-successful
-rw-rw-r-- 1 user1 user1 189 Jul 12 12:09 README
mas a leitura / gravação ainda não funciona:
$ cat last-successful
cat: last-successful: Input/output error
$ echo "hi" > last-successful
bash: last-successful: Input/output error
Eu só posso deletá-lo (desta vez funciona), e então tudo parece começar a funcionar normalmente de novo.
Aqui está uma lista dos meus pontos de montagem:
$ mount
/dev/sda1 on / type ext4 (rw,errors=remount-ro)
...
/home/user1/.Private on /home/user1 type ecryptfs (ecryptfs_check_dev_ruid,ecryptfs_cipher=aes,ecryptfs_key_bytes=16,ecryptfs_unlink_sigs,ecryptfs_sig=49b949f48cc35f84,ecryptfs_fnek_sig=66c15b8e5a4f2c6b)
Alguém pode me indicar em alguma direção o que está acontecendo aqui? Tem algo a ver com eCryptfs?
Este era realmente um problema do eCryptfs, na forma como o eCryptfs lidava com situações de disco completo. Dê uma olhada:
Este bug já foi corrigido. Uma atualização do kernel deve se livrar do problema.