Quoting Timofey.Kirillov (distorh...@gmail.com):
> 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

works fine for me in a chroot.

My first guess would be that your chroot doesn't have the /dev/fd ->
/proc/self/fd symlink set up right, though your discussion below
suggests that's not the case.

> While on the normal system:
> $ cat <(echo hello)
> hello
> 
> As I understand, the problem is that when fuse making getattr on

Sorry I don't know where fuse comes in.

> 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?

I can't reproduce your problem.  Which kernel are you on?

-serge

------------------------------------------------------------------------------
Free Next-Gen Firewall Hardware Offer
Buy your Sophos next-gen firewall before the end March 2013 
and get the hardware for free! Learn more.
http://p.sf.net/sfu/sophos-d2d-feb
_______________________________________________
Lxc-users mailing list
Lxc-users@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/lxc-users

Reply via email to