oven-sh / bun

Incredibly fast JavaScript runtime, bundler, test runner, and package manager – all in one
https://bun.sh
Other
73.3k stars 2.69k forks source link

Yoga wasm crash due to assertion failure #7065

Open MinusGix opened 10 months ago

MinusGix commented 10 months ago

What version of Bun is running?

1.0.11+f7f6233ea

What platform is your computer?

Linux 6.1.60-1-MANJARO x86_64 unknown

What steps can reproduce the bug?

Git repo for the bug: https://github.com/MinusGix/bun-repro/blob/master/index.tsx
Running it (ala bun run index.tsx) will segfault.
Commenting out the import, and uncommenting the definition (which is the same as in https://github.com/cameronhunter/ink-markdown/blob/master/src/index.tsx ) will make the logic work.

What is the expected behavior?

This should either provide an error, or it should just work.

What do you see instead?

GDB:

Thread 1 "bun" received signal SIGSEGV, Segmentation fault.
0x00007fffad4a80b2 in ?? ()

Additional information

This is possibly related to the error in https://github.com/cameronhunter/ink-markdown/issues/8 which gave me the idea to try just including the file content directly.

liz3 commented 10 months ago

This seams to crash in yoga wasm, sadly the lldb backtrace doesn't give a lot of insight

Jarred-Sumner commented 10 months ago
ASSERTION FAILED: JS assertion failed at line 1 in:
function (promise, value)
{
    "use strict";

    @assert(@isPromise(promise));
    @assert((@getPromiseInternalField(promise, @promiseFieldFlags) & @promiseStateMask) == @promiseStatePending);

    var flags = @getPromiseInternalField(promise, @promiseFieldFlags);
    var reactions = @getPromiseInternalField(promise, @promiseFieldReactionsOrResult);
    @putPromiseInternalField(promise, @promiseFieldReactionsOrResult, value);
    @putPromiseInternalField(promise, @promiseFieldFlags, flags | @promiseStateFulfilled);

    @triggerPromiseReactions(@promiseStateFulfilled, reactions, value);
}

false
/Users/jarred/actions-runner/_work/WebKit/WebKit/Source/JavaScriptCore/runtime/JSGlobalObject.cpp(410) : JSC::EncodedJSValue JSC::assertCall(JSGlobalObject *, CallFrame *)
1   0x1047ff2e4 WTFCrash
2   0x1058aa0e4 void JSC::StackVisitor::visit<(JSC::StackVisitor::EmptyEntryFrameAction)0, JSC::assertCall(JSC::JSGlobalObject*, JSC::CallFrame*)::$_0>(JSC::CallFrame*, JSC::VM&, JSC::assertCall(JSC::JSGlobalObject*, JSC::CallFrame*)::$_0 const&)
3   0x14000c1fc 2   ???                                 0x000000014000c1fc 0x0 + 5368758780
4   0x140049dc8 3   ???                                 0x0000000140049dc8 0x0 + 5369011656
5   0x14005e6d4 4   ???                                 0x000000014005e6d4 0x0 + 5369095892
6   0x104884c08 vmEntryToJavaScript
7   0x1054b7490 JSC::Interpreter::executeCallImpl(JSC::VM&, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
8   0x105908284 JSC::runJSMicrotask(JSC::JSGlobalObject*, WTF::ObjectIdentifierGeneric<JSC::MicrotaskIdentifierType, WTF::ObjectIdentifierThreadSafeAccessTraits>, JSC::JSValue, JSC::JSValue, JSC::JSValue, JSC::JSValue, JSC::JSValue)
9   0x105b1a358 JSC::VM::drainMicrotasks()
10  0x104264724 Bun::jsFunctionDrainMicrotaskQueue(JSC::JSGlobalObject*, JSC::CallFrame*)
11  0x14000c1fc 10  ???                                 0x000000014000c1fc 0x0 + 5368758780
12  0x1048abff4 llint_entry
13  0x104884c08 vmEntryToJavaScript
14  0x1054b7490 JSC::Interpreter::executeCallImpl(JSC::VM&, JSC::JSObject*, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&)
15  0x105732738 JSC::call(JSC::JSGlobalObject*, JSC::JSValue, JSC::JSValue, JSC::ArgList const&, WTF::ASCIILiteral)
16  0x1042c7ee8 Bun::JSNextTickQueue::drain(JSC::VM&, JSC::JSGlobalObject*)
17  0x102a853dc src.bun.js.event_loop.EventLoop.drainMicrotasksWithGlobal
18  0x102f227f8 src.bun.js.event_loop.EventLoop.tickQueueWithCount__anon_166084
19  0x102a8527c src.bun.js.event_loop.EventLoop.tickWithCount
20  0x1026bc474 src.bun.js.event_loop.EventLoop.tick
21  0x102fec230 src.bun.js.event_loop.EventLoop.waitForPromise
22  0x102b378f0 src.bun.js.javascript.VirtualMachine.waitForPromise
23  0x102e20e98 src.bun.js.javascript.VirtualMachine.loadEntryPoint
24  0x1028ee038 src.bun_js.Run.start
25  0x1024c1a24 src.bun.js.javascript.OpaqueWrap__anon_46698__struct_83394.callback
26  0x104386a98 JSC__VM__holdAPILock
27  0x1020da130 src.bun.js.bindings.bindings.VM.holdAPILock
28  0x10240fd44 src.bun_js.Run.boot
29  0x1024275f4 src.cli.Command.maybeOpenWithBunJS
30  0x102422a98 src.cli.Command.start
31  0x102018ab0 src.cli.Cli.start__anon_3692
fish: Job 1, 'bun-debug index.tsx' terminated by signal SIGSEGV (Address boundary error)