-
Notifications
You must be signed in to change notification settings - Fork 22
Open
Labels
Description
We found a number of different crash types that can happen when quickjs loads modules with too little memory. We can reproduce this with any value of the memory limit and any limit of the size. Simple code can crash with a limit below 128 KB. But also with a 1MB limit it is only a matter of module sizes until you get a crash.
The different crashes we encountered are
| Crash type | Assertion failed: | in function: |
|---|---|---|
| SIGABRT: abort | (class_id < rt->class_count) |
JS_SetClassProto |
| SIGABRT: abort | (list_empty(&rt->gc_obj_list)) |
JS_FreeRuntime |
| SIGABRT: abort | (label >= 0 && label < s->label_count) |
update_label |
| SIGSEGV: segmentation violation | ||
| SIGBUS: bus error |
The PR #395 adds a test to reproduce this. uncomment the 5k lines and run go test -run TestModuleDifferentSizes -count 1 -v to get the cash.
logs
=== RUN TestModuleDifferentSizes
=== RUN TestModuleDifferentSizes/5k
Assertion failed: (label >= 0 && label < s->label_count), function update_label, file quickjs.c, line 21656.
SIGABRT: abort
PC=0x192a98388 m=0 sigcode=0
signal arrived during cgo execution
goroutine 8 gp=0x14000148a80 m=0 mp=0x100721100 [syscall, locked to thread]:
runtime.cgocall(0x1003e70e4, 0x1400006ec58)
/[go]/libexec/src/runtime/cgocall.go:167 +0x44 fp=0x1400006ec20 sp=0x1400006ebe0 pc=0x10028f414
github.com/buke/quickjs-go._Cfunc_JS_Eval(0x127f11d30, 0x150008000, 0x28f64, 0x127e040e0, 0x21)
_cgo_gotypes.go:384 +0x34 fp=0x1400006ec50 sp=0x1400006ec20 pc=0x10034d5f4
github.com/buke/quickjs-go.(*Context).LoadModule.func3(...)
/[me]/quickjs-go/context.go:374
github.com/buke/quickjs-go.(*Context).LoadModule(0x1400010bb90, {0x140005ba000?, 0x28f64}, {0x1400006ee28, 0x5})
/[me]/quickjs-go/context.go:374 +0x10c fp=0x1400006edd0 sp=0x1400006ec50 pc=0x1003536dc
github.com/buke/quickjs-go_test.TestModuleDifferentSizes.func1(0x140001488c0)
/[me]/quickjs-go/quickjs_test.go:884 +0x1c4 fp=0x1400006ef60 sp=0x1400006edd0 pc=0x1003bf144
testing.tRunner(0x140001488c0, 0x14000078600)
/[go]/libexec/src/testing/testing.go:1792 +0xe4 fp=0x1400006efb0 sp=0x1400006ef60 pc=0x100301dd4
testing.(*T).Run.gowrap1()
/[go]/libexec/src/testing/testing.go:1851 +0x2c fp=0x1400006efd0 sp=0x1400006efb0 pc=0x100302c5c
runtime.goexit({})
/[go]/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x1400006efd0 sp=0x1400006efd0 pc=0x100299df4
created by testing.(*T).Run in goroutine 7
/[go]/libexec/src/testing/testing.go:1851 +0x374
goroutine 1 gp=0x140000021c0 m=nil [chan receive]:
runtime.gopark(0x10029acf0?, 0x140001459b8?, 0xfe?, 0x17?, 0x1007c80d0?)
/[go]/libexec/src/runtime/proc.go:435 +0xc8 fp=0x14000145970 sp=0x14000145950 pc=0x1002921e8
runtime.chanrecv(0x14000022770, 0x14000145a77, 0x1)
/[go]/libexec/src/runtime/chan.go:664 +0x42c fp=0x140001459f0 sp=0x14000145970 pc=0x10022c95c
runtime.chanrecv1(0x1007200c0?, 0x100584940?)
/[go]/libexec/src/runtime/chan.go:506 +0x14 fp=0x14000145a20 sp=0x140001459f0 pc=0x10022c4f4
testing.(*T).Run(0x14000148380, {0x1004a0ca9?, 0x14000145b38?}, 0x10057d628)
/[go]/libexec/src/testing/testing.go:1859 +0x388 fp=0x14000145b00 sp=0x14000145a20 pc=0x100302b38
testing.runTests.func1(0x14000148380)
/[go]/libexec/src/testing/testing.go:2279 +0x40 fp=0x14000145b40 sp=0x14000145b00 pc=0x100304ac0
testing.tRunner(0x14000148380, 0x14000145c68)
/[go]/libexec/src/testing/testing.go:1792 +0xe4 fp=0x14000145b90 sp=0x14000145b40 pc=0x100301dd4
testing.runTests(0x1400000e318, {0x10071a280, 0x1f, 0x1f}, {0x140000785e0?, 0x7?, 0x1007205c0?})
/[go]/libexec/src/testing/testing.go:2277 +0x3ec fp=0x14000145c90 sp=0x14000145b90 pc=0x1003049dc
testing.(*M).Run(0x14000108e60)
/[go]/libexec/src/testing/testing.go:2142 +0x588 fp=0x14000145ec0 sp=0x14000145c90 pc=0x100303738
main.main()
_testmain.go:109 +0x90 fp=0x14000145f40 sp=0x14000145ec0 pc=0x1003c05b0
runtime.main()
/[go]/libexec/src/runtime/proc.go:283 +0x284 fp=0x14000145fd0 sp=0x14000145f40 pc=0x10025dce4
runtime.goexit({})
/[go]/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x14000145fd0 sp=0x14000145fd0 pc=0x100299df4
goroutine 2 gp=0x14000002c40 m=nil [force gc (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/[go]/libexec/src/runtime/proc.go:435 +0xc8 fp=0x14000058f90 sp=0x14000058f70 pc=0x1002921e8
runtime.goparkunlock(...)
/[go]/libexec/src/runtime/proc.go:441
runtime.forcegchelper()
/[go]/libexec/src/runtime/proc.go:348 +0xb8 fp=0x14000058fd0 sp=0x14000058f90 pc=0x10025e038
runtime.goexit({})
/[go]/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x14000058fd0 sp=0x14000058fd0 pc=0x100299df4
created by runtime.init.7 in goroutine 1
/[go]/libexec/src/runtime/proc.go:336 +0x24
goroutine 3 gp=0x14000003500 m=nil [GC sweep wait]:
runtime.gopark(0x1?, 0x0?, 0x0?, 0x0?, 0x0?)
/[go]/libexec/src/runtime/proc.go:435 +0xc8 fp=0x14000059760 sp=0x14000059740 pc=0x1002921e8
runtime.goparkunlock(...)
/[go]/libexec/src/runtime/proc.go:441
runtime.bgsweep(0x14000026080)
/[go]/libexec/src/runtime/mgcsweep.go:316 +0x108 fp=0x140000597b0 sp=0x14000059760 pc=0x100246ce8
runtime.gcenable.gowrap1()
/[go]/libexec/src/runtime/mgc.go:204 +0x28 fp=0x140000597d0 sp=0x140000597b0 pc=0x10023aaf8
runtime.goexit({})
/[go]/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x140000597d0 sp=0x140000597d0 pc=0x100299df4
created by runtime.gcenable in goroutine 1
/[go]/libexec/src/runtime/mgc.go:204 +0x6c
goroutine 4 gp=0x140000036c0 m=nil [GC scavenge wait]:
runtime.gopark(0x1886a?, 0x6553f100?, 0x0?, 0x0?, 0x0?)
/[go]/libexec/src/runtime/proc.go:435 +0xc8 fp=0x14000059f60 sp=0x14000059f40 pc=0x1002921e8
runtime.goparkunlock(...)
/[go]/libexec/src/runtime/proc.go:441
runtime.(*scavengerState).park(0x100720640)
/[go]/libexec/src/runtime/mgcscavenge.go:425 +0x5c fp=0x14000059f90 sp=0x14000059f60 pc=0x10024478c
runtime.bgscavenge(0x14000026080)
/[go]/libexec/src/runtime/mgcscavenge.go:658 +0xac fp=0x14000059fb0 sp=0x14000059f90 pc=0x100244d2c
runtime.gcenable.gowrap2()
/[go]/libexec/src/runtime/mgc.go:205 +0x28 fp=0x14000059fd0 sp=0x14000059fb0 pc=0x10023aa98
runtime.goexit({})
/[go]/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x14000059fd0 sp=0x14000059fd0 pc=0x100299df4
created by runtime.gcenable in goroutine 1
/[go]/libexec/src/runtime/mgc.go:205 +0xac
goroutine 5 gp=0x14000003c00 m=nil [finalizer wait]:
runtime.gopark(0x140000585b8?, 0x100292d34?, 0x1?, 0x85?, 0x1002b6104?)
/[go]/libexec/src/runtime/proc.go:435 +0xc8 fp=0x14000058590 sp=0x14000058570 pc=0x1002921e8
runtime.runfinq()
/[go]/libexec/src/runtime/mfinal.go:196 +0x108 fp=0x140000587d0 sp=0x14000058590 pc=0x100239af8
runtime.goexit({})
/[go]/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x140000587d0 sp=0x140000587d0 pc=0x100299df4
created by runtime.createfing in goroutine 1
/[go]/libexec/src/runtime/mfinal.go:166 +0x80
goroutine 6 gp=0x140001481c0 m=nil [chan receive]:
runtime.gopark(0x14000108d20?, 0x1400000e3a8?, 0x48?, 0x9f?, 0x10035b878?)
/[go]/libexec/src/runtime/proc.go:435 +0xc8 fp=0x14000069ef0 sp=0x14000069ed0 pc=0x1002921e8
runtime.chanrecv(0x14000022540, 0x0, 0x1)
/[go]/libexec/src/runtime/chan.go:664 +0x42c fp=0x14000069f70 sp=0x14000069ef0 pc=0x10022c95c
runtime.chanrecv1(0x0?, 0x0?)
/[go]/libexec/src/runtime/chan.go:506 +0x14 fp=0x14000069fa0 sp=0x14000069f70 pc=0x10022c4f4
runtime.unique_runtime_registerUniqueMapCleanup.func2(...)
/[go]/libexec/src/runtime/mgc.go:1796
runtime.unique_runtime_registerUniqueMapCleanup.gowrap1()
/[go]/libexec/src/runtime/mgc.go:1799 +0x3c fp=0x14000069fd0 sp=0x14000069fa0 pc=0x10023dd1c
runtime.goexit({})
/[go]/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x14000069fd0 sp=0x14000069fd0 pc=0x100299df4
created by unique.runtime_registerUniqueMapCleanup in goroutine 1
/[go]/libexec/src/runtime/mgc.go:1794 +0x78
goroutine 7 gp=0x14000148700 m=nil [chan receive]:
runtime.gopark(0x10029acf0?, 0x1400006dc78?, 0xd5?, 0x1b?, 0x1007c80d0?)
/[go]/libexec/src/runtime/proc.go:435 +0xc8 fp=0x1400006dc30 sp=0x1400006dc10 pc=0x1002921e8
runtime.chanrecv(0x14000022850, 0x1400006dd37, 0x1)
/[go]/libexec/src/runtime/chan.go:664 +0x42c fp=0x1400006dcb0 sp=0x1400006dc30 pc=0x10022c95c
runtime.chanrecv1(0x1007200c0?, 0x100584940?)
/[go]/libexec/src/runtime/chan.go:506 +0x14 fp=0x1400006dce0 sp=0x1400006dcb0 pc=0x10022c4f4
testing.(*T).Run(0x14000148540, {0x10049a883?, 0x1400006dee8?}, 0x14000078600)
/[go]/libexec/src/testing/testing.go:1859 +0x388 fp=0x1400006ddc0 sp=0x1400006dce0 pc=0x100302b38
github.com/buke/quickjs-go_test.TestModuleDifferentSizes(0x14000148540)
/[me]/quickjs-go/quickjs_test.go:872 +0x1a4 fp=0x1400006df60 sp=0x1400006ddc0 pc=0x1003beeb4
testing.tRunner(0x14000148540, 0x10057d628)
/[go]/libexec/src/testing/testing.go:1792 +0xe4 fp=0x1400006dfb0 sp=0x1400006df60 pc=0x100301dd4
testing.(*T).Run.gowrap1()
/[go]/libexec/src/testing/testing.go:1851 +0x2c fp=0x1400006dfd0 sp=0x1400006dfb0 pc=0x100302c5c
runtime.goexit({})
/[go]/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x1400006dfd0 sp=0x1400006dfd0 pc=0x100299df4
created by testing.(*T).Run in goroutine 1
/[go]/libexec/src/testing/testing.go:1851 +0x374
goroutine 9 gp=0x14000148c40 m=nil [GC worker (idle)]:
runtime.gopark(0x1400005af58?, 0x100301d24?, 0x24?, 0x1d?, 0x1400005af50?)
/[go]/libexec/src/runtime/proc.go:435 +0xc8 fp=0x1400005af10 sp=0x1400005aef0 pc=0x1002921e8
runtime.gcBgMarkWorker(0x14000022930)
/[go]/libexec/src/runtime/mgc.go:1423 +0xdc fp=0x1400005afb0 sp=0x1400005af10 pc=0x10023cf8c
runtime.gcBgMarkStartWorkers.gowrap1()
/[go]/libexec/src/runtime/mgc.go:1339 +0x28 fp=0x1400005afd0 sp=0x1400005afb0 pc=0x10023ce78
runtime.goexit({})
/[go]/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x1400005afd0 sp=0x1400005afd0 pc=0x100299df4
created by runtime.gcBgMarkStartWorkers in goroutine 8
/[go]/libexec/src/runtime/mgc.go:1339 +0x140
goroutine 18 gp=0x1400048c380 m=nil [GC worker (idle)]:
runtime.gopark(0x0?, 0x0?, 0x0?, 0x0?, 0x0?)
/[go]/libexec/src/runtime/proc.go:435 +0xc8 fp=0x14000054710 sp=0x140000546f0 pc=0x1002921e8
runtime.gcBgMarkWorker(0x14000022930)
/[go]/libexec/src/runtime/mgc.go:1423 +0xdc fp=0x140000547b0 sp=0x14000054710 pc=0x10023cf8c
runtime.gcBgMarkStartWorkers.gowrap1()
/[go]/libexec/src/runtime/mgc.go:1339 +0x28 fp=0x140000547d0 sp=0x140000547b0 pc=0x10023ce78
runtime.goexit({})
/[go]/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x140000547d0 sp=0x140000547d0 pc=0x100299df4
created by runtime.gcBgMarkStartWorkers in goroutine 8
/[go]/libexec/src/runtime/mgc.go:1339 +0x140
goroutine 19 gp=0x1400048c540 m=nil [GC worker (idle)]:
runtime.gopark(0x11ec464af95d4?, 0x3?, 0xb2?, 0x7b?, 0x0?)
/[go]/libexec/src/runtime/proc.go:435 +0xc8 fp=0x14000054f10 sp=0x14000054ef0 pc=0x1002921e8
runtime.gcBgMarkWorker(0x14000022930)
/[go]/libexec/src/runtime/mgc.go:1423 +0xdc fp=0x14000054fb0 sp=0x14000054f10 pc=0x10023cf8c
runtime.gcBgMarkStartWorkers.gowrap1()
/[go]/libexec/src/runtime/mgc.go:1339 +0x28 fp=0x14000054fd0 sp=0x14000054fb0 pc=0x10023ce78
runtime.goexit({})
/[go]/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x14000054fd0 sp=0x14000054fd0 pc=0x100299df4
created by runtime.gcBgMarkStartWorkers in goroutine 8
/[go]/libexec/src/runtime/mgc.go:1339 +0x140
goroutine 34 gp=0x14000092380 m=nil [GC worker (idle)]:
runtime.gopark(0x11ec464af9269?, 0x1?, 0x59?, 0x91?, 0x0?)
/[go]/libexec/src/runtime/proc.go:435 +0xc8 fp=0x140000aa710 sp=0x140000aa6f0 pc=0x1002921e8
runtime.gcBgMarkWorker(0x14000022930)
/[go]/libexec/src/runtime/mgc.go:1423 +0xdc fp=0x140000aa7b0 sp=0x140000aa710 pc=0x10023cf8c
runtime.gcBgMarkStartWorkers.gowrap1()
/[go]/libexec/src/runtime/mgc.go:1339 +0x28 fp=0x140000aa7d0 sp=0x140000aa7b0 pc=0x10023ce78
runtime.goexit({})
/[go]/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x140000aa7d0 sp=0x140000aa7d0 pc=0x100299df4
created by runtime.gcBgMarkStartWorkers in goroutine 8
/[go]/libexec/src/runtime/mgc.go:1339 +0x140
goroutine 10 gp=0x14000148e00 m=nil [GC worker (idle)]:
runtime.gopark(0x11ec464aef3b8?, 0x1?, 0xd?, 0x5f?, 0x0?)
/[go]/libexec/src/runtime/proc.go:435 +0xc8 fp=0x1400005b710 sp=0x1400005b6f0 pc=0x1002921e8
runtime.gcBgMarkWorker(0x14000022930)
/[go]/libexec/src/runtime/mgc.go:1423 +0xdc fp=0x1400005b7b0 sp=0x1400005b710 pc=0x10023cf8c
runtime.gcBgMarkStartWorkers.gowrap1()
/[go]/libexec/src/runtime/mgc.go:1339 +0x28 fp=0x1400005b7d0 sp=0x1400005b7b0 pc=0x10023ce78
runtime.goexit({})
/[go]/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x1400005b7d0 sp=0x1400005b7d0 pc=0x100299df4
created by runtime.gcBgMarkStartWorkers in goroutine 8
/[go]/libexec/src/runtime/mgc.go:1339 +0x140
goroutine 20 gp=0x1400048c700 m=nil [GC worker (idle)]:
runtime.gopark(0x1007482e0?, 0x1?, 0xa4?, 0x38?, 0x0?)
/[go]/libexec/src/runtime/proc.go:435 +0xc8 fp=0x14000055710 sp=0x140000556f0 pc=0x1002921e8
runtime.gcBgMarkWorker(0x14000022930)
/[go]/libexec/src/runtime/mgc.go:1423 +0xdc fp=0x140000557b0 sp=0x14000055710 pc=0x10023cf8c
runtime.gcBgMarkStartWorkers.gowrap1()
/[go]/libexec/src/runtime/mgc.go:1339 +0x28 fp=0x140000557d0 sp=0x140000557b0 pc=0x10023ce78
runtime.goexit({})
/[go]/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x140000557d0 sp=0x140000557d0 pc=0x100299df4
created by runtime.gcBgMarkStartWorkers in goroutine 8
/[go]/libexec/src/runtime/mgc.go:1339 +0x140
goroutine 35 gp=0x14000092540 m=nil [GC worker (idle)]:
runtime.gopark(0x11ec463a1bafc?, 0x1?, 0x75?, 0x1d?, 0x0?)
/[go]/libexec/src/runtime/proc.go:435 +0xc8 fp=0x140000aaf10 sp=0x140000aaef0 pc=0x1002921e8
runtime.gcBgMarkWorker(0x14000022930)
/[go]/libexec/src/runtime/mgc.go:1423 +0xdc fp=0x140000aafb0 sp=0x140000aaf10 pc=0x10023cf8c
runtime.gcBgMarkStartWorkers.gowrap1()
/[go]/libexec/src/runtime/mgc.go:1339 +0x28 fp=0x140000aafd0 sp=0x140000aafb0 pc=0x10023ce78
runtime.goexit({})
/[go]/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x140000aafd0 sp=0x140000aafd0 pc=0x100299df4
created by runtime.gcBgMarkStartWorkers in goroutine 8
/[go]/libexec/src/runtime/mgc.go:1339 +0x140
goroutine 11 gp=0x14000148fc0 m=nil [GC worker (idle)]:
runtime.gopark(0x11ec464aed548?, 0x1?, 0xe0?, 0x35?, 0x0?)
/[go]/libexec/src/runtime/proc.go:435 +0xc8 fp=0x14000068f10 sp=0x14000068ef0 pc=0x1002921e8
runtime.gcBgMarkWorker(0x14000022930)
/[go]/libexec/src/runtime/mgc.go:1423 +0xdc fp=0x14000068fb0 sp=0x14000068f10 pc=0x10023cf8c
runtime.gcBgMarkStartWorkers.gowrap1()
/[go]/libexec/src/runtime/mgc.go:1339 +0x28 fp=0x14000068fd0 sp=0x14000068fb0 pc=0x10023ce78
runtime.goexit({})
/[go]/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x14000068fd0 sp=0x14000068fd0 pc=0x100299df4
created by runtime.gcBgMarkStartWorkers in goroutine 8
/[go]/libexec/src/runtime/mgc.go:1339 +0x140
goroutine 21 gp=0x1400048c8c0 m=nil [GC worker (idle)]:
runtime.gopark(0x11ec464af3cf6?, 0x1?, 0xfa?, 0x0?, 0x0?)
/[go]/libexec/src/runtime/proc.go:435 +0xc8 fp=0x14000055f10 sp=0x14000055ef0 pc=0x1002921e8
runtime.gcBgMarkWorker(0x14000022930)
/[go]/libexec/src/runtime/mgc.go:1423 +0xdc fp=0x14000055fb0 sp=0x14000055f10 pc=0x10023cf8c
runtime.gcBgMarkStartWorkers.gowrap1()
/[go]/libexec/src/runtime/mgc.go:1339 +0x28 fp=0x14000055fd0 sp=0x14000055fb0 pc=0x10023ce78
runtime.goexit({})
/[go]/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x14000055fd0 sp=0x14000055fd0 pc=0x100299df4
created by runtime.gcBgMarkStartWorkers in goroutine 8
/[go]/libexec/src/runtime/mgc.go:1339 +0x140
goroutine 22 gp=0x1400048ca80 m=nil [GC worker (idle)]:
runtime.gopark(0x1007482e0?, 0x1?, 0x6?, 0x83?, 0x0?)
/[go]/libexec/src/runtime/proc.go:435 +0xc8 fp=0x14000056710 sp=0x140000566f0 pc=0x1002921e8
runtime.gcBgMarkWorker(0x14000022930)
/[go]/libexec/src/runtime/mgc.go:1423 +0xdc fp=0x140000567b0 sp=0x14000056710 pc=0x10023cf8c
runtime.gcBgMarkStartWorkers.gowrap1()
/[go]/libexec/src/runtime/mgc.go:1339 +0x28 fp=0x140000567d0 sp=0x140000567b0 pc=0x10023ce78
runtime.goexit({})
/[go]/libexec/src/runtime/asm_arm64.s:1223 +0x4 fp=0x140000567d0 sp=0x140000567d0 pc=0x100299df4
created by runtime.gcBgMarkStartWorkers in goroutine 8
/[go]/libexec/src/runtime/mgc.go:1339 +0x140
r0 0x0
r1 0x0
r2 0x0
r3 0x0
r4 0x0
r5 0x2e
r6 0x0
r7 0x3
r8 0x5b82ec00b4dd4a69
r9 0x5b82ec02b54706e9
r10 0xa
r11 0x0
r12 0x32
r13 0x1e
r14 0x4
r15 0x3c
r16 0x148
r17 0x202a14ac0
r18 0x0
r19 0x6
r20 0x103
r21 0x2019a4d60
r22 0x100840000
r23 0x1004f86e5
r24 0x1ff06b000
r25 0x127e04380
r26 0x2292
r27 0xffffffff
r28 0x127e04210
r29 0x16fbde990
lr 0x192ad188c
sp 0x16fbde970
pc 0x192a98388
fault 0x192a98388
exit status 2
FAIL github.com/buke/quickjs-go 0.258s
This is not necessarily a bug in quickjs-go. But I want to post it here for visibility and because it is reproducible using quickjs-go.
Any pointers to the root cause is appreciated.
Reactions are currently unavailable