<div dir="ltr"><div>Hi Pavel,</div><div><br></div><div>I have run into a problem when restoring a process that was running in a Docker container when Docker home is bind mounted from a different device.</div><div><br></div>
<div>As you know, it is possible to successfully dump and restore Docker container processes.  But when /var/lib/docker is bind mounted from a different device (e.g., mount /dev/sd3a /mnt/sd3a; mkdir /mnt/sda3/docker; mount --bind /mnt/sda3/docker /var/lib/docker), dump succeeds but restore fails.</div>
<div><br></div><div>For easier testing and debugging, I have reproduced the problem with a couple of small shell scripts that I have attached here. These are the same shell scripts that I used during external bind mount troubleshooting.  I just changed them a bit to illustrate the problem I am currently running into.  If you run ./z1.sh without the bindmount argument, everything works fine.  But if you specify bindmount, it bind mounts its root from a different device (a tmpfs in this case), dump succeeds but restore fails.  I hope it&#39;s not an error on my part.</div>
<div><br></div><div>I have been using the latest greatest criu binary from the head.  Please let me know once you&#39;ve had a chance to try this.</div><div><br></div><div>Thanks,</div><div><br></div><div>--Saied</div><div>
<br></div><div><br></div>On Terminal A:<div><br></div><div># ./z1.sh bindroot</div><div>...</div><div><div>pid=1950 0</div><div>pid=1950 1</div><div>pid=1950 2</div></div><div><br></div><div>On Terminal B:</div><div><br></div>
<div><div># criu dump -D img -o dump.log -v4 -j -n mnt -n pid -t 1950 --ext-mount-map /int_file1:/int_file1 --ext-mount-map /int_file2:/int_file2</div><div>(00.037567) Dumping finished successfully</div></div><div>#</div>
<div><br></div><div># mount --rbind /var/lib/foo/root /var/lib/foo/root</div><div># criu restore -D img -o restore.log -v4 -j -n mnt -n pid -d --root /var/lib/foo/root --ext-mount-map /int_file1:/var/lib/foo/ext/ext_file1 --ext-mount-map /int_file2:/etc/ext_file2</div>
<div>(00.004764)   1950: Error (mount.c:1100): A few mount points can&#39;t be mounted(00.004772)   1950: Error (mount.c:1104): 73:71 /etc/ext_file2 ./int_file2 /dev/disk/by-uuid/4873b275-1139-4199-9841-fbba6432f30d</div>
<div>(00.021963) Error (cr-restore.c:1054): 1950 exited, status=1</div><div>(00.021992) Error (cr-restore.c:1662): Restoring FAILED.</div><div># </div></div>