{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":15999638,"defaultBranch":"criu-dev","name":"criu","ownerLogin":"checkpoint-restore","currentUserCanPush":false,"isFork":false,"isEmpty":false,"createdAt":"2014-01-17T12:53:25.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/32352560?v=4","public":true,"private":false,"isOrgOwned":true},"refInfo":{"name":"","listCacheKey":"v0:1701137324.0","currentOid":""},"activityList":{"items":[{"before":"9a19cf34de764e2ca77b8d5944a0ee26af79cd13","after":"a8cbe76d4f230273bb3cd51174d87b73bb5c1c26","ref":"refs/heads/master","pushedAt":"2024-09-19T22:23:42.000Z","pushType":"pr_merge","commitsCount":18,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"util: dump fsfd log messages\n\nIt should help to investigate errors of fsconfig, fsmount and etc.\n\nSigned-off-by: Andrei Vagin ","shortMessageHtmlLink":"util: dump fsfd log messages"}},{"before":"e4518382fabfffb6be86bf5cd449b58faea42a98","after":"1079a51f834cb3b52e0152b9d309cd67fa52cb01","ref":"refs/heads/criu-dev","pushedAt":"2024-09-19T07:59:33.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"util: dump fsfd log messages\n\nIt should help to investigate errors of fsconfig, fsmount and etc.\n\nSigned-off-by: Andrei Vagin ","shortMessageHtmlLink":"util: dump fsfd log messages"}},{"before":"655184757e4fcccc1a6cae1e9f2409a8154a0406","after":"e4518382fabfffb6be86bf5cd449b58faea42a98","ref":"refs/heads/criu-dev","pushedAt":"2024-09-17T06:16:35.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"plugins/amdgpu - Increase maximum parameter length\n\nThe topology parsing assumed that all parameter names were\n30 characters or fewer, but\n\nrecommended_sdma_engine_id_mask\n\nis 31 characters.\n\nMake the maximum length a macro, and set it to 64.\n\nSigned-off-by: David Francis ","shortMessageHtmlLink":"plugins/amdgpu - Increase maximum parameter length"}},{"before":"1190f10e5585854c163842b9a07f407ab370c9d9","after":"655184757e4fcccc1a6cae1e9f2409a8154a0406","ref":"refs/heads/criu-dev","pushedAt":"2024-09-15T18:30:24.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"plugin/cuda: disable CUDA plugin if /dev/nvidiactl isn't present\n\nThe presence of /dev/nvidiactl indicates that the system has a\ncompatible NVIDIA GPU driver installed and that the GPU is accessible to\nthe operating system.\n\nSigned-off-by: Andrei Vagin ","shortMessageHtmlLink":"plugin/cuda: disable CUDA plugin if /dev/nvidiactl isn't present"}},{"before":"e94c13c96ad9cba34f4f043d3fbd37530bd118fc","after":"1190f10e5585854c163842b9a07f407ab370c9d9","ref":"refs/heads/criu-dev","pushedAt":"2024-09-14T15:31:37.000Z","pushType":"pr_merge","commitsCount":2,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"fault: allow to check dont_use_freeze_cgroup\n\nAdds a new \"fault\" to call dont_use_freeze_cgroup.","shortMessageHtmlLink":"fault: allow to check dont_use_freeze_cgroup"}},{"before":"4ca4a0919e970f4409bbe2222e3187fb5ac3f6f1","after":"e94c13c96ad9cba34f4f043d3fbd37530bd118fc","ref":"refs/heads/criu-dev","pushedAt":"2024-09-12T16:19:31.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"codespell: fix typos\n\nThis patch fixes the following typos reported by codespell:\n\n./test/others/bers/bers.c:394: dependin ==> depending, depend in\n./criu/kerndat.c:837: hitted ==> hit\n\nSigned-off-by: Radostin Stoyanov ","shortMessageHtmlLink":"codespell: fix typos"}},{"before":"f8b14286b092853a4485813e1efd564109df9123","after":"9a19cf34de764e2ca77b8d5944a0ee26af79cd13","ref":"refs/heads/master","pushedAt":"2024-09-11T23:02:11.000Z","pushType":"pr_merge","commitsCount":110,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"scripts/ci: run tests with the mocked cuda-checkpoint tool\n\nSigned-off-by: Andrei Vagin ","shortMessageHtmlLink":"scripts/ci: run tests with the mocked cuda-checkpoint tool"}},{"before":"5a74eee5b0a073b63a7d9a28c946ac32ddb1ae74","after":"4ca4a0919e970f4409bbe2222e3187fb5ac3f6f1","ref":"refs/heads/criu-dev","pushedAt":"2024-08-18T06:23:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"scripts/uninstall_module: fix package discovery\n\nThe `uninstall_module.py` script is a wrapper for the `pip uninstall`\ncommand that enables support for specifying installation prefix\n(i.e., `--prefix`). When this functionality is used, we intentionally\nset `sys.path` to include only search paths for the specified prefix\nto avoid unintentional uninstallation of packages in system paths.\n\nSince `importlib_metadata` version 8.1.0, the `Distribution.from_name()`\nmethod has been modified [1] to perform additional pre-processing of\nDistribution objects [2] that requires loading distribution metadata\nand results in the following error:\n\n File \"/usr/local/lib/python3.12/site-packages/importlib_metadata/__init__.py\", line 422, in \n buckets = bucket(dists, lambda dist: bool(dist.metadata))\n ^^^^^^^^^^^^^\n File \"/usr/local/lib/python3.12/site-packages/importlib_metadata/__init__.py\", line 454, in metadata\n from . import _adapters\n File \"/usr/local/lib/python3.12/site-packages/importlib_metadata/_adapters.py\", line 3, in \n import email.message\n File \"/usr/lib64/python3.12/email/message.py\", line 11, in \n import quopri\n ModuleNotFoundError: No module named 'quopri'\n\nThis error occurs because we have excluded system paths from the list\nof search paths (`sys.path`).\n\nHowever, this pre-processing is not required for our use case, as we\nonly use the discovery mechanism of importlib_metadata to resolve the\nmetadata directory path of the module being uninstalled.\n\nTo fix this problem, this patch updates `uninstall_module` to avoid the\n`from_name()` method and use `discover(name=package_name)` directly.\n\n[1] https://github.com/python/importlib_metadata/commit/a65c29adc027b3615154cab73aaedd58a6aa23da\n[2] https://github.com/python/importlib_metadata/blob/a65c29ad/importlib_metadata/__init__.py#L391\n\nFixes: #2468\n\nSigned-off-by: Radostin Stoyanov ","shortMessageHtmlLink":"scripts/uninstall_module: fix package discovery"}},{"before":"5ba1f84f84aee77e009a509a9799a68fb206e1c1","after":"5a74eee5b0a073b63a7d9a28c946ac32ddb1ae74","ref":"refs/heads/criu-dev","pushedAt":"2024-08-17T08:06:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"cuda: unlock on timeout error\n\nWhen attempting to checkpoint a container with CUDA processes,\nCRIU could fail with the following error:\n\n\tError (criu/cr-dump.c:1791): Timeout reached. Try to interrupt: 1\n\tError (cuda_plugin.c:143): cuda_plugin: Unable to read output of cuda-checkpoint: Interrupted system call\n\tError (cuda_plugin.c:384): cuda_plugin: PAUSE_DEVICES failed with\n\nIn this situation, the target process is locked, but CRIU fails due to\na timeout and exits with an error. We need to make sure that the target\nPID is unlocked in such case.\n\nSigned-off-by: Radostin Stoyanov ","shortMessageHtmlLink":"cuda: unlock on timeout error"}},{"before":"011529826973e2717d709651d2ec91e0d65e3151","after":"5ba1f84f84aee77e009a509a9799a68fb206e1c1","ref":"refs/heads/criu-dev","pushedAt":"2024-08-16T16:24:35.000Z","pushType":"pr_merge","commitsCount":5,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"ci: run aarch64 tests native via actuated\n\nSigned-off-by: Adrian Reber ","shortMessageHtmlLink":"ci: run aarch64 tests native via actuated"}},{"before":"8fce2b1adcaabf2b478395cc6d0e18e0cc7d8fad","after":"011529826973e2717d709651d2ec91e0d65e3151","ref":"refs/heads/criu-dev","pushedAt":"2024-08-16T16:21:27.000Z","pushType":"pr_merge","commitsCount":4,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"plugins/amdgpu: fix printf format specifiers\n\nErrors on aarch64:\n\n\tIn file included from amdgpu_plugin_drm.h:10,\n\t\t\t from amdgpu_plugin.c:33:\n\tamdgpu_plugin.c: In function 'amdgpu_plugin_dump_file':\n\tamdgpu_plugin_util.h:24:20: error: format '%lld' expects argument of type 'long long int', but argument 6 has type '__u64' {aka 'long unsigned int'} [-Werror=format=]\n\t 24 | #define LOG_PREFIX \"amdgpu_plugin: \"\n\t | ^~~~~~~~~~~~~~~~~\n\t../../criu/include/log.h:47:52: note: in expansion of macro 'LOG_PREFIX'\n\t 47 | #define pr_info(fmt, ...) print_on_level(LOG_INFO, LOG_PREFIX fmt, ##__VA_ARGS__)\n\t | ^~~~~~~~~~\n\tamdgpu_plugin.c:1236:9: note: in expansion of macro 'pr_info'\n\t 1236 | pr_info(\"devices:%d bos:%d objects:%d priv_data:%lld\\n\", args.num_devices, args.num_bos, args.num_objects,\n\t | ^~~~~~~\n\tcc1: all warnings being treated as errors\n\nErrors on ppc64:\n\n\tIn file included from amdgpu_plugin_drm.h:10,\n\t\t\t from amdgpu_plugin.c:33:\n\tamdgpu_plugin.c: In function 'amdgpu_plugin_dump_file':\n\tamdgpu_plugin_util.h:24:20: error: format '%llu' expects argument of type 'long long unsigned int', but argument 6 has type '__u64' {aka 'long unsigned int'} [-Werror=format=]\n\t 24 | #define LOG_PREFIX \"amdgpu_plugin: \"\n\t | ^~~~~~~~~~~~~~~~~\n\t../../criu/include/log.h:47:52: note: in expansion of macro 'LOG_PREFIX'\n\t 47 | #define pr_info(fmt, ...) print_on_level(LOG_INFO, LOG_PREFIX fmt, ##__VA_ARGS__)\n\t | ^~~~~~~~~~\n\tamdgpu_plugin.c:1236:9: note: in expansion of macro 'pr_info'\n\t 1236 | pr_info(\"devices:%u bos:%u objects:%u priv_data:%llu\\n\",\n\t | ^~~~~~~\n\tcc1: all warnings being treated as errors\n\tIn file included from amdgpu_plugin_util.c:38:\n\tamdgpu_plugin_util.c: In function 'print_kfd_bo_stat':\n\tamdgpu_plugin_util.h:24:20: error: format '%llx' expects argument of type 'long long unsigned int', but argument 5 has type '__u64' {aka 'long unsigned int'} [-Werror=format=]\n\t 24 | #define LOG_PREFIX \"amdgpu_plugin: \"\n\t | ^~~~~~~~~~~~~~~~~\n\t../../criu/include/log.h:47:52: note: in expansion of macro 'LOG_PREFIX'\n\t 47 | #define pr_info(fmt, ...) print_on_level(LOG_INFO, LOG_PREFIX fmt, ##__VA_ARGS__)\n\t | ^~~~~~~~~~\n\tamdgpu_plugin_util.c:196:17: note: in expansion of macro 'pr_info'\n\t 196 | pr_info(\"%s(), %d. KFD BO Addr: %llx \\n\", __func__, idx, bo->addr);\n\t | ^~~~~~~\n\tamdgpu_plugin_util.h:24:20: error: format '%llx' expects argument of type 'long long unsigned int', but argument 5 has type '__u64' {aka 'long unsigned int'} [-Werror=format=]\n\t 24 | #define LOG_PREFIX \"amdgpu_plugin: \"\n\t | ^~~~~~~~~~~~~~~~~\n\t../../criu/include/log.h:47:52: note: in expansion of macro 'LOG_PREFIX'\n\t 47 | #define pr_info(fmt, ...) print_on_level(LOG_INFO, LOG_PREFIX fmt, ##__VA_ARGS__)\n\t | ^~~~~~~~~~\n\tamdgpu_plugin_util.c:197:17: note: in expansion of macro 'pr_info'\n\t 197 | pr_info(\"%s(), %d. KFD BO Size: %llx \\n\", __func__, idx, bo->size);\n\t | ^~~~~~~\n\tamdgpu_plugin_util.h:24:20: error: format '%llx' expects argument of type 'long long unsigned int', but argument 5 has type '__u64' {aka 'long unsigned int'} [-Werror=format=]\n\t 24 | #define LOG_PREFIX \"amdgpu_plugin: \"\n\t | ^~~~~~~~~~~~~~~~~\n\t../../criu/include/log.h:47:52: note: in expansion of macro 'LOG_PREFIX'\n\t 47 | #define pr_info(fmt, ...) print_on_level(LOG_INFO, LOG_PREFIX fmt, ##__VA_ARGS__)\n\t | ^~~~~~~~~~\n\tamdgpu_plugin_util.c:198:17: note: in expansion of macro 'pr_info'\n\t 198 | pr_info(\"%s(), %d. KFD BO Offset: %llx \\n\", __func__, idx, bo->offset);\n\t | ^~~~~~~\n\tamdgpu_plugin_util.h:24:20: error: format '%llx' expects argument of type 'long long unsigned int', but argument 5 has type '__u64' {aka 'long unsigned int'} [-Werror=format=]\n\t 24 | #define LOG_PREFIX \"amdgpu_plugin: \"\n\t | ^~~~~~~~~~~~~~~~~\n\t../../criu/include/log.h:47:52: note: in expansion of macro 'LOG_PREFIX'\n\t 47 | #define pr_info(fmt, ...) print_on_level(LOG_INFO, LOG_PREFIX fmt, ##__VA_ARGS__)\n\t | ^~~~~~~~~~\n\tamdgpu_plugin_util.c:199:17: note: in expansion of macro 'pr_info'\n\t 199 | pr_info(\"%s(), %d. KFD BO Restored Offset: %llx \\n\", __func__, idx, bo->restored_offset);\n\t | ^~~~~~~\n\tcc1: all warnings being treated as errors\n\nCo-developed-by: Andrei Vagin \nSigned-off-by: Radostin Stoyanov ","shortMessageHtmlLink":"plugins/amdgpu: fix printf format specifiers"}},{"before":"6d4eeb75a711625f8b34cfe660bae9f032dd7741","after":"8fce2b1adcaabf2b478395cc6d0e18e0cc7d8fad","ref":"refs/heads/criu-dev","pushedAt":"2024-08-16T16:20:25.000Z","pushType":"pr_merge","commitsCount":3,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"scripts/ci: run tests with the mocked cuda-checkpoint tool\n\nSigned-off-by: Andrei Vagin ","shortMessageHtmlLink":"scripts/ci: run tests with the mocked cuda-checkpoint tool"}},{"before":"8cf9722a1c94b7107b0934426cc352a49955e53e","after":"6d4eeb75a711625f8b34cfe660bae9f032dd7741","ref":"refs/heads/criu-dev","pushedAt":"2024-08-15T17:48:10.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"support user set remote mmap vma address\n\n1. os auto assignment vma addr maybe conflict with vma in gpu living migrate scene;\n2. so, we should give choice to user;\n\nSigned-off-by: haozi007 ","shortMessageHtmlLink":"support user set remote mmap vma address"}},{"before":"919de60cfac8c10af502cf8dd1a7131c756f18c1","after":"8cf9722a1c94b7107b0934426cc352a49955e53e","ref":"refs/heads/criu-dev","pushedAt":"2024-08-12T18:17:05.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"timer: fix printf specifiers for __suseconds64_t\n\nNew internal glibc types __timeval64 [1] and __suseconds64_t [2] have\nbeen introduced as a solution for the Y2038 problem [3]. These 64-bit\ntypes are used across all architectures. However, this change causes\nthe following build errors when cross-compiling on ARMv7 (armhf):\n\ncriu/timer.c:49:17: error: format '%ld' expects argument of type 'long int', but argument 5 has type '__suseconds64_t' {aka 'long long int'} [-Werror=format=]\n 49 | pr_info(\"Restored %s timer to %\" PRId64 \".%ld -> %\" PRId64 \".%ld\\n\", n,\n | ^~~~~~~~~~~~~~~~~~~~~~~~\n 50 | (int64_t)val->it_value.tv_sec, val->it_value.tv_usec,\n | ~~~~~~~~~~~~~~~~~~~~~\n | |\n | __suseconds64_t {aka long long int}\n\ncriu/timer.c:49:17: error: format '%ld' expects argument of type 'long int', but argument 7 has type '__suseconds64_t' {aka 'long long int'} [-Werror=format=]\n 49 | pr_info(\"Restored %s timer to %\" PRId64 \".%ld -> %\" PRId64 \".%ld\\n\", n,\n | ^~~~~~~~~~~~~~~~~~~~~~~~\n 50 | (int64_t)val->it_value.tv_sec, val->it_value.tv_usec,\n 51 | (int64_t)val->it_interval.tv_sec, val->it_interval.tv_usec);\n | ~~~~~~~~~~~~~~~~~~~~~~~~\n | |\n | __suseconds64_t {aka long long int}\n\nns.c:234:48: error: format '%ld' expects argument of type 'long int', but argument 5 has type 'time_t' {aka 'long long int'} [-Werror=format=]\n 234 | len = snprintf(buf, sizeof(buf), \"%d %ld 0\", clk_id, offset);\n | ~~^ ~~~~~~\n | | |\n | long int time_t {aka long long int}\n | %lld\n\nmsg.c:58:41: error: format '%ld' expects argument of type 'long int', but argument 3 has type '__suseconds64_t' {aka 'long long int'} [-Werror=format=]\n 58 | off += sprintf(buf + off, \".%.3ld: \", tv.tv_usec / 1000);\n | ~~~~^ ~~~~~~~~~~~~~~~~~\n | | |\n | long int __suseconds64_t {aka long long int}\n | %.3lld\n\n../lib/zdtmtst.h:137:26: error: format '%ld' expects argument of type 'long int', but argument 4 has type '__time64_t' {aka 'long long int'} [-Werror=format=]\n 137 | test_msg(\"ERR: %s:%d: \" format \" (errno = %d (%s))\\n\", __FILE__, __LINE__, ##arg, errno, \\\n | ^~~~~~~~~~~~~~\npthread_timers_h.c:72:17: note: in expansion of macro 'pr_perror'\n 72 | pr_perror(\"wrong interval: %ld:%ld\", itimerspec.it_interval.tv_sec, itimerspec.it_interval.tv_nsec);\n | ^~~~~~~~~\n\nvdso00.c:22:32: error: format '%li' expects argument of type 'long int', but argument 3 has type '__time64_t' {aka 'long long int'} [-Werror=format=]\n 22 | test_msg(\"%d time: %10li\\n\", getpid(), tv.tv_sec);\n | ~~~~^ ~~~~~~~~~\n | | |\n | long int __time64_t {aka long long int}\n | %10lli\n\nvdso00.c:29:32: error: format '%li' expects argument of type 'long int', but argument 3 has type '__time64_t' {aka 'long long int'} [-Werror=format=]\n 29 | test_msg(\"%d time: %10li\\n\", getpid(), tv.tv_sec);\n | ~~~~^ ~~~~~~~~~\n | | |\n | long int __time64_t {aka long long int}\n | %10lli\n\nvdso01.c:357:42: error: format '%li' expects argument of type 'long int', but argument 2 has type '__time64_t' {aka 'long long int'} [-Werror=format=]\n 357 | test_msg(\"gettimeofday: tv_sec %li vdso_gettimeofday: tv_sec %li\\n\", tv1.tv_sec, tv2.tv_sec);\n | ~~^ ~~~~~~~~~~\n | | |\n | long int __time64_t {aka long long int}\n | %lli\n\nvdso01.c:357:72: error: format '%li' expects argument of type 'long int', but argument 3 has type '__time64_t' {aka 'long long int'} [-Werror=format=]\n 357 | test_msg(\"gettimeofday: tv_sec %li vdso_gettimeofday: tv_sec %li\\n\", tv1.tv_sec, tv2.tv_sec);\n | ~~^ ~~~~~~~~~~\n | | |\n | long int __time64_t {aka long long int}\n |\n\nvdso01.c:328:43: error: format '%li' expects argument of type 'long int', but argument 2 has type '__time64_t' {aka 'long long int'} [-Werror=format=]\n 328 | test_msg(\"clock_gettime: tv_sec %li vdso_clock_gettime: tv_sec %li\\n\", ts1.tv_sec, ts2.tv_sec);\n | ~~^ ~~~~~~~~~~\n | | |\n | long int __time64_t {aka long long int}\n | %lli\n\nvdso01.c:328:74: error: format '%li' expects argument of type 'long int', but argument 3 has type '__time64_t' {aka 'long long int'} [-Werror=format=]\n 328 | test_msg(\"clock_gettime: tv_sec %li vdso_clock_gettime: tv_sec %li\\n\", ts1.tv_sec, ts2.tv_sec);\n | ~~^ ~~~~~~~~~~\n | | |\n | long int __time64_t {aka long long int}\n |\n\n../lib/zdtmtst.h:144:26: error: format '%ld' expects argument of type 'long int', but argument 4 has type 'time_t' {aka 'long long int'} [-Werror=format=]\n 144 | test_msg(\"FAIL: %s:%d: \" format \" (errno = %d (%s))\\n\", __FILE__, __LINE__, ##arg, errno, \\\n | ^~~~~~~~~~~~~~~\nmtime_mmap.c:80:17: note: in expansion of macro 'fail'\n 80 | fail(\"mtime %ld wasn't updated on mmapped %s file\", mtime_new, filename);\n | ^~~~\n\n../lib/zdtmtst.h:144:26: error: format '%ld' expects argument of type 'long int', but argument 4 has type '__time64_t' {aka 'long long int'} [-Werror=format=]\n 144 | test_msg(\"FAIL: %s:%d: \" format \" (errno = %d (%s))\\n\", __FILE__, __LINE__, ##arg, errno, \\\n | ^~~~~~~~~~~~~~~\nmtime_mmap.c:101:17: note: in expansion of macro 'fail'\n 101 | fail(\"After migration, mtime changed to %ld\", fst.st_mtime);\n | ^~~~\n\n[1] https://sourceware.org/git/?p=glibc.git;h=504c98717062cb9bcbd4b3e59e932d04331ddca5\n[2] https://sourceware.org/git/?p=glibc.git;h=3fced064f23562ec24f8312ffbc14950993969e6\n[3] https://en.wikipedia.org/wiki/Year_2038_problem\n\nSigned-off-by: Radostin Stoyanov ","shortMessageHtmlLink":"timer: fix printf specifiers for __suseconds64_t"}},{"before":"b7f6b723d994811e52c4a9c25639c09e3cfe9585","after":"919de60cfac8c10af502cf8dd1a7131c756f18c1","ref":"refs/heads/criu-dev","pushedAt":"2024-08-12T17:40:48.000Z","pushType":"pr_merge","commitsCount":6,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"ci: run tests with amdgpu and cuda plugins\n\nSigned-off-by: Radostin Stoyanov ","shortMessageHtmlLink":"ci: run tests with amdgpu and cuda plugins"}},{"before":"c4ba553d2e963c3578daaae46ad9b494b2c0d822","after":"b7f6b723d994811e52c4a9c25639c09e3cfe9585","ref":"refs/heads/criu-dev","pushedAt":"2024-08-09T21:13:12.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"delete redundant include header files \n\nrestorer.h has been included in line 43.\r\n\r\nFixes: 22963d282729 (\"Hide asm/restorer.h from sources\")\r\n\r\nSigned-off-by: liuchao173 ","shortMessageHtmlLink":"delete redundant include header files"}},{"before":"7a274270316c71051af673bbf01acdc53ba0f168","after":"c4ba553d2e963c3578daaae46ad9b494b2c0d822","ref":"refs/heads/criu-dev","pushedAt":"2024-08-07T11:11:29.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"plugin: enable multiple plugins for the same hook\n\nCRIU provides two plugins for checkpoint/restore of GPU applications:\namdgpu and cuda. Both plugins use the `RESUME_DEVICES_LATE` hook to\nenable restore:\n\n CR_PLUGIN_REGISTER_HOOK(CR_PLUGIN_HOOK__RESUME_DEVICES_LATE, amdgpu_plugin_resume_devices_late)\n CR_PLUGIN_REGISTER_HOOK(CR_PLUGIN_HOOK__RESUME_DEVICES_LATE, cuda_plugin_resume_devices_late)\n\nHowever, CRIU currently does not support running more than one plugin\nfor the same hook. As a result, when both plugins are installed, the\nresume function for CUDA applications is not executed. To fix this,\nwe need to make sure that both `plugin_resume_devices_late()` functions\nreturn `-ENOTSUP` when restore is not supported.\n\nSigned-off-by: Radostin Stoyanov ","shortMessageHtmlLink":"plugin: enable multiple plugins for the same hook"}},{"before":"93746eb25014f21287f2edc5f5dd7545ce19ab52","after":"7a274270316c71051af673bbf01acdc53ba0f168","ref":"refs/heads/criu-dev","pushedAt":"2024-08-07T11:05:55.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"seize: fix pause-devices plugin hook\n\nThe plugin hook \"PAUSE_DEVICES\" was recently introduced in the following\ncommit. This hook was intended to execute the cuda-checkpoint tool\nbefore the process tree is frozen. However, the run_plugins() call has\nbeen placed immediately *after* freeze_processes(). This causes the\ncuda-checkpoint tool to hang indefinitely during the checkpointing\nof CUDA applications running in containers, eventually leading to its\ntermination by the timeout alarm.\n\na85f488595e0a3a6e6cc6ca7c94d4a00b1341aaf\ncriu/plugin: Introduce new plugin hooks PAUSE_DEVICES and CHECKPOINT_DEVICES to be used during pstree collection\n\nThis problem can be reproduced with the following example:\n\nsudo podman run -d --rm \\\n --device nvidia.com/gpu=all --security-opt=label=disable \\\n quay.io/radostin/cuda-counter\n\nsudo podman container checkpoint -l -e /tmp/checkpoint.tar\n\nSigned-off-by: Radostin Stoyanov ","shortMessageHtmlLink":"seize: fix pause-devices plugin hook"}},{"before":"8b04dd661f222a5a348a1cd20114b2f5124a4359","after":"93746eb25014f21287f2edc5f5dd7545ce19ab52","ref":"refs/heads/criu-dev","pushedAt":"2024-07-22T14:44:48.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"test/zdtm: mount a new tmpfs to the zdtm root /dev\n\nThe current file system can be mounted with nodev.\n\nFixes #2441\n\nSigned-off-by: Andrei Vagin ","shortMessageHtmlLink":"test/zdtm: mount a new tmpfs to the zdtm root /dev"}},{"before":"1b3ba301f9874eb20addf65304283f717ef8d515","after":"8b04dd661f222a5a348a1cd20114b2f5124a4359","ref":"refs/heads/criu-dev","pushedAt":"2024-07-19T15:03:56.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"plugins: set executable bit on .so files\n\nFor historical reasons, some tools like rpm [1] or ldd [2,3]\nmay expect the executable bit to be present for the correct\nidentification of shared libraries. The executable bit on .so\nfiles is set by default by compilers (e.g., GCC). It is not\nstrictly necessary but primarily a convention.\n\n[1] https://docs.fedoraproject.org/en-US/package-maintainers/CommonRpmlintIssues/#unstripped_binary_or_object\n[2] https://sourceware.org/git/?p=glibc.git;a=blob;f=elf/ldd.bash.in;h=d6b640df;hb=HEAD#l154\n\n[3] $ sudo ldd /usr/lib/criu/*.so\n/usr/lib/criu/amdgpu_plugin.so:\nldd: warning: you do not have execution permission for `/usr/lib/criu/amdgpu_plugin.so'\n\tlinux-vdso.so.1 (0x00007fd0a2a3e000)\n\tlibdrm.so.2 => /lib64/libdrm.so.2 (0x00007fd0a29eb000)\n\tlibdrm_amdgpu.so.1 => /lib64/libdrm_amdgpu.so.1 (0x00007fd0a29de000)\n\tlibc.so.6 => /lib64/libc.so.6 (0x00007fd0a27fc000)\n\t/lib64/ld-linux-x86-64.so.2 (0x00007fd0a2a40000)\n/usr/lib/criu/cuda_plugin.so:\nldd: warning: you do not have execution permission for `/usr/lib/criu/cuda_plugin.so'\n\tlinux-vdso.so.1 (0x00007f1806e13000)\n\tlibc.so.6 => /lib64/libc.so.6 (0x00007f1806c08000)\n\t/lib64/ld-linux-x86-64.so.2 (0x00007f1806e15000)\n\nSigned-off-by: Radostin Stoyanov ","shortMessageHtmlLink":"plugins: set executable bit on .so files"}},{"before":"5c3f6217f44acf1edec57a8abf4edcb624accd6f","after":"1b3ba301f9874eb20addf65304283f717ef8d515","ref":"refs/heads/criu-dev","pushedAt":"2024-07-19T01:17:32.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"docs: update amdgpu-plugin man page\n\nThis patch updates the dependencies section of the AMDGPU plugin man\npage to reflect that the plugin has been merged upstream and to fix a\nformatting issue.\n\nSigned-off-by: Radostin Stoyanov ","shortMessageHtmlLink":"docs: update amdgpu-plugin man page"}},{"before":"c2f9f900a94cbfefda9385f7dd1b757b226bbaa2","after":"5c3f6217f44acf1edec57a8abf4edcb624accd6f","ref":"refs/heads/criu-dev","pushedAt":"2024-07-17T15:27:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"Adjust to glibc __rseq_size semantic change\n\nIn commit 2e456ccf0c34a056e3ccafac4a0c7effef14d918 (\"Linux: Make\n__rseq_size useful for feature detection (bug 31965)\") glibc 2.40\nchanged the meaning of __rseq_size slightly: it is now the size\nof the active/feature area (20 bytes initially), and not the size\nof the entire initially defined struct (32 bytes including padding).\nThe reason for the change is that the size including padding does not\nallow detection of newly added features while previously unused\npadding is consumed.\n\nThe prep_libc_rseq_info change in criu/cr-restore.c is not necessary\non kernels which have full ptrace support for obtaining rseq\ninformation because the code is not used. On older kernels, it is\na correctness fix because with size 20 (the new value), rseq\nregisteration would fail.\n\nThe two other changes are required to make rseq unregistration work\nin tests.\n\nSigned-off-by: Florian Weimer ","shortMessageHtmlLink":"Adjust to glibc __rseq_size semantic change"}},{"before":"dcb577b0dcfa8d6ef4bc744d2343fecb18f31d8b","after":"c2f9f900a94cbfefda9385f7dd1b757b226bbaa2","ref":"refs/heads/criu-dev","pushedAt":"2024-07-14T05:50:39.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"zdtm: make cgroup testcases run non-parallel\n\ncgroup testcases live in the same cgroup root zdtmtst and\nzdtmtst.defaultroot controller then create child subgroup for testing. This\ncan cause problems when cgroup testcases run in parallel. For example,\ntestcase A dumps the child subgroup of testcase B since it's in the cgroup\nroot but in the middle of restoring of testcase A, testcase B completes and\ncleans up the subgroup directory. This causes error in testcase A restore.\nThis commit adds excl flag to all cgroup testcases description so that\nthese don't run parallel.\n\nSigned-off-by: Bui Quang Minh ","shortMessageHtmlLink":"zdtm: make cgroup testcases run non-parallel"}},{"before":"116c689da324ebce110871642010b5c7f34d836e","after":"dcb577b0dcfa8d6ef4bc744d2343fecb18f31d8b","ref":"refs/heads/criu-dev","pushedAt":"2024-07-13T22:01:06.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"util: use close_range when it's supported\n\nclose_range is faster than reading /proc/self/fd and closing descriptors\none by one.\n\nSigned-off-by: Andrei Vagin ","shortMessageHtmlLink":"util: use close_range when it's supported"}},{"before":"6f92787b7f38c13523b959477697fa6b12a383ca","after":"116c689da324ebce110871642010b5c7f34d836e","ref":"refs/heads/criu-dev","pushedAt":"2024-07-07T20:50:02.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"scripts/build: drop centos 7 targets\n\nThe CI tests with CentOS 7 have been disabled and removed [1,2].\nThis patch removes the obsolete Makefile targets for these tests.\n\n[1] https://github.com/checkpoint-restore/criu/commit/24bc083653f7d2b984653194e921b1ff32292b3b\n[2] https://github.com/checkpoint-restore/criu/commit/f8466ca798acd124eebbba2655894ebd2f777879\n\nSigned-off-by: Radostin Stoyanov ","shortMessageHtmlLink":"scripts/build: drop centos 7 targets"}},{"before":"c6c83f1fec574ed15a7200ddbaeb9bf3092293c5","after":"6f92787b7f38c13523b959477697fa6b12a383ca","ref":"refs/heads/criu-dev","pushedAt":"2024-07-03T21:37:11.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"vdso: proxify the __vdso_clock_gettime64 function\n\nIt was added in v5.3-rc1~211^2~4^2~10.\n\nFixes #2390\n\nSigned-off-by: Andrei Vagin ","shortMessageHtmlLink":"vdso: proxify the __vdso_clock_gettime64 function"}},{"before":"c2f101a2c962804042b0b9d83489f92b8675d377","after":"c6c83f1fec574ed15a7200ddbaeb9bf3092293c5","ref":"refs/heads/criu-dev","pushedAt":"2024-07-03T16:39:37.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"rst0git","name":"Radostin Stoyanov","path":"/rst0git","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/9142901?s=80&v=4"},"commit":{"message":"apparmor: get_suspend_policy must return NULL in error cases\n\nBefore this fix, it could return MAP_FAILED which is ((void *) -1).\n\nSigned-off-by: Andrei Vagin ","shortMessageHtmlLink":"apparmor: get_suspend_policy must return NULL in error cases"}},{"before":"fac8d640aa040624d9c371ec2be1df32fb57f42e","after":"c2f101a2c962804042b0b9d83489f92b8675d377","ref":"refs/heads/criu-dev","pushedAt":"2024-07-03T15:11:13.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"cgroupd: unblock SIGTERM to make stop_cgroupd actually work\n\nSometimes due to sigblockmask inheritance cgroupd can inherit SIGTERM\nblocked. That will lead cgroupd ignoring SIGTERM from stop_cgroupd() and\nCRIU will get stuck due to waiting for never-stopping cgroupd.\n\nI see this happening in lxc-checkpoint, also saw this in OpenVZ jenkins\non cgroup_inotify00 test.\n\nSigned-off-by: Pavel Tikhomirov ","shortMessageHtmlLink":"cgroupd: unblock SIGTERM to make stop_cgroupd actually work"}},{"before":"0a725b899f8d1b2088624e9bf44b1a2eae78b949","after":"fac8d640aa040624d9c371ec2be1df32fb57f42e","ref":"refs/heads/criu-dev","pushedAt":"2024-07-02T23:16:30.000Z","pushType":"push","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"irmap: duplicate string in irmap_scan_path_add\n\nDuplicate string in irmap_scan_path_add, otherwise it will free before\nparsing next configuration input.\n\n[ avagin: handle errors of xstrdup ]\n\nSigned-off-by: Liu Hua \nSigned-off-by: Andrei Vagin ","shortMessageHtmlLink":"irmap: duplicate string in irmap_scan_path_add"}},{"before":"a11e944996d4a71ed275cc12bd6eefa795015100","after":"0a725b899f8d1b2088624e9bf44b1a2eae78b949","ref":"refs/heads/criu-dev","pushedAt":"2024-07-02T18:05:47.000Z","pushType":"pr_merge","commitsCount":1,"pusher":{"login":"avagin","name":"Andrei Vagin","path":"/avagin","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/1049830?s=80&v=4"},"commit":{"message":"plugins/cuda: fix crosscompilation\n\nSigned-off-by: Andrei Vagin ","shortMessageHtmlLink":"plugins/cuda: fix crosscompilation"}}],"hasNextPage":true,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"cursor":"djE6ks8AAAAEu15RHAA","startCursor":null,"endCursor":null}},"title":"Activity ยท checkpoint-restore/criu"}