checkpoint-restore / criu

Checkpoint/Restore tool
criu.org
Other
2.79k stars 565 forks source link

memfd: don't reopen file descriptors to restore memory mappings #2267

Closed avagin closed 9 months ago

codecov-commenter commented 10 months ago

Codecov Report

All modified lines are covered by tests :white_check_mark:

Comparison is base (1e4f5fb) 70.54% compared to head (4c5f3d0) 70.53%.

:exclamation: Current head 4c5f3d0 differs from pull request most recent head 6394fe4. Consider uploading reports for the commit 6394fe4 to get more accurate results

Additional details and impacted files ```diff @@ Coverage Diff @@ ## criu-dev #2267 +/- ## ============================================ - Coverage 70.54% 70.53% -0.01% ============================================ Files 133 132 -1 Lines 33522 33510 -12 ============================================ - Hits 23647 23637 -10 + Misses 9875 9873 -2 ``` | [Files](https://app.codecov.io/gh/checkpoint-restore/criu/pull/2267?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=checkpoint-restore) | Coverage Δ | | |---|---|---| | [criu/files-reg.c](https://app.codecov.io/gh/checkpoint-restore/criu/pull/2267?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=checkpoint-restore#diff-Y3JpdS9maWxlcy1yZWcuYw==) | `75.38% <100.00%> (ø)` | | | [criu/memfd.c](https://app.codecov.io/gh/checkpoint-restore/criu/pull/2267?src=pr&el=tree&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=checkpoint-restore#diff-Y3JpdS9tZW1mZC5j) | `82.38% <100.00%> (-0.40%)` | :arrow_down: | ... and [5 files with indirect coverage changes](https://app.codecov.io/gh/checkpoint-restore/criu/pull/2267/indirect-changes?src=pr&el=tree-more&utm_medium=referral&utm_source=github&utm_content=comment&utm_campaign=pr+comments&utm_term=checkpoint-restore)

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.

avagin commented 10 months ago

This change fixes false-positive warnings that are reported by many tests, because memfd-s are used to restore shared memory regions:

------------------------ ERROR OVER ------------------------
Run criu restore
=[log]=> dump/zdtm/static/sched_prio00/52/1/restore.log
------------------------ grep Error ------------------------
b'(00.003271)     53: No parent images directory provided'
b'(00.003277)     53: Opened local page read 3 (parent 0)'
b'(00.003278)     53: pr44632-3 Read 0 1 pages'
b'(00.003280)     53: \tpr44632-3 Read page from self 0/0'
b'(00.003316)     52: Warn  (criu/memfd.c:371): execveat(fd=5, ..., AT_EMPTY_PATH) might fail after restore; memfd id=3'
b'(00.003318)     54: Warn  (criu/memfd.c:371): execveat(fd=5, ..., AT_EMPTY_PATH) might fail after restore; memfd id=3'
b'(00.003325)     53: Restore via sigreturn'
b'(00.003326)     55: Warn  (criu/memfd.c:371): execveat(fd=5, ..., AT_EMPTY_PATH) might fail after restore; memfd id=3'
------------------------ ERROR OVER ------------------------
Send the 15 signal to  52
Wait for zdtm/static/sched_prio00(52) to die for 0.100000
Removing dump/zdtm/static/sched_prio00/52