[CRIU] criu + threaded program + TCP_REPAIR
Sowmini Varadhan
sowmini05 at gmail.com
Mon Oct 13 08:11:03 PDT 2014
Hello,
I wanted to observe the TCP_REPAIR code in action, to get a better
understanding of it. So I tried the following in a qemu-kvm
env, but I'm running into some errors- not sure if I'm hitting something
that is not supported yet, or if I have some user-error.
1. Start the server in vm1.
server# nohup iperf -s &
2. start the client, and set up parameters so that it runs for a long time
client# iperf -c <srvaddr> -P 10 -t 900
3. Checkpoint the server
server# criu dump -D . -t 10186 --shell-job --tcp-established --shel-job
4. Add the server's address on dummy0 on the client
client# ip link add dummy0 type dummy
client# ip addr add <srvaddr> dev dummy0
5. Copy the checkpoint files over to the client (duplicate the dir structure)
and restore
client# criu restore -v4 --tree 10186 --images-dir /root/images \
--tcp-established --shell-job
I get the error
:
pie: Restoring EXE link
pie: Restoring scheduler params 0.0.0
pie: Restoring scheduler params 0.0.0
pie: Error (pie/restorer.c:351): Thread pid mismatch 10189/10188
pie: Restoring scheduler params 0.0.0
pie: Error (pie/restorer.c:392): Restorer abnormal termination for 101>
pie: 86
(00.138423) Error (cr-restore.c:1812): Restoring FAILED.
I suspect this is being triggered by the fact that iperf is threaded-
am I right? What't the correct way to get this to restore?
More information about the CRIU
mailing list