-
Notifications
You must be signed in to change notification settings - Fork 2.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Checkpoint fails with type NOTIFY errno 0 #1202
Comments
/cc @avagin |
It is the known issue. This container uses an "external" tty. |
The problem is that one end of a pty pair is used externally. You can look how we work with pipes in runc now and do the similar things for a console. It should not be hard. Unfortunately I don't have time for this now. |
Thanks, Will look into it and make a PR |
@kunalkushwaha I would wait for #1018 to be merged before touching any console code, just because that patch is very large and very annoying to keep up-to-date with master when people touch all of the various parts it touches. |
@keloyang #1018 has been merged now. I've just tested this and it no longer fails on the
Here is the relevant tail of the log:
|
I am able to reproduce this issue. Now it seems CRIU bug now. It is not able to mount /dev folder inside the and function |
@kunalkushwaha @cyphar Could you try out runc and criu from these repos: https://github.com/avagin/criu/tree/runc-console This is a draft version and it works for me: |
Now Docker creates a pty pair from a container devpts to use is as console. A slave tty is set as a control tty for the init process and bind-mounted into /dev/console. The master tty is handled externelly. Now CRIU can handle external resources, but here we have internal resources which are used externaly. opencontainers/runc#1202 Signed-off-by: Andrei Vagin <[email protected]>
If we can't create a temporary directory for a detached mount, we can clone a whole mount namespace, open a mount and release the created namespace. The result will be the same. https://jira.sw.ru/browse/PSBM-57135 opencontainers/runc#1202 Signed-off-by: Andrei Vagin <[email protected]>
@avagin I am still able to reproduce this issue.
runc from https://github.com/avagin/runc/tree/cr-console build hits cr-console/libcontainer/container_linux.go#L543 . So skipping this condition results in same issue. You can find config.json file for my container at https://gist.github.com/kunalkushwaha/c57b94660543c5a19d5a9f95b58c9093 Steps I followed are exactly as #1202 (comment) |
Now Docker creates a pty pair from a container devpts to use is as console. A slave tty is set as a control tty for the init process and bind-mounted into /dev/console. The master tty is handled externelly. Now CRIU can handle external resources, but here we have internal resources which are used externaly. opencontainers/runc#1202
If we can't create a temporary directory for a detached mount, we can clone a whole mount namespace, open a mount and release the created namespace. The result will be the same. https://jira.sw.ru/browse/PSBM-57135 opencontainers/runc#1202
Now Docker creates a pty pair from a container devpts to use is as console. A slave tty is set as a control tty for the init process and bind-mounted into /dev/console. The master tty is handled externelly. Now CRIU can handle external resources, but here we have internal resources which are used externaly. opencontainers/runc#1202
If we can't create a temporary directory for a detached mount, we can clone a whole mount namespace, open a mount and release the created namespace. The result will be the same. https://jira.sw.ru/browse/PSBM-57135 opencontainers/runc#1202
Now Docker creates a pty pair from a container devpts to use is as console. A slave tty is set as a control tty for the init process and bind-mounted into /dev/console. The master tty is handled externelly. Now CRIU can handle external resources, but here we have internal resources which are used externaly. opencontainers/runc#1202 Signed-off-by: Andrei Vagin <[email protected]>
If we can't create a temporary directory for a detached mount, we can clone a whole mount namespace, open a mount and release the created namespace. The result will be the same. https://jira.sw.ru/browse/PSBM-57135 opencontainers/runc#1202 Signed-off-by: Andrei Vagin <[email protected]>
@kunalkushwaha what criu do you use? Did you get it from my repo? |
Now Docker creates a pty pair from a container devpts to use is as console. A slave tty is set as a control tty for the init process and bind-mounted into /dev/console. The master tty is handled externelly. Now CRIU can handle external resources, but here we have internal resources which are used externaly. opencontainers/runc#1202
If we can't create a temporary directory for a detached mount, we can clone a whole mount namespace, open a mount and release the created namespace. The result will be the same. https://jira.sw.ru/browse/PSBM-57135 opencontainers/runc#1202
I didn't notice this part of your answer. You got the right criu.
It's very suspicious. I have never seen this error and I can't reproduce this issue with your config. I think runc can use a wrong criu. Could you update runc from my repo and try to reproduce the issue? Now the error will contain the current and required criu versions. If you are sure that the right criu is used, I need dump.log, restore.log and runc.log to investigate the issue. Thanks you for the time. |
Now Docker creates a pty pair from a container devpts to use is as console. A slave tty is set as a control tty for the init process and bind-mounted into /dev/console. The master tty is handled externelly. Now CRIU can handle external resources, but here we have internal resources which are used externaly. opencontainers/runc#1202 Signed-off-by: Andrei Vagin <[email protected]>
If we can't create a temporary directory for a detached mount, we can clone a whole mount namespace, open a mount and release the created namespace. The result will be the same. https://jira.sw.ru/browse/PSBM-57135 opencontainers/runc#1202 Signed-off-by: Andrei Vagin <[email protected]>
Now Docker creates a pty pair from a container devpts to use is as console. A slave tty is set as a control tty for the init process and bind-mounted into /dev/console. The master tty is handled externelly. Now CRIU can handle external resources, but here we have internal resources which are used externaly. opencontainers/runc#1202 Signed-off-by: Andrei Vagin <[email protected]>
If we can't create a temporary directory for a detached mount, we can clone a whole mount namespace, open a mount and release the created namespace. The result will be the same. https://jira.sw.ru/browse/PSBM-57135 opencontainers/runc#1202 Signed-off-by: Andrei Vagin <[email protected]>
If we can't create a temporary directory for a detached mount, we can clone a whole mount namespace, open a mount and release the created namespace. The result will be the same. https://jira.sw.ru/browse/PSBM-57135 opencontainers/runc#1202 Signed-off-by: Andrei Vagin <[email protected]>
Now Docker creates a pty pair from a container devpts to use is as console. A slave tty is set as a control tty for the init process and bind-mounted into /dev/console. The master tty is handled externelly. Now CRIU can handle external resources, but here we have internal resources which are used externaly. opencontainers/runc#1202 travis-ci: success for A few fixes to c/r a docker container with a console (rev3) Signed-off-by: Andrei Vagin <[email protected]> Signed-off-by: Pavel Emelyanov <[email protected]>
If we can't create a temporary directory for a detached mount, we can clone a whole mount namespace, open a mount and release the created namespace. The result will be the same. https://jira.sw.ru/browse/PSBM-57135 opencontainers/runc#1202 travis-ci: success for A few fixes to c/r a docker container with a console (rev3) Signed-off-by: Andrei Vagin <[email protected]> Signed-off-by: Pavel Emelyanov <[email protected]>
Now Docker creates a pty pair from a container devpts to use is as console. A slave tty is set as a control tty for the init process and bind-mounted into /dev/console. The master tty is handled externelly. Now CRIU can handle external resources, but here we have internal resources which are used externaly. opencontainers/runc#1202 travis-ci: success for A few fixes to c/r a docker container with a console (rev3) Signed-off-by: Andrei Vagin <[email protected]> Signed-off-by: Pavel Emelyanov <[email protected]>
If we can't create a temporary directory for a detached mount, we can clone a whole mount namespace, open a mount and release the created namespace. The result will be the same. https://jira.sw.ru/browse/PSBM-57135 opencontainers/runc#1202 travis-ci: success for A few fixes to c/r a docker container with a console (rev3) Signed-off-by: Andrei Vagin <[email protected]> Signed-off-by: Pavel Emelyanov <[email protected]>
Now Docker creates a pty pair from a container devpts to use is as console. A slave tty is set as a control tty for the init process and bind-mounted into /dev/console. The master tty is handled externelly. Now CRIU can handle external resources, but here we have internal resources which are used externaly. opencontainers/runc#1202 travis-ci: success for A few fixes to c/r a docker container with a console (rev3) Signed-off-by: Andrei Vagin <[email protected]> Signed-off-by: Pavel Emelyanov <[email protected]>
If we can't create a temporary directory for a detached mount, we can clone a whole mount namespace, open a mount and release the created namespace. The result will be the same. https://jira.sw.ru/browse/PSBM-57135 opencontainers/runc#1202 travis-ci: success for A few fixes to c/r a docker container with a console (rev3) Signed-off-by: Andrei Vagin <[email protected]> Signed-off-by: Pavel Emelyanov <[email protected]>
Now Docker creates a pty pair from a container devpts to use is as console. A slave tty is set as a control tty for the init process and bind-mounted into /dev/console. The master tty is handled externelly. Now CRIU can handle external resources, but here we have internal resources which are used externaly. opencontainers/runc#1202 travis-ci: success for A few fixes to c/r a docker container with a console (rev3) Signed-off-by: Andrei Vagin <[email protected]> Signed-off-by: Pavel Emelyanov <[email protected]>
If we can't create a temporary directory for a detached mount, we can clone a whole mount namespace, open a mount and release the created namespace. The result will be the same. https://jira.sw.ru/browse/PSBM-57135 opencontainers/runc#1202 travis-ci: success for A few fixes to c/r a docker container with a console (rev3) Signed-off-by: Andrei Vagin <[email protected]> Signed-off-by: Pavel Emelyanov <[email protected]>
System information
Steps to reproduce.
Log
I am able to reproduce this with ubuntu and redis container too.
The text was updated successfully, but these errors were encountered: