[CRIU] Bug report: a process restored with criu crashes on SIGFPE
Andrei Vagin
avagin at virtuozzo.com
Sun Jan 28 22:01:38 MSK 2018
On Sat, Jan 27, 2018 at 12:28:31PM -0800, Andrei Vagin wrote:
> On Fri, Jan 26, 2018 at 02:02:35PM +0200, Shlomi Matichin wrote:
> > 0x00007fc88f5c7788: jmpq 0x7fc88f5c7706
> > 0x00007fc88f5c778d: nopl (%rax)
> > 0x00007fc88f5c7790: movl $0x0,0x4(%r13)
> > 0x00007fc88f5c7798: jmpq 0x7fc88f5c76fc
> > 0x00007fc88f5c779d: nopl (%rax)
> > 0x00007fc88f5c77a0: movl $0x0,0x0(%r13)
> > 0x00007fc88f5c77a8: jmpq 0x7fc88f5c76ee
> > 0x00007fc88f5c77ad: pxor %xmm3,%xmm3
> > => 0x00007fc88f5c77b1: cvtsd2ss %xmm0,%xmm3
>
> Looks like we incorrectly save fpu state...
>
> I tried to reproduce this issue on my laptop, in digital ocean with the same
> ubuntu version, and I even created an aws account. But in all my attempts,
> everything works as expected.
>
> Could you write a detailed instruction how you reproduce this bug on a
> ec2 instance? What image do you use? Maybe you can create there an
> instance and give us access to it?
>
> Could you show registers before and after dump/restore?
>
> For that you need to attach to a target process by gdb and call " info
> all-registers", then you need to detach from a process, do dump/restore
> and attach again to get registers. Pls, don't forget to check that the
> issue is reproduced in this case.
We have an idea that mxcsr isn't dumped properlly in your case. And Dima
wrote a test to check this. Could you try to run it?
1. git clone https://github.com/avagin/criu -b fpu2
2. cd criu
3. apt-get update && apt-get install -y \
build-essential \
protobuf-c-compiler \
libprotobuf-c0-dev \
libprotobuf-dev \
bsdmainutils \
protobuf-compiler \
python-minimal \
libaio-dev \
libcap-dev \
iptables \
libnl-3-dev \
libnl-route-3-dev \
libselinux-dev \
pkg-config \
git-core \
libnet-dev \
gcc \
python-yaml protobuf-python
4. make
5. make -C test/zdtm/lib
6. python test/zdtm.py run -t zdtm/static/fpu02
In addition, you can try to run other fpu tests:
7. python test/zdtm.py run -t zdtm/static/sse00 -t zdtm/static/sse20 -t zdtm/static/mmx00 -t zdtm/static/fpu00
Thanks,
Andrei
>
> Thanks,
> Andrei
More information about the CRIU
mailing list