On 11/14/2013 03:09 PM, hzguanqiang@corp.netease.com wrote:
> On 2013-11-14 15:03 , Gao feng
<mailto:gaofeng@cn.fujitsu.com> wrote:
>
> On 11/14/2013 02:57 PM,
hzguanqiang@corp.netease.com wrote:
> > On 2013-11-14 14:17 , Gao feng
<mailto:gaofeng@cn.fujitsu.com> wrote:
> >
> > On
11/14/2013 01:52 PM, hzguanqiang@corp.netease.com wrote:
> > > On
2013-11-14 13:41 , Gao feng <mailto:gaofeng@cn.fujitsu.com>
wrote:
> >
>
> >
> On 11/14/2013 01:24 PM, Gao feng
wrote:
> >
> > On 11/14/2013 10:59 AM,
hzguanqiang@corp.netease.com 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