[CRIU] Dump and restore: restored process dies/exits

Róbert Kohányi kohanyi.robert at gmail.com
Mon Mar 16 20:10:22 MSK 2020


Sorry for the late reply. I appreciate your response, I'm not familiar with
podman (took a quick peek on what it is, seems interesting).
I've no time to further chase this, but I'll keep your advice in mind tho'.
I'll respond to this thread if I ever figure out the problem :)

Best,
Robert

On Wed, Mar 11, 2020 at 5:51 PM Adrian Reber <adrian at lisas.de> wrote:

> On Sat, Mar 07, 2020 at 10:27:07PM +0100, Róbert Kohányi wrote:
> > I'm doing a C/R of a Docker container running a NodeJS app making network
> > calls (like this: https://criu.org/Docker_External - I know it's
> > discouraged, please read on).
> >
> > I can successfully dump the process running in the container (the
> container
> > is stopped after this) and (seemingly) I can restore the process
> > successfully too (criu reports it that it was successful).
> >
> > When the restore is finished the process is started, but it exits/dies
> > immediately for some reason. I can see this because I log to file from
> the
> > NodeJS process itself and logging continue after the process gets
> restored
> > (I also listen for an 'exit' event on the NodeJS process and it exists
> with
> > code 1).
> >
> > What could be the problem? I can see that there's an Error message in the
> > restore.log (I've attached the dump and restore logs), but I can't make
> > sense of it, unfortunately. ("Error (criu/net.c:1241): Unknown peer net
> > namespace")
> >
> > I can do the same thing with docker checkpoint and docker start
> > --checkpoint and it works flawlessly. I do all of this in a virtual
> > environment, running Ubuntu 18.04 LTS (this box
> > <https://app.vagrantup.com/ubuntu/boxes/bionic64>). Docker version
> > 19.03.7, CRIU 3.13.
> >
> > Thanks for any input.
>
> That is an interesting problem. As it works with docker I guess you are
> not restoring something correctly which NodeJS relies on. Or checks
> during runtime. I would try to start docker with the host network
> namespace (if that is possible, --net=host in Podman) and then do an
> external checkpoint. If you restore it, it would be restored in the host
> network namespace. But that is just a guess. You could probably try to
> turn of as many namespaces as possible to see if you can do an external
> checkpoint and restore.
>
>                 Adrian
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvz.org/pipermail/criu/attachments/20200316/e85697af/attachment-0001.html>


More information about the CRIU mailing list