alibaba / pipcook

Machine learning platform for Web developers

Home Page:https://alibaba.github.io/pipcook/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

Shall we provide the core dump file at CI?

commented

Another case for segfault:
https://github.com/alibaba/pipcook/runs/1340629270

This case looks like a memory access problem.