[lxc-devel] procfs and unnamed pipes
Timofey.Kirillov
distorhead at gmail.com
Sun Feb 3 12:27:27 UTC 2013
Hi,
I have a question about using unnamed pipes with procfs.
Suppose a chrooted environment with proc mounted as procfs. I am trying
to use bash process substitution feature and get this:
$ cat <(echo hello)
cat: /dev/fd/63: No such file or directory
While on the normal system:
$ cat <(echo hello)
hello
As I understand, the problem is that when fuse making getattr on file
'/dev/fd/63' - it determines that it is symlink. The next step is
readlink, which gives something like that: /25977/fd/63 =>
pipe:[3087676]. And at the final step getattr on file
'/25977/fd/pipe:[3087676]' gives no such file or directory.
Actually I encouter this issue while working on my own similar fuse proc
(for jail environments). Then I find procfs, tried it out and get the
same failure.
I am tried to change logic of getattr in the next way. First make normal
stat of file. If it is not S_ISFIFO - make lstat. In that way the
process hangs forever on open syscall:
$ strace cat <(echo hello)
...
open("/dev/fd/63", O_RDONLY
Is there any workaround of this problem?
More information about the lxc-devel
mailing list