<div dir="ltr">Hello,<div><br></div><div>first, thank you guys for all your awesome work with criu. i have a bug report i would like to ask your help with, but please know that criu to me is magic, and its amazing how well it works.</div><div><br></div><div>REPRODUCING CODE ATTACHED:</div><div>attached are two programs written in python3. the server side is a simple tcp socket accept connection, compute, return answer and close connection loop (implemented with two files, main.py, generated.py). the client side just connects and prints whatever comes on the tcp connection.</div><div><br></div><div>STEPS TO REPRODUCE:</div><div>on terminal 1: pypy main.py</div><div>on terminal 2: python3 client.py</div><div>on terminal 2: cd &lt;dump directory&gt;</div><div>on terminal 2: sudo criu dump -t `pidof pypy` --shell-job</div><div>on terminal 1: &lt;server dies&gt;</div><div>on terminal 2: sudo criu restore --shell-job</div><div>on terminal 3: sudo strace -fF -p `pidof pypy`</div><div>on terminal 1: python3 client.py</div><div>on terminal 2: &lt;pypy crashes, parent process exists&gt;</div><div>on terminal 3: &lt;output follows:&gt;</div><div><div>strace: Process 326 attached<br></div><div>accept(3, {sa_family=AF_INET, sin_port=htons(56262), sin_addr=inet_addr(&quot;127.0.0.1&quot;)}, [16]) = 4</div><div>--- SIGFPE {si_signo=SIGFPE, si_code=FPE_FLTRES, si_addr=0x7f6b19ce76d1} ---</div><div>+++ killed by SIGFPE (core dumped) +++</div></div><div><br></div><div>same scenario exactly, but instead of running &quot;pypy main.py&quot; on the first line, running &quot;python3 main.py&quot; works perfectly. it only happens when running with pypy.</div><div><br></div><div>REPRODUCTION ENVIRONMENT:</div><div>1. tested with personal ubuntu 17.10 laptop, and aws ubuntu 17.10 ec2 server.</div><div>2. pypy installed with &quot;sudo apt-get install pypy&quot;</div><div>3. two versions of criu on both machines reproduce the bug: 3.7 stable built from source (downloaded from <a href="http://criu.org">criu.org</a>), and 3.4 installed with &quot;sudo apt-get install criu&quot;</div><div><br></div><div>motivation behind project:</div><div>pypy is a python jit, which accelerates python computations significantly. the use case in generated.py takes ~2minutes to run using python3, but 4.1s using pypy! however, the pypy jit needs to &quot;warm up&quot;: the same computation takes 3.6s running for the second time inside the same process. of course this is just a &quot;sample&quot;, the real application the improvement between warm and cold jit is around 2X. the sample application attached was to simplify reproduction to a trivial application (a single tcp socket in &quot;accepting&quot; state).</div><div>the pypy team declare that the jit cannot be snapshotted ( <a href="http://doc.pypy.org/en/latest/faq.html#couldn-t-the-jit-dump-and-reload-already-compiled-machine-code">http://doc.pypy.org/en/latest/faq.html#couldn-t-the-jit-dump-and-reload-already-compiled-machine-code</a> ), so we thought we can emulate the effect with criu. </div><div><br></div><div>please help me!</div><div>thanks in advance,</div><div>Shlomi</div></div>