[Lxc-users] procfs and unnamed pipes

Timofey.Kirillov distorhead at gmail.com
Wed Feb 6 16:52:36 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 similar fuse proc (for 
jail environments). Then I find procfs, tried it out and get the same 
failure.

I've also 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 for this problem?

--
Timofey Kirillov

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linuxcontainers.org/pipermail/lxc-users/attachments/20130206/19733bb9/attachment.html>


More information about the lxc-users mailing list