"Timofey.Kirillov" <distorh...@gmail.com> writes: > 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?
Check to see if /dev/fd is a symlink to /proc/self/fd If that symlink is missing magic using /dev/fd will fail. I suspect that for some reason your /dev/fd symlink simply has not been created in /dev. Eric ------------------------------------------------------------------------------ Symantec Endpoint Protection 12 positioned as A LEADER in The Forrester Wave(TM): Endpoint Security, Q1 2013 and "remains a good choice" in the endpoint security space. For insight on selecting the right partner to tackle endpoint security challenges, access the full report. http://p.sf.net/sfu/symantec-dev2dev _______________________________________________ Lxc-devel mailing list Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel