lxc+btrfs - 순환 심볼릭 링크가 있는 디렉터리를 생성한 후 삭제하면 오래된 파일 핸들이 발생함

lxc+btrfs - 순환 심볼릭 링크가 있는 디렉터리를 생성한 후 삭제하면 오래된 파일 핸들이 발생함

환경:

  • Virtualbox 가상 머신의 데비안 제시
  • 게스트 및 컨테이너에서 루트 계정 사용
  • 가상 머신 내부의 lxc 컨테이너
  • btrfs의 lxc 컨테이너 루트 파일 시스템
  • VM 게스트에서 실행할 때는 잘 작동하지만 컨테이너에서는 작동하지 않습니다.
  • 컨테이너와 기본 btrfs 파일 시스템에 존재하는 폴더에서 실행할 때 제대로 작동합니다.
  • 새 하위 디렉터리의 컨테이너에서 실행 시 실패함(기본에서 델타)

ruby-build에서 Ruby를 설치하려고 하면 이상한 문제가 발생합니다. 설치 프로세스 중에 25,000줄이 넘는 구성 스크립트를 실행하고 다음을 실행합니다.

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

이후 현재 디렉터리 핸들은 오래되었으며 "ls"를 실행하면 다음과 같은 결과가 발생합니다.

ls: cannot open directory .: Stale file handle

조금 결정하려고 노력한 후에 컨테이너 내부에서만 발생하고 기본 이미지에 존재하지 않는 폴더에서 실행할 때만 발생한다는 것을 발견했습니다.

예를 들어 기본 이미지에는 이미 /root가 있으므로 /root에서 4개의 명령을 실행하면 제대로 작동합니다. 그러나 /root/somesubdir에서 실행하면 실패합니다. /tmp 및 /opt에서도 동일한 일이 발생합니다(/mount는 하나만 있고 /tmp 또는 /opt에 특별한 것은 없음). /tmp 또는 /opt에서는 제대로 작동하지만 특정 하위 디렉토리에 만든 경우에는 작동하지 않습니다.

/run(tmpfs 마운트)에서 명령을 실행하면 컨테이너의 하위 디렉터리에서 제대로 실행됩니다.

이것은 내 마운트입니다.

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

나는 이것이 생성되는 d/f 파일의 특이한 점이라고 생각합니다. 그것은 그 자체에 대한 순환 심볼릭 링크입니다.

무엇이 잘못되었는지 또는 해결 방법에 대한 아이디어가 있습니까?

관련 정보