wizard-engine
wizard-engine copied to clipboard
JIT: crash in GC
I have a larger program that crashes after some time. I have not been able to produce a small repro.
$ wizeng.x86-64-linux --dir=/tmp --mode=jit bug.wasm
!GcError: invalid reference @ 0x000000001E1E2078 -> 0x000001C400000000!GcError: fatal
in Semispace.scanSlot() [/home/jerome/sources/virgil/rt/gc/SemiSpace.v3 @ 82:29]
in RiGc.scanRefMap() [/home/jerome/sources/virgil/rt/gc/RiGc.v3 @ 184:56]
in RiGc.scanObject() [/home/jerome/sources/virgil/rt/gc/RiGc.v3 @ 122:58]
in Semispace.collect() [/home/jerome/sources/virgil/rt/gc/SemiSpace.v3 @ 137:79]
in RiRuntime.gc() [/home/jerome/sources/virgil/rt/native/RiRuntime.v3 @ 86:33]
in X86_64Stack.readI31OrObject() [src/engine/x86-64/X86_64Stack.v3 @ 546:33]
in X86_64Stack.peekRef() [src/engine/x86-64/X86_64Stack.v3 @ 380:39]
in X86_64Runtime.runtime_doCast() [src/engine/x86-64/X86_64Runtime.v3 @ 212:40]
in [spc-module] !GcError: reentrant call to SemiSpace.collect
in NameSection.lazyDecode() [src/engine/NameSection.v3 @ 36:67]
in NameSection.getFuncName() [src/engine/NameSection.v3 @ 20:27]
in FuncDecl.render() [src/engine/Module.v3 @ 145:64]
in X86_64SpcCode.describeFrame() [src/engine/x86-64/X86_64SinglePassCompiler.v3 @ 1162:31]
in NativeStackPrinter.printStack() [/home/jerome/sources/virgil/rt/native/NativeStackPrinter.v3 @ 19:55]
in System.error() [/home/jerome/sources/virgil/rt/x86-64-linux/System.v3 @ 116:51]
in Semispace.scanSlot() [/home/jerome/sources/virgil/rt/gc/SemiSpace.v3 @ 82:29]
in RiGc.scanRefMap() [/home/jerome/sources/virgil/rt/gc/RiGc.v3 @ 184:56]
in RiGc.scanObject() [/home/jerome/sources/virgil/rt/gc/RiGc.v3 @ 122:58]
in Semispace.collect() [/home/jerome/sources/virgil/rt/gc/SemiSpace.v3 @ 137:79]
in RiRuntime.gc() [/home/jerome/sources/virgil/rt/native/RiRuntime.v3 @ 86:33]
in X86_64Stack.readI31OrObject() [src/engine/x86-64/X86_64Stack.v3 @ 546:33]
in X86_64Stack.peekRef() [src/engine/x86-64/X86_64Stack.v3 @ 380:39]
in X86_64Runtime.runtime_doCast() [src/engine/x86-64/X86_64Runtime.v3 @ 212:40]
in [spc-module] #336
in [spc-module] #372
in [spc-module] #64
in [spc-module] #145
in [spc-module] #248
in [spc-module] #357
in [spc-module] #299
in [spc-module] #274
in [spc-module] #351
in [return-parent-stub]
in X86_64Stack.resume() [src/engine/x86-64/X86_64Stack.v3 @ 74:56]
in X86_64StackManager.runOnFreshStack() [src/engine/x86-64/X86_64Stack.v3 @ 1137:62]
in X86_64ExecutionStrategy.call() [src/engine/x86-64/X86_64Target.v3 @ 167:58]
in Execute.call() [src/engine/Execute.v3 @ 18:36]
in WasmMode.executeMainFunction() [src/WasmMode.v3 @ 161:37]
in WasmMode.linkAndExecuteMain() [src/WasmMode.v3 @ 117:60]
in WasmMode.run() [src/WasmMode.v3 @ 25:64]
in main() [src/wizeng.main.v3 @ 89:48]