"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

Reply via email to