lxc + btrfs - Criar e, em seguida, remover um link simbólico dir w / circular faz com que o identificador de arquivo obsoleto

3

Ambiente:

  • debian jessie dentro de uma VM virtualbox
  • usando uma conta root no convidado e em contêineres
  • contêiner lxc dentro da VM
  • sistema de arquivos raiz do contêiner lxc no btrfs
  • funciona bem quando é executado no convidado da VM, mas não no contêiner
  • funciona bem quando é executado no contêiner quando está em uma pasta que existe no sistema de arquivos btrfs de base
  • falha ao executar no contêiner em um novo subdiretório (delta da base)

Eu tenho um problema bizarro que surgiu ao tentar instalar o ruby a partir do ruby-build. No processo de instalação, ele executa um script de configuração que, em algum lugar com mais de 25.000 linhas, executa algo como o seguinte:

mkdir d
ln -s f d
rm d/f
rmdir d

Depois disso, o identificador de diretório atual é obsoleto e a execução dos resultados de 'ls':

ls: cannot open directory .: Stale file handle

Depois de tentar acertar um pouco, vejo que isso só acontece dentro do contêiner e somente ao executar a partir de uma pasta que não existe na imagem base.

Por exemplo, a imagem base já tem o / root, então se eu executar os 4 comandos do / root, ele funcionará bem. No entanto, se eu correr de / root / somesubdir ele falhará. A mesma coisa acontece em / tmp e / opt (apenas um / mount, nada especial para / tmp ou / opt) onde funciona bem para / tmp ou / opt, mas não para algum subdir criado dentro dele.

Se, em vez disso, executar o comando dentro / run, que é uma montagem tmpfs, ele funcionará bem dentro do contêiner em subdiretórios.

Aqui estão minhas montagens:

Filesystem                         1K-blocks     Used Available Use% Mounted on
/var/lib/lxc/base_container/rootfs  37747708 20436096  16331024  56% /
udev                                   10240        0     10240   0% /dev
tmpfs                                4097824       12   4097812   1% /dev/shm
tmpfs                                4097824   106600   3991224   3% /run
tmpfs                                   5120        0      5120   0% /run/lock
tmpfs                                4097824        0   4097824   0% /sys/fs/cgroup

Eu assumo que é uma peculiaridade do arquivo d / f criado que é um link circular simbólico para si mesmo.

Alguma idéia do que está errado ou como consertá-lo?

    
por Clancy P 29.11.2016 / 00:13

0 respostas

Tags