Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conditional jump or move depends on uninitialised value(s), reported by valgrind #4588

Closed
xtcyclist opened this issue Aug 27, 2022 · 2 comments
Assignees
Labels
need info Solution: need more information (ex. can't reproduce) priority/low-pri Priority: low type/bug Type: something is unexpected wontfix Solution: this will not be worked on recently

Comments

@xtcyclist
Copy link
Contributor

xtcyclist commented Aug 27, 2022

==2498== Thread 137 executor-pri3-1:
==2498== Conditional jump or move depends on uninitialised value(s)
==2498==    at 0x2178CAB: operator== (Value.h:506)
==2498==    by 0x2178CAB: operator()<__gnu_cxx::__normal_iterator<const nebula::Value*, std::vector<nebula::Value> > > (predefined_ops.h:241)
==2498==    by 0x2178CAB: __gnu_cxx::__normal_iterator<nebula::Value const*, std::vector<nebula::Value, std::allocator<nebula::Value> > > std::__find_if<__gnu_cxx::__normal_iterator<nebula::Value const*, std::vector<nebula::Value, std::allocator<nebula::Value> > >, __gnu_cxx::__ops::_Iter_equals_val<nebula::Value const> >(__gnu_cxx::__normal_iterator<nebula::Value const*, std::vector<nebula::Value, std::allocator<nebula::Value> > >, __gnu_cxx::__normal_iterator<nebula::Value const*, std::vector<nebula::Value, std::allocator<nebula::Value> > >, __gnu_cxx::__ops::_Iter_equals_val<nebula::Value const>, std::random_access_iterator_tag) (stl_algo.h:144)
==2498==    by 0x217817C: __find_if<__gnu_cxx::__normal_iterator<const nebula::Value*, std::vector<nebula::Value> >, __gnu_cxx::__ops::_Iter_equals_val<const nebula::Value> > (stl_algo.h:161)
==2498==    by 0x217817C: find<__gnu_cxx::__normal_iterator<const nebula::Value*, std::vector<nebula::Value> >, nebula::Value> (stl_algo.h:3944)
==2498==    by 0x217817C: contains (List.h:84)
==2498==    by 0x217817C: nebula::RelationalExpression::eval(nebula::ExpressionContext&) (RelationalExpression.cpp:60)
==2498==    by 0x2175B3A: nebula::UnaryExpression::eval(nebula::ExpressionContext&) (UnaryExpression.cpp:50)
==2498==    by 0x149E84E: nebula::graph::FilterExecutor::handleSingleJobFilter() (FilterExecutor.cpp:89)
==2498==    by 0x149F9C0: nebula::graph::FilterExecutor::execute() (FilterExecutor.cpp:25)
==2498==    by 0x161AC1E: nebula::graph::AsyncMsgNotifyBasedScheduler::execute(nebula::graph::Executor*) const (AsyncMsgNotifyBasedScheduler.cpp:221)
==2498==    by 0x161B64E: _ZZNK6nebula5graph28AsyncMsgNotifyBasedScheduler11runExecutorEOSt6vectorIN5folly6FutureINS_6StatusEEESaIS6_EEPNS0_8ExecutorEPNS3_8ExecutorEENUlOT_E_clIS2_IS5_SaIS5_EEEES6_SF_.isra.0 (AsyncMsgNotifyBasedScheduler.cpp:158)
==2498==    by 0x161B794: operator() (Future-inl.h:101)
==2498==    by 0x161B794: wrapResult<folly::futures::detail::wrapInvoke(folly::Try<T>&&, F&&) [with T = std::vector<nebula::Status>; F = nebula::graph::AsyncMsgNotifyBasedScheduler::runExecutor(std::vector<folly::Future<nebula::Status> >&&, nebula::graph::Executor*, folly::Executor*) const::<lambda(auto:183&&)>]::<lambda()> > (Future-inl.h:73)
==2498==    by 0x161B794: wrapInvoke<std::vector<nebula::Status>, nebula::graph::AsyncMsgNotifyBasedScheduler::runExecutor(std::vector<folly::Future<nebula::Status> >&&, nebula::graph::Executor*, folly::Executor*) const::<lambda(auto:183&&)> > (Future-inl.h:108)
==2498==    by 0x161B794: operator() (Future-inl.h:991)
==2498==    by 0x161B794: invoke<folly::Executor::KeepAlive<folly::Executor>, folly::Try<std::vector<nebula::Status, std::allocator<nebula::Status> > > > (Future-inl.h:144)
==2498==    by 0x161B794: operator() (Future-inl.h:149)
==2498==    by 0x161B794: makeTryWithNoUnwrap<folly::futures::detail::CoreCallbackState<T, F>::tryInvoke(Args&& ...) [with Args = {folly::Executor::KeepAlive<folly::Executor>, folly::Try<std::vector<nebula::Status, std::allocator<nebula::Status> > >}; T = nebula::Status; F = folly::Future<T>::thenValue(F&&) && [with F = nebula::graph::AsyncMsgNotifyBasedScheduler::runExecutor(std::vector<folly::Future<nebula::Status> >&&, nebula::graph::Executor*, folly::Executor*) const::<lambda(auto:183&&)>; T = std::vector<nebula::Status>]::<lambda(folly::Executor::KeepAlive<>&&, folly::Try<std::vector<nebula::Status> >&&)>]::<lambda()> > (Try-inl.h:257)
==2498==    by 0x161B794: makeTryWith<folly::futures::detail::CoreCallbackState<T, F>::tryInvoke(Args&& ...) [with Args = {folly::Executor::KeepAlive<folly::Executor>, folly::Try<std::vector<nebula::Status, std::allocator<nebula::Status> > >}; T = nebula::Status; F = folly::Future<T>::thenValue(F&&) && [with F = nebula::graph::AsyncMsgNotifyBasedScheduler::runExecutor(std::vector<folly::Future<nebula::Status> >&&, nebula::graph::Executor*, folly::Executor*) const::<lambda(auto:183&&)>; T = std::vector<nebula::Status>]::<lambda(folly::Executor::KeepAlive<>&&, folly::Try<std::vector<nebula::Status> >&&)>]::<lambda()> > (Try-inl.h:279)
==2498==    by 0x161B794: tryInvoke<folly::Executor::KeepAlive<folly::Executor>, folly::Try<std::vector<nebula::Status, std::allocator<nebula::Status> > > > (Future-inl.h:149)
==2498==    by 0x161B794: tryInvoke<folly::futures::detail::tryExecutorCallableResult<std::vector<nebula::Status>, folly::Future<T>::thenValue(F&&) && [with F = nebula::graph::AsyncMsgNotifyBasedScheduler::runExecutor(std::vector<folly::Future<nebula::Status> >&&, nebula::graph::Executor*, folly::Executor*) const::<lambda(auto:183&&)>; T = std::vector<nebula::Status>]::<lambda(folly::Executor::KeepAlive<>&&, folly::Try<std::vector<nebula::Status> >&&)>, void>, folly::futures::detail::CoreCallbackState<nebula::Status, folly::Future<T>::thenValue(F&&) && [with F = nebula::graph::AsyncMsgNotifyBasedScheduler::runExecutor(std::vector<folly::Future<nebula::Status> >&&, nebula::graph::Executor*, folly::Executor*) const::<lambda(auto:183&&)>; T = std::vector<nebula::Status>]::<lambda(folly::Executor::KeepAlive<>&&, folly::Try<std::vector<nebula::Status> >&&)> >, std::vector<nebula::Status> > (Future-inl.h:349)
==2498==    by 0x161B794: operator() (Future-inl.h:436)
==2498==    by 0x161B794: operator() (Core.h:637)
==2498==    by 0x161B794: _ZN5folly6detail8function14FunctionTraitsIFvRNS_7futures6detail8CoreBaseEONS_8Executor9KeepAliveIS7_EEPNS_17exception_wrapperEEE9callSmallIZNS4_4CoreISt6vectorIN6nebula6StatusESaISJ_EEE11setCallbackIZNS4_10FutureBaseISL_E18thenImplementationIZNOS_6FutureISL_E9thenValueIZNKSI_5graph28AsyncMsgNotifyBasedScheduler11runExecutorEOSH_INSR_ISJ_EESaISW_EEPNSU_8ExecutorEPS7_EUlOT_E_EENSR_INS4_19valueCallableResultISL_S13_E10value_typeEEES14_EUlSA_ONS_3TryISL_EEE_NS4_25tryExecutorCallableResultISL_S1D_vEEEENSt9enable_ifIXsrNT0_13ReturnsFutureE5valueENS1H_6ReturnEE4typeES14_S1H_NS4_18InlineContinuationEEUlSA_S1C_E_EEvS14_OSt10shared_ptrINS_14RequestContextEES1M_EUlS6_SA_SC_E_EEvS6_SA_SC_RNS1_4DataE (Function.h:371)
==2498==    by 0x29C8ADB: ??? (in /root/src/nebula-ent/build/bin/nebula-graphd)
==2498==    by 0x2374F86: virtual thunk to apache::thrift::concurrency::FunctionRunner::run() (in /root/src/nebula-ent/build/bin/nebula-graphd)
==2498==    by 0x24B6087: apache::thrift::concurrency::ThreadManager::Impl::Worker::run() (in /root/src/nebula-ent/build/bin/nebula-graphd)
==2498==    by 0x24B818D: apache::thrift::concurrency::PthreadThread::threadMain(void*) (in /root/src/nebula-ent/build/bin/nebula-graphd)

Follow the same procedure in #4587 to reproduce.

@xtcyclist xtcyclist added the type/bug Type: something is unexpected label Aug 27, 2022
@xtcyclist
Copy link
Contributor Author

Full valgrind report on this error:

valgrind_error.txt

@xtcyclist xtcyclist changed the title Conditional jump or move depends on uninitialised value(s) Conditional jump or move depends on uninitialised value(s), reported by valgrind Aug 29, 2022
@Sophie-Xie Sophie-Xie added this to the v3.3.0 milestone Aug 29, 2022
@Sophie-Xie Sophie-Xie assigned xtcyclist and unassigned xtcyclist Aug 29, 2022
@codesigner
Copy link
Contributor

最好能记录什么查询会出这个问题, 看代码看不出有什么问题, 用UT+valgrind跑到了相关代码逻辑, 未发现valgrind报错

@Sophie-Xie Sophie-Xie added need info Solution: need more information (ex. can't reproduce) priority/low-pri Priority: low labels Sep 23, 2022
@Sophie-Xie Sophie-Xie removed this from the v3.3.0 milestone Oct 26, 2022
@jinyingsunny jinyingsunny added the wontfix Solution: this will not be worked on recently label Nov 11, 2022
@codesigner codesigner closed this as not planned Won't fix, can't repro, duplicate, stale Nov 17, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
need info Solution: need more information (ex. can't reproduce) priority/low-pri Priority: low type/bug Type: something is unexpected wontfix Solution: this will not be worked on recently
Projects
None yet
Development

No branches or pull requests

4 participants