[CRIU] [PATCH] cgroups: allow to execute fini_cgroups a few times

Andrew Vagin avagin at parallels.com
Thu Sep 4 05:31:17 PDT 2014


On Thu, Sep 04, 2014 at 04:22:08PM +0400, Pavel Emelyanov wrote:
> On 09/04/2014 04:21 PM, Andrey Vagin wrote:
> > It is called from prepare_cgroup_sfd() and cr_restore_tasks().
> 
> Can we implement in "don't call it two times" manner instead?

We can do anything. The question is why do we need this.

> 
> > + criu restore --file-locks --tcp-established --evasive-devices --link-remap --root /var/lib/vz/root/101 --restore-detached --action-script /usr/local/libexec/vzctl/scripts/vps-rst-env -D /vz/dump/Dump.101 -o restore.log -vvvv --pidfile /var/lib/vzctl/vepid/101
> > *** Error in `criu': double free or corruption (fasttop): 0x00000000006bcd40 ***
> > 
> > Program terminated with signal 6, Aborted.
> > Missing separate debuginfos, use: debuginfo-install glibc-2.17-20.fc19.x86_64 libgcc-4.8.3-1.fc19.x86_64 protobuf-c-0.15-7.fc19.x86_64
> > (gdb) bt
> >  #0  0x00007ffff72179e9 in raise () from /lib64/libc.so.6
> >  #1  0x00007ffff72190f8 in abort () from /lib64/libc.so.6
> >  #2  0x00007ffff7257d17 in __libc_message () from /lib64/libc.so.6
> >  #3  0x00007ffff725f0b8 in _int_free () from /lib64/libc.so.6
> >  #4  0x0000000000426971 in cr_restore_tasks () at cr-restore.c:1833
> >  #5  0x0000000000418426 in main (argc=<optimized out>, argv=0x7fffffffeb38, envp=<optimized out>) at crtools.c:479
> > 
> > Signed-off-by: Andrey Vagin <avagin at openvz.org>
> > ---
> >  cgroup.c | 1 +
> >  1 file changed, 1 insertion(+)
> > 
> > diff --git a/cgroup.c b/cgroup.c
> > index e76b295..1bc3ee8 100644
> > --- a/cgroup.c
> > +++ b/cgroup.c
> > @@ -999,6 +999,7 @@ void fini_cgroup(void)
> >  	umount2(cg_yard, MNT_DETACH);
> >  	rmdir(cg_yard);
> >  	xfree(cg_yard);
> > +	cg_yard = NULL;
> >  }
> >  
> >  static int restore_cgroup_prop(const CgroupPropEntry * cg_prop_entry_p,
> > 
> 


More information about the CRIU mailing list