mirror of
https://github.com/checkpoint-restore/criu
synced 2025-08-31 06:15:24 +00:00
148929d6d92e919d42d4b079a46ff9f2eae5e694
ASan doesn't play nicely with clone if we use current stack for child task. ASan puts local variables on the fake stack to catch use-after-return bug: https://github.com/google/sanitizers/wiki/AddressSanitizerUseAfterReturn#algorithm So it's become easy to overflow this fake stack frame in cloned child. We need a real stack for clone(). To workaround this we add clone_noasan() not-instrumented wrapper for clone(). Unfortunately we can't use __attrbute__((no_sanitize_addresss)) for this because of bug in GCC > 6: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69863 So the only way is to put this wrapper in separate non-instrumented file. travis-ci: success for series starting with [1/6] compel/infect: fix out-of-bounds parasite memcpy() Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com> Reviewed-by: Dmitry Safonov <dsafonov@virtuozzo.com> Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
CRIU (Checkpoint and Restore in Userspace)
An utility to checkpoint/restore tasks. Using this tool, you can freeze a running application (or part of it) and checkpoint it to a hard drive as a collection of files. You can then use the files to restore and run the application from the point it was frozen at. The distinctive feature of the CRIU project is that it is mainly implemented in user space.
The project home is at http://criu.org.
Pages worth starting with are:
- Kernel configuration, compilation, etc
- A simple example of usage
- More sophisticated example with graphical app
A video tour on basic CRIU features
How to contribute
- How to submit patches;
- Send all bug reports to mailing list;
- Spread the word about CRIU in social networks;
Description
Languages
C
86%
Python
6.1%
Java
2.6%
Shell
2.6%
Makefile
2%
Other
0.7%