[CRIU] [BUG] Opened /proc/pid directory of dead tasks fails restore
Tycho Andersen
tycho.andersen at canonical.com
Thu Dec 24 07:03:09 PST 2015
Hi Pavel,
On Dec 24, 2015 7:58 AM, "Pavel Emelyanov" <xemul at parallels.com> wrote:
>
> Hi, Tycho! Merry Christmas and happy New Year :) I have a present for you
;)
:D yep, I am on holiday for the next couple of weeks, but I will try to
send a patch as time permits. Merry Christmas to you guys as well :-)
Tycho
>
> If slightly modifying the remap_dead_pid test to make it open not
> /proc/pid/some file, but the /proc/pid/ directory itself, the restore
> fails with
>
> (00.002065) 77: Error (files-reg.c:1308): Can't open file proc/78
(deleted) on restore: No such file or directory
> (00.002068) 77: Error (files-reg.c:1251): Can't open file proc/78
(deleted): No such file or directory
>
> In the images dir the remap image is absent, that makes me think that
> the logic in check_path_remap() misses the /proc/pid directory for
> exited tasks.
>
> No hurry with this, would you take a look at the issue once time permits?
>
> Thanks!
>
> ---
> test/zdtm/live/static/Makefile | 2 ++
> test/zdtm/live/static/remap_dead_pid.c | 7 ++++++-
> test/zdtm/live/static/remap_dead_pid_dir.c | 1 +
> test/zdtm/live/static/remap_dead_pid_dir.desc | 1 +
> 4 files changed, 10 insertions(+), 1 deletion(-)
> create mode 120000 test/zdtm/live/static/remap_dead_pid_dir.c
> create mode 100644 test/zdtm/live/static/remap_dead_pid_dir.desc
>
> diff --git a/test/zdtm/live/static/Makefile
b/test/zdtm/live/static/Makefile
> index 42eea67..6add552 100644
> --- a/test/zdtm/live/static/Makefile
> +++ b/test/zdtm/live/static/Makefile
> @@ -132,6 +132,7 @@ TST_NOFILE = \
> dumpable01 \
> dumpable02 \
> remap_dead_pid \
> + remap_dead_pid_dir \
> aio00 \
> fd \
> apparmor \
> @@ -368,6 +369,7 @@ sk-freebind-false: override CFLAGS +=
-DZDTM_FREEBIND_FALSE
> stopped01: override CFLAGS += -DZDTM_STOPPED_KILL
> stopped02: override CFLAGS += -DZDTM_STOPPED_TKILL
> stopped12: override CFLAGS += -DZDTM_STOPPED_KILL
-DZDTM_STOPPED_TKILL
> +remap_dead_pid_dir: override CFLAGS += -DZDTM_PROC_DIR
>
> $(LIB): force
> $(Q) $(MAKE) -C $(LIBDIR)
> diff --git a/test/zdtm/live/static/remap_dead_pid.c
b/test/zdtm/live/static/remap_dead_pid.c
> index c16832d..08efd55 100644
> --- a/test/zdtm/live/static/remap_dead_pid.c
> +++ b/test/zdtm/live/static/remap_dead_pid.c
> @@ -40,9 +40,14 @@ int main(int argc, char **argv)
> char path[PATH_MAX];
> pid_t result;
>
> +#ifdef ZDTM_PROC_DIR
> + sprintf(path, "/proc/%d", pid);
> + fd = open(path, O_RDONLY | O_DIRECTORY);
> +#else
> sprintf(path, "/proc/%d/mountinfo", pid);
> -
> fd = open(path, O_RDONLY);
> +#endif
> +
>
> /* no matter what, we should kill the child */
> kill(pid, SIGKILL);
> diff --git a/test/zdtm/live/static/remap_dead_pid_dir.c
b/test/zdtm/live/static/remap_dead_pid_dir.c
> new file mode 120000
> index 0000000..3739fc7
> --- /dev/null
> +++ b/test/zdtm/live/static/remap_dead_pid_dir.c
> @@ -0,0 +1 @@
> +remap_dead_pid.c
> \ No newline at end of file
> diff --git a/test/zdtm/live/static/remap_dead_pid_dir.desc
b/test/zdtm/live/static/remap_dead_pid_dir.desc
> new file mode 100644
> index 0000000..63df42a
> --- /dev/null
> +++ b/test/zdtm/live/static/remap_dead_pid_dir.desc
> @@ -0,0 +1 @@
> +{'flavor': 'h'}
> --
> 1.9.3
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvz.org/pipermail/criu/attachments/20151224/226a4cfb/attachment-0001.html>
More information about the CRIU
mailing list