[lxc-users] LXC start command fails when ran with valgrind

Serge E. Hallyn serge at hallyn.com
Fri Oct 28 20:42:59 UTC 2016


Quoting Adithya K (linux.challenge1 at gmail.com):
> HI,
> 
>  I am trying to run LXC on Ubuntu 14.04 and LXC version 1.0.8. When I
> run valgrind
> --tool=memcheck --leak-check=yes --show-reachable=yes --num-callers=20
> --track-fds=yes lxc-start -d -n test, I get following error.
> 
> Warning: invalid file descriptor 1024 in syscall close()
> ==7897==    at 0x5195F60: __close_nocancel (syscall-template.S:81)
> ==7897==    by 0x4E526BC: lxc_check_inherited (in /usr/lib/x86_64-linux-gnu/
> liblxc.so.1.0.8)
> ==7897==    by 0x4E55840: lxc_monitord_spawn (in /usr/lib/x86_64-linux-gnu/
> liblxc.so.1.0.8)
> ==7897==    by 0x4E82659: ??? (in /usr/lib/x86_64-linux-gnu/liblxc.so.1.0.8)
> 
> I create LXC container with busybox template.
> 
> Any solution to this?

You are asking for lxc to run in daemonized mode (-d).  When it does so,
it always enables '-C' (close-all-fds) to close inherited fds.  So
lxc-start sees an open fd of valgrind's and closes it.  valgrind doesn't
like that.

You could probalby get around it by doing

valgrind @valgrind-args@ lxc-start -F -n test

which will run lxc-start in the foreground and without closing inherited
fds.


More information about the lxc-users mailing list