Closed CharlyYu closed 1 month ago
It turns out that the signal handler set rt_sigreturn address to a wrong address after the vdso being updated.
It turns out that the signal handler set rt_sigreturn address to a wrong address after the vdso being updated.
sorry for late reply. The vdso sigreturn symbol has a different offset which caused issue. I thought I reported this earlier somewhere (https://github.com/QuarkContainer/Quark/pull/1248 which is replaced by #1292 ) my bad not putting it in an issue.
Because of the offset difference, sigreturn call becomes get time or something.
Because of the offset difference, sigreturn call becomes get time or something.
Yes, I didn't notice that #1292 is working on this, I thought it is just a refactor of codes.
@CharlyYu does #1292 works for you?
should have been fixed, please reopen if necessary.
I found everytime when I execute bash of ubuntu by
docker exec -ti --runtime=quark_d ubuntu /bin/bash
, The quark will crash because of a pagefault of a same address with a same pc address pointing to the vdso. so I made this test codes and it also reproduce the issue.I think maybe it is because after we executed a command, the vdso or vvar memories are modified.