boa: segfault on github actions
yorkie opened this issue · comments
See https://github.com/alibaba/pipcook/pull/614/checks?check_run_id=1263438907.
> @pipcook/boa@1.2.0 test /home/runner/work/pipcook/pipcook/packages/boa
> tape ./tests/**/*.js
TAP version 13
# run functions with worker_threads
ok 1 the main thread owns the object before creating shared objects
create a foo object with ownership(true)
main: worker is started and send an object <Foobar object at 0x7efe48352410>
ok 2 Object is owned by another thread.
ok 3 Object is owned by another thread.
worker: get an object<Foobar object at 0x7efe48352410> and sleep 5s in Python
lerna ERR! npm run test stderr:
Segmentation fault (core dumped)
Backtrace from coredump:
* thread #1, stop reason = signal SIGSTOP
* frame #0: 0x000000010802c3ac libpython3.7m.dylib`PyObject_Call + 60
frame #1: 0x00000001052874fb boa.node`boa::PythonObject::Invoke(Napi::CallbackInfo const&) + 395
frame #2: 0x000000010528e92b boa.node`Napi::InstanceWrap<boa::PythonObject>::InstanceMethodCallbackWrapper(napi_env__*, napi_callback_info__*)::'lambda'()::operator()() const + 139
frame #3: 0x000000010528e84a boa.node`Napi::InstanceWrap<boa::PythonObject>::InstanceMethodCallbackWrapper(napi_env__*, napi_callback_info__*) + 42
frame #4: 0x000000010006354a node`v8impl::(anonymous namespace)::FunctionCallbackWrapper::Invoke(v8::FunctionCallbackInfo<v8::Value> const&) + 122
frame #5: 0x00000001002582e8 node`v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo) + 616
frame #6: 0x000000010025787c node`v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) + 524
frame #7: 0x0000000100256fa2 node`v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) + 258
frame #8: 0x0000000100a780b9 node`Builtins_CEntry_Return1_DontSaveFPRegs_ArgvOnStack_BuiltinExit + 57
frame #9: 0x0000000100a11382 node`Builtins_InterpreterEntryTrampoline + 194
frame #10: 0x0000000100a11382 node`Builtins_InterpreterEntryTrampoline + 194
frame #11: 0x0000000100abb772 node`Builtins_ProxyGetProperty + 210
frame #12: 0x0000000100aed570 node`Builtins_LdaKeyedPropertyHandler + 112
frame #13: 0x0000000100a11382 node`Builtins_InterpreterEntryTrampoline + 194
frame #14: 0x0000000100a11382 node`Builtins_InterpreterEntryTrampoline + 194
frame #15: 0x0000000100a11382 node`Builtins_InterpreterEntryTrampoline + 194
frame #16: 0x0000000100a0f09a node`Builtins_JSEntryTrampoline + 90
frame #17: 0x0000000100a0ee78 node`Builtins_JSEntry + 120
frame #18: 0x00000001003258d8 node`v8::internal::(anonymous namespace)::Invoke(v8::internal::Isolate*, v8::internal::(anonymous namespace)::InvokeParams const&) + 3048
frame #19: 0x0000000100324ce2 node`v8::internal::Execution::Call(v8::internal::Isolate*, v8::internal::Handle<v8::internal::Object>, v8::internal::Handle<v8::internal::Object>, int, v8::internal::Handle<v8::internal::Object>*) + 210
frame #20: 0x0000000100203893 node`v8::Function::Call(v8::Local<v8::Context>, v8::Local<v8::Value>, int, v8::Local<v8::Value>*) + 435
frame #21: 0x0000000100056e98 node`node::Environment::RunTimers(uv_timer_s*) + 360
frame #22: 0x00000001009ef297 node`uv__run_timers + 103
frame #23: 0x00000001009f3a7d node`uv_run + 205
frame #24: 0x00000001000e4d45 node`node::NodeMainInstance::Run() + 309
frame #25: 0x0000000100079582 node`node::Start(int, char**) + 274
frame #26: 0x00007fff69d60cc9 libdyld.dylib`start + 1
frame #27: 0x00007fff69d60cc9 libdyld.dylib`start + 1
The SIGSTOP is not caused by any assert and memory access, we need to know how does the signal emit.
Another case for segfault:
https://github.com/alibaba/pipcook/runs/1340629270
Shall we provide the core dump file at CI?
Another case for segfault:
https://github.com/alibaba/pipcook/runs/1340629270
This case looks like a memory access problem.