[CRIU] [PATCH v2] Add docker phaul driver

Pavel Emelyanov xemul at parallels.com
Wed Oct 21 08:35:49 PDT 2015


On 10/21/2015 05:58 PM, Hui Kang wrote:
> On Wed, Oct 21, 2015 at 10:42 AM, Hui Kang <hkang.sunysb at gmail.com> wrote:
>> On Wed, Oct 21, 2015 at 8:07 AM, Pavel Emelyanov <xemul at parallels.com> wrote:
>>> On 10/20/2015 07:53 PM, Hui Kang wrote:
>>>> Hi, Pavel,
>>>> I am able to remove more if htype.name() == "docker in the patch set 3
>>>>
>>>> https://lists.openvz.org/pipermail/criu/2015-October/022921.html
>>>>
>>>> Please see my inline reply. Another problem I met is that: after I
>>>> enable criu_conn to remove some "if htype.name() == "docker ", docker
>>>> migration and CPU validation suceeeds. However on the client side, I
>>>> got such error at end
>>>>
>>>> 16:17:39.250: Asking target host to restore
>>>> Error (cr-service.c:103): RPC error: Invalid req: Success
>>>> 16:17:41.555: CRIU RPC error (0/7)
>>>> Traceback (most recent call last):
>>>>   File "./p.haul", line 79, in <module>
>>>>     worker.start_migration()
>>>>   File "/root/development/p.haul/phaul/p_haul_iters.py", line 264, in
>>>> start_migration
>>>>     resp = self.criu_connection.ack_notify()
>>>>   File "/root/development/p.haul/phaul/criu_api.py", line 74, in ack_notify
>>>>     return self._recv_resp()
>>>>   File "/root/development/p.haul/phaul/criu_api.py", line 53, in _recv_resp
>>>>     raise Exception("CRIU RPC error (%d/%d)" % (resp.type, self._last_req))
>>>> Exception: CRIU RPC error (0/7)
>>>>
>>>> Could you help on this? Thanks.
>>>
>>> What's the gitid of the p.haul sources you use? I see no line 264
>>> in mine :) And -- what's in CRIU logs, it looks like some errors
>>> in notification handling.
>>
>> This is becuase the p.haul I am uisng is patched with changes for
>> docker; so it has line 264.
>>
>> I checked the log of criu daemon on source and destination. They are the same:
>>
>> # cat /log
>> (00.000170) The service socket is bound to /var/run/criu_service.socket
>> (00.000740) Waiting for connection...
>>
>> At first, I thought the log does not show any connection because the
>> docker driver will not make criu_req to the criu daemon. This may also
>> explain that why the notification handling fails.
>>
>> However, later I realized that the validate_cpu makes request to the
>> criu daemon. So I do not understand why the criulog does not show any
>> connection. Can you explain this? Thanks.
> 
> I observed self._swrk = subprocess.Popen([criu_binary, "swrk", "%d" %
> css[0].fileno()]) in criu_api.py. The p.haul will launch criu daemon
> itself.

This is initial fork of criu, the log file is then set up in per-command
manner.

> But then the question is where is the log file. Thanks.

Logs sit in the directory with images, by default (when criu conn was
used) it's /var/local/p.haul-fs/

-- Pavel


More information about the CRIU mailing list