Re: Problem about lxc-enter-namespace interface

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 2013-11-14 16:40 , Gao feng wrote:
On 11/14/2013 03:09 PM, hzguanqiang@xxxxxxxxxxxxxxxx wrote:
> On 2013-11-14 15:03 , Gao feng <mailto:gaofeng@xxxxxxxxxxxxxx> wrote:
>
>     On 11/14/2013 02:57 PM, hzguanqiang@xxxxxxxxxxxxxxxx wrote:
>     > On 2013-11-14 14:17 , Gao feng <mailto:gaofeng@xxxxxxxxxxxxxx> wrote:
>     >
>     >     On 11/14/2013 01:52 PM, hzguanqiang@xxxxxxxxxxxxxxxx wrote:
>     >     > On 2013-11-14 13:41 , Gao feng <mailto:gaofeng@xxxxxxxxxxxxxx> wrote:
>     >     >
>     >     >     On 11/14/2013 01:24 PM, Gao feng wrote:
>     >     >     > On 11/14/2013 10:59 AM, hzguanqiang@xxxxxxxxxxxxxxxx wrote:
>     >     >     >> Hi experts,
>     >     >     >>
>     >     >     >> When I test lxc-enter-namespace interface, it turned out such an error:
>     >     >     >>
>     >     >     >> hzguanqiang@debian:~$ <mailto:hzguanqiang@debian:~$> vir version
>     >     >     >> Compiled against library: libvirt 1.1.4
>     >     >     >> Using library: libvirt 1.1.4
>     >     >     >> Using API: LXC 1.1.4
>     >     >     >> Running hypervisor: LXC 3.9.6
>     >     >     >>
>     >     >     >> hzguanqiang@debian:~$ <mailto:hzguanqiang@debian:~$> vir list
>     >     >     >> Id    Name                           State
>     >     >     >> ----------------------------------------------------
>     >     >     >> 1544  instance-00000015              running
>     >     >     >>
>     >     >     >> hzguanqiang@debian:~$ <mailto:hzguanqiang@debian:~$> vir lxc-enter-namespace 1544 --noseclabel /bin/df -hl
>     >     >     >> error: Cannot get namespaces for 1545: Function not implemented
>     >     >     >>
>     >     >     >> hzguanqiang@debian:~$ <mailto:hzguanqiang@debian:~$> ls /proc/self/ns
>     >     >     >> ipc  mnt  net  pid  user  uts
>     >     >     >>
>     >     >     >> What's the problem?
>     >     >     >>
>     >     >     >
>     >     >     > Does your system have system call setns?
>     >     >   
>     >     >     grep setns /proc/kallsyms
>     >     >     and
>     >     >     grep setns the config.log of libvirt.
>     >     >   
>     >     >
>     >     > Hi, Gaofeng, thanks for your help. The info you want are:
>     >     >
>     >    
>     >     Hi,
>     >    
>     >     > hzguanqiang@debian:~/github/libvirt$ <mailto:hzguanqiang@debian:~/github/libvirt$> sudo grep setns /var/log/libvirt/libvirtd.log
>     >    
>     >     config.log not libvirtd.log, or you can exec "./configure | grep setns" under libvirt source directory.
>     >    
>     >     > hzguanqiang@debian:~/github/libvirt$ <mailto:hzguanqiang@debian:~/github/libvirt$> grep setns /proc/kallsyms
>     >     > ffffffff8105b993 T sys_setns
>     >     >
>     >     > What I found really strange is that the error info returned by the command.
>     >     >     hzguanqiang@debian:~$ <mailto:hzguanqiang@debian:~$> vir lxc-enter-namespace 1544 --noseclabel /bin/df -hl
>     >     >     error: Cannot get namespaces for 1545: Function not implemented
>     >     > The instance id is 1544, but the error info hint cannot get ns for 1545.
>     >     >
>     >    
>     >     we have two libvirt lxc related process at the first start,
>     >     one is controller process on host(pid 1544), the other is the container's init task(pid 1545).
>     >     since lxc-enter-namespace wants to exec cmd in container environment. so
>     >     libvirt will try to get the namespaces of container's init task.
>     >    
>     >     The problem is libvirt/autoconf thinks your system doesn't support setns system call...
>     >    
>     >     > The libvirt code of mine is of version 1.1.4 from github (git checkout v1.1.4 -b stable1.1.4 )
>     >     >
>     >    
>     >     I don't know if the libvirt git repo on github is the right thing, but As I know
>     >     this repo git://libvirt.org/libvirt.git is official.
>     >    
>     >     Please have a try.
>     >    
>     >    
>     >     Thanks
>     >
>     >
>     > Sorry, I made a mistake about the libvirt repo, the code I used is just from the official repo.
>     > Maybe it's problem of my kernel. I've tried to build libvirt from code of master branch. The
>     > mistake is just the same.
>     >
>     
>     what's result of "./configure | grep setns"
>     
>
>
> The result is:
>   hzguanqiang@debian:~/github/libvirt$ <mailto:hzguanqiang@debian:~/github/libvirt$> ./configure | grep setns
>   checking for setns... no
> Is there something need to configure for setns system call? Or something is wrong with my kernel?
 
Seem your kernel has setns, but autoconf doesn't recognise it.
you can modify the config.h, change as below
#define HAVE_SETNS 1
and make && make install
 
Hi gaofeng,
I tried as you said, but it report an error when do make operation as following:
 
util/virprocess.c: In function 'virProcessSetNamespaces':
util/virprocess.c:568:9: error: implicit declaration of function 'setns' [-Werror=implicit-function-declaration]
util/virprocess.c:568:9: error: nested extern declaration of 'setns' [-Werror=nested-externs]
cc1: all warnings being treated as errors
make[3]: *** [util/libvirt_util_la-virprocess.lo] Error 1
 
I think something must be wrong about setns system call in my environment.
But still thanks very much for your help.
 
------------------    
Best regards!
GuanQiang
17:34:55
_______________________________________________
libvirt-users mailing list
libvirt-users@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvirt-users

[Index of Archives]     [Virt Tools]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Yosemite News]     [KDE Users]

  Powered by Linux