Skip to content
This repository has been archived by the owner on Dec 1, 2022. It is now read-only.

Crash when collapse project optimize #1295

Closed
Shylock-Hg opened this issue Jul 29, 2021 · 0 comments · Fixed by #1298
Closed

Crash when collapse project optimize #1295

Shylock-Hg opened this issue Jul 29, 2021 · 0 comments · Fixed by #1298
Assignees
Labels
bug Type: something is unexpected

Comments

@Shylock-Hg
Copy link
Contributor

Shylock-Hg commented Jul 29, 2021

Please check the FAQ documentation before raising an issue

Describe the bug (must be provided)

(lldb) bt
* thread #1, name = 'nebula-graphd', stop reason = signal SIGABRT
  * frame #0: 0x00007efde0fe353f libc.so.6`__GI_raise(sig=6) at raise.c:51
    frame #1: 0x00007efde0fcd895 libc.so.6`__GI_abort at abort.c:79
    frame #2: 0x000000000432228d nebula-graphd`google::LogMessage::Fail() + 13
    frame #3: 0x000000000432706e nebula-graphd`google::LogMessage::SendToLog() + 574
    frame #4: 0x0000000004321f5e nebula-graphd`google::LogMessage::Flush() + 190
    frame #5: 0x00000000043227b9 nebula-graphd`google::LogMessageFatal::~LogMessageFatal() + 9
    frame #6: 0x0000000002d78f39 nebula-graphd`nebula::graph::PlanNode::setInputVar(this=0x00007efdc1a31c80, varname="", idx=0) at PlanNode.cpp:336
    frame #7: 0x0000000002d27b6d nebula-graphd`nebula::opt::CollapseProjectRule::transform(this=0x00007efde0a08020, octx=0x00007efdc1a0c9f0, matched=0x00007efdc27fbef0) const at CollapseProjectRule.cpp:101
    frame #8: 0x0000000002d170ca nebula-graphd`nebula::opt::OptGroup::explore(this=0x00007efdc1a745c0, rule=0x00007efde0a08020) at OptGroup.cpp:80
    frame #9: 0x0000000002d175d9 nebula-graphd`nebula::opt::OptGroup::exploreUntilMaxRound(this=0x00007efdc1a745c0, rule=0x00007efde0a08020) at OptGroup.cpp:120
    frame #10: 0x0000000002d13265 nebula-graphd`nebula::opt::Optimizer::doExploration(this=0x00007efdd320a280, octx=0x00007efdc1a0c9f0, rootGroup=0x00007efdc1a745c0) at Optimizer.cpp:54
    frame #11: 0x0000000002d12e11 nebula-graphd`nebula::opt::Optimizer::findBestPlan(this=0x00007efdd320a280, qctx=0x00007efdc1a276d0) at Optimizer.cpp:38
    frame #12: 0x0000000002b6716d nebula-graphd`nebula::graph::QueryInstance::findBestPlan(this=0x00007efdc1a4aa80) at QueryInstance.cpp:192
    frame #13: 0x0000000002b6644d nebula-graphd`nebula::graph::QueryInstance::validateAndOptimize(this=0x00007efdc1a4aa80) at QueryInstance.cpp:73
    frame #14: 0x0000000002b65f99 nebula-graphd`nebula::graph::QueryInstance::execute(this=0x00007efdc1a4aa80) at QueryInstance.cpp:38
    frame #15: 0x0000000002b5ce78 nebula-graphd`nebula::graph::QueryEngine::execute(this=0x00007efde0a96db0, rctx=nullptr) at QueryEngine.cpp:53
    frame #16: 0x0000000002b1be8f nebula-graphd`operator(__closure=0x00007efdc2f74bd0, ret=StatusOr<std::shared_ptr<nebula::graph::ClientSession> > @ 0x00007efdc27fc8d0) at GraphService.cpp:159
    frame #17: 0x0000000002b1e6e2 nebula-graphd`operator(this=0x00007efdc27fc900) at Future-inl.h:88
    frame #18: 0x0000000002b20d1d nebula-graphd`folly::futures::detail::InvokeResultWrapper<void>::wrapResult<folly::futures::detail::wrapInvoke(fn=<lambda()> @ 0x00007efdc27fc900) [with T = nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >; F = nebula::graph::GraphService::future_execute(int64_t, const string&)::<lambda(nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >)>]::<lambda()> >(<lambda()>) at Future-inl.h:80
    frame #19: 0x0000000002b1e78e nebula-graphd`folly::futures::detail::wrapInvoke<nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >, nebula::graph::GraphService::future_execute(int64_t, const string&)::<lambda(nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >)> >(t=0x00007efdc2f74c50, f=0x00007efdc2f74bd0)> &&) at Future-inl.h:98
    frame #20: 0x0000000002b1e7d7 nebula-graphd`operator(this=0x00007efdc2f74bd0, (null)=0x00007efdb1e0c210, t=0x00007efdc2f74c50) at Future-inl.h:1004
    frame #21: 0x0000000002b20de8 nebula-graphd`folly::futures::detail::CoreCallbackState<folly::Unit, folly::Future<T>::thenValue(F&&) && [with F = nebula::graph::GraphService::future_execute(int64_t, const string&)::<lambda(nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >)>; T = nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >; typename folly::futures::detail::valueCallableResult<T, F>::value_type = folly::Unit]::<lambda(folly::Executor::KeepAlive<folly::Executor>&&, folly::Try<nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> > >&&)> >::invoke<folly::Executor::KeepAlive<folly::Executor>, folly::Try<nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> > > >(this=0x00007efdc2f74bd0, (null)=<unavailable>, (null)=<unavailable>, args#0=0x00007efdb1e0c210, args#1=0x00007efdc2f74c50) const at Future-inl.h:134
    frame #22: 0x0000000002b20e46 nebula-graphd`folly::futures::detail::detail_msvc_15_7_workaround::invoke<folly::futures::detail::tryExecutorCallableResult<nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >, folly::Future<T>::thenValue(F&&) && [with F = nebula::graph::GraphService::future_execute(int64_t, const string&)::<lambda(nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >)>; T = nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >]::<lambda(folly::Executor::KeepAlive<>&&, folly::Try<nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> > >&&)>, void>, folly::futures::detail::CoreCallbackState<folly::Unit, folly::Future<T>::thenValue(F&&) && [with F = nebula::graph::GraphService::future_execute(int64_t, const string&)::<lambda(nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >)>; T = nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >]::<lambda(folly::Executor::KeepAlive<>&&, folly::Try<nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> > >&&)> >, nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> > >((null)=tryExecutorCallableResult<nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >, folly::Future<T>::thenValue(F&&) && [with F = nebula::graph::GraphService::future_execute(int64_t, const string&)::<lambda(nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >)>; T = nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >; typename folly::futures::detail::valueCallableResult<T, F>::value_type = folly::Unit]::<lambda(folly::Executor::KeepAlive<folly::Executor>&&, folly::Try<nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> > >&&)>, void> @ 0x00007efdc27fca00, state=0x00007efdc2f74bd0, ka=0x00007efdb1e0c210, t=0x00007efdc2f74c50)> >, folly::futures::detail::CoreCallbackState<folly::Unit, <lambda(folly::Executor::KeepAlive<folly::Executor>&&, folly::Try<nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> > >&&)> > &, folly::Executor::KeepAlive<folly::Executor> &&, folly::Try<nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> > > &&) at Future-inl.h:327
    frame #23: 0x0000000002b20e9d nebula-graphd`operator(this=0x00007efdc27fcae0) at Future-inl.h:403
    frame #24: 0x0000000002b2383d nebula-graphd`folly::makeTryWith<folly::futures::detail::FutureBase<T>::thenImplementation(F&&, R, folly::futures::detail::InlineContinuation) [with F = folly::Future<T>::thenValue(F&&) && [with F = nebula::graph::GraphService::future_execute(int64_t, const string&)::<lambda(nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >)>; T = nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >]::<lambda(folly::Executor::KeepAlive<>&&, folly::Try<nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> > >&&)>; R = folly::futures::detail::tryExecutorCallableResult<nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >, folly::Future<T>::thenValue(F&&) && [with F = nebula::graph::GraphService::future_execute(int64_t, const string&)::<lambda(nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >)>; T = nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >]::<lambda(folly::Executor::KeepAlive<>&&, folly::Try<nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> > >&&)>, void>; T = nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >]::<lambda(folly::Executor::KeepAlive<>&&, folly::Try<nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> > >&&)> mutable::<lambda()> >(f=0x00007efdc27fcae0)> &&) at Try-inl.h:279
    frame #25: 0x0000000002b20f74 nebula-graphd`operator(this=0x00007efdc2f74bd0, ka=0x00007efdb1e0c210, t=0x00007efdc2f74c50) at Future-inl.h:401
    frame #26: 0x0000000002b256cc nebula-graphd`operator(this=0x00007efdc2f74bd0, coreBase=0x00007efdc2f74bc0, ka=0x00007efdb1e0c210, ew=0x0000000000000000) at Core.h:583
    frame #27: 0x0000000002b289de nebula-graphd`folly::detail::function::FunctionTraits<void(folly::futures::detail::CoreBase&, folly::Executor::KeepAlive<folly::Executor>&&, folly::exception_wrapper*)>::callSmall<folly::futures::detail::Core<T>::setCallback(args#0=0x00007efdc2f74bc0, args#1=0x00007efdb1e0c210, args#2=0x0000000000000000, p=0x00007efdc2f74bd0) [with F = folly::futures::detail::FutureBase<T>::thenImplementation(F&&, R, folly::futures::detail::InlineContinuation) [with F = folly::Future<T>::thenValue(F&&) && [with F = nebula::graph::GraphService::future_execute(int64_t, const string&)::<lambda(nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >)>; T = nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >]::<lambda(folly::Executor::KeepAlive<>&&, folly::Try<nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> > >&&)>; R = folly::futures::detail::tryExecutorCallableResult<nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >, folly::Future<T>::thenValue(F&&) && [with F = nebula::graph::GraphService::future_execute(int64_t, const string&)::<lambda(nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >)>; T = nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >]::<lambda(folly::Executor::KeepAlive<>&&, folly::Try<nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> > >&&)>, void>; T = nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >]::<lambda(folly::Executor::KeepAlive<>&&, folly::Try<nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> > >&&)>; T = nebula::StatusOr<std::shared_ptr<nebula::graph::ClientSession> >]::<lambda(folly::futures::detail::CoreBase&, folly::Executor::KeepAlive<>&&, folly::exception_wrapper*)> >(folly::detail::function::CallArg, folly::detail::function::CallArg, folly::detail::function::CallArg, folly::detail::function::Data &) at Function.h:371
    frame #28: 0x0000000004254e8c nebula-graphd`___lldb_unnamed_symbol3946$$nebula-graphd + 60
    frame #29: 0x000000000405a7a7 nebula-graphd`virtual thunk to apache::thrift::concurrency::FunctionRunner::run() + 151
    frame #30: 0x000000000416e9a3 nebula-graphd`apache::thrift::concurrency::ThreadManager::Impl::Worker::run() + 339
    frame #31: 0x00000000041725fd nebula-graphd`apache::thrift::concurrency::PthreadThread::threadMain(void*) + 205
    frame #32: 0x00007efde117958e libpthread.so.0`start_thread(arg=<unavailable>) at pthread_create.c:486
    frame #33: 0x00007efde10a8513 libc.so.6`__GI___clone at clone.S:95

Your Environments (must be provided)

  • OS: uname -a
  • Compliler: g++ --version or clang++ --version
  • CPU: lscpu
  • Commit id (e.g. a3ffc7d8)

How To Reproduce(must be provided)

Steps to reproduce the behavior:

Build master version and run the tests.

Expected behavior

A clear and concise description of what you expected to happen.

Additional context

Provide logs and configs, or any other context to trace the problem.

@Shylock-Hg Shylock-Hg added the bug Type: something is unexpected label Jul 29, 2021
@Shylock-Hg Shylock-Hg changed the title Crash Crash when collapse project optimize Jul 29, 2021
@Shylock-Hg Shylock-Hg linked a pull request Aug 2, 2021 that will close this issue
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Type: something is unexpected
Projects
None yet
Development

Successfully merging a pull request may close this issue.

2 participants