-
Notifications
You must be signed in to change notification settings - Fork 206
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
xsnap crashes (SIGSEGV) in GC after snapshot; error stack bug; missing callback #3350
Comments
@phoddie I'm struggling to reproduce the problem from that created using 002c2e0 When I run moddable's
For the replay tool, I'm using
Meanwhile, I have been working on adding recording and playback at the JS level for use with the C code we're currently using: #3338. |
I'm not sure that a JavaScript recording & playback will help. That is almost certainly going to change the runtime behavior. That's why xsnap does recording and playback outside the VM. |
This JS recording is outside the XS VM; it's JS on the node side. We drive the It seems to work; I can reproduce the SIGSEGV this way: vat3.zip
|
I extracted the replay tool from the rest of the agoric sdk. node 14 should be the only dependency (tested on node 14.6 and node 14.7 I think):
it runs like this:
|
Thank you for the clarification. When I saw "JavaScript" I assumed it was in XS. |
bytecode trace of the replay shows FERAL_EVAL, part of the SES bootstrapI turned on It ends with:
I'm attaching all of Trace 1 generates snapshot used to start trace 3I clarified the names of the intermediate snapshot files in 7057981 ; now I can see what's going on: The
So where did that snapshot come from? Using xs-snapshots.zip along with
This
I don't yet have a handy way to combine |
SEGV is in
|
@FUDCo managed to reproduce the SIGSEGV on a mac, with a little fiddling around with directory paths recorded on my machine that had to be adjusted for his. I think I can teach the replay tool to ignore the differences. I'm also interested to see if we can skip the snapshots and reproduce the SIGSEGV just by running the steps in |
Done in 74019f6 / xs-replay.zip. Now I can clean up the issue description with a concise description of how to reproduce it. Should work on mac too.
|
@phoddie I verified the fix Patrick sent this morning. Thanks! I look forward to seeing it in https://github.com/Moddable-OpenSource/moddable ; meanwhile, I checked it in as agoric-labs/moddable@e365a89 |
Excellent news. Thank you for the confirmation. |
@phoddie recording: segv611.zip
I tried to run in debug mode to get a better stack trace, but I ran into another mystery:
This is the same vat (
|
To diagonse that Operation now in progress, I tried #include <libexplain/fwrite.h>; it showed
around
|
Error stack fix confirmed@phoddie I can confirm that the next problem: unknown callback! (trace at 14:32)xsnap-traces-2021-06-18T14:32-05:00.zip To replay multiple trace, be sure to use the updated xs-replay.zip from 74019f6 above.
For (my) reference, the context where I encountered it was starting a chain:
|
Diagnosis: get a core dump (add
Then add
|
Description
The
v11:bootstrap
vat runs for a while until it callsgc()
insidegcAndFinalize()
, at which point it crashes with a SIGSEGV.The following is an excerpt of a stack trace from #2273 (comment)
As it turns out, the snapshots are not essential to the problem, but I originally discovered it a la...
vat
v1:bank
starts by loading the SES shim and supervisor and taking a snapshot; vatv11:bootstrap
starts from that snapshot and runs for a while until it callsgc()
insidegcAndFinalize()
, at which point it crashes with a SIGSEGV.To Reproduce: replay xsnap recording
You will need node 14 plus:
/tmp/
xs-replay
directory.xsnap
binary:git clone https://github.com/Agoric/agoric-sdk/; cd agoric-sdk; yarn; yarn build
export AGORIC_SDK=${PWD}
Then:
Platform Environment
git describe --tags --always
says@agoric/access-token@0.4.1-36-g36c6a80ef
cc @phoddie @warner @dtribble @kriskowal @FUDCo @michaelfig @rowgraus
The text was updated successfully, but these errors were encountered: