don't use wrong pagemap (from other task) on pid reuse

Submitted by Pavel Tikhomirov on Feb. 9, 2018, 4:06 p.m.

Details

Reviewer None
Submitted Feb. 9, 2018, 4:06 p.m.
Last Updated April 7, 2018, 6:19 a.m.
Revision 10

Cover Letter

https://jira.sw.ru/browse/PSBM-67502
https://jira.sw.ru/browse/PSBM-82864

v2: fix problems pointed out by Dmitry Safonov <0x7f454c46@gmail.com>
v3: fixes pointed out by Andrew Vagin <avagin@virtuozzo.com>
v4: move detection to separate function + minor improvements
v5-v7: handle parent's stats entry
v8: debuging for travis fail and couple of small fixes

v9: use inventory image instead of stats as stats are not designed to
hold restore critical data: revert old version so that new patches would
look cleaner, skip debugging patches as they are fine and leave
dump_uptime in stats file; also redo the pid-reuse to fix races.
v10: add bug-link, improve comment and add small fix for parse_uptime

Pavel Tikhomirov (10):
  Revert "memory: don't use parent memdump if detected possible pid
    reuse"
  Revert "stats: add a helper to get stats of parent pre-dump"
  Revert "stats: save uptime to know when dump had happened"
  Revert "parse: add a helper to obtain an uptime"
  parse: add a helper to obtain an uptime
  inventory: save uptime to know when dump had happened
  inventory: add a helper to get entry of parent pre-dump
  memory: don't use parent memdump if detected possible pid reuse
  zdtm/lib: add pre-dump-notify test flag
  zdtm: check that pid-reuse does not break iterative memory dump

 criu/cr-dump.c                      |  50 ++++++++--------
 criu/image.c                        |  48 +++++++++++++++
 criu/include/crtools.h              |   2 +
 criu/include/mem.h                  |   4 +-
 criu/include/proc_parse.h           |   2 +-
 criu/include/stats.h                |   6 --
 criu/mem.c                          |  35 +++++------
 criu/proc_parse.c                   |   7 ++-
 criu/stats.c                        |  53 ----------------
 images/inventory.proto              |   1 +
 test/zdtm.py                        |  27 +++++++++
 test/zdtm/lib/ns.c                  |   7 +++
 test/zdtm/lib/ns.h                  |   2 +
 test/zdtm/lib/test.c                | 100 +++++++++++++++++++++++++++++++
 test/zdtm/lib/zdtmtst.h             |   4 ++
 test/zdtm/transition/Makefile       |   1 +
 test/zdtm/transition/pid_reuse.c    | 116 ++++++++++++++++++++++++++++++++++++
 test/zdtm/transition/pid_reuse.desc |   1 +
 18 files changed, 356 insertions(+), 110 deletions(-)
 create mode 100644 test/zdtm/transition/pid_reuse.c
 create mode 100644 test/zdtm/transition/pid_reuse.desc
  

Revisions