vesoft-inc / nebula

A distributed, fast open-source graph database featuring horizontal scalability and high availability
https://nebula-graph.io
Apache License 2.0
10.82k stars 1.2k forks source link

Querying the property values of no-existing vertex by Go will cause the graphd crash #1220

Closed zlcook closed 5 years ago

zlcook commented 5 years ago

Describe the bug(must be provided) Querying the properties of no-existing vertex by Go will end with an error.

How To Reproduce(must be provided)

(user@xxx) [test_graph]> show tags;

| Name |

| merchant |

| pin |

(user@xxx) [test_graph]> show edges;

| Name |

| pin2merchant |

* Inserting a pin vertex and an pin2merchant edge(dst-vertex doesn't exist), then executing Go end with an error.  

(user@xxx) [test_graph]> INSERT VERTEX pin(pin) VALUES uuid("pin_zhangsan"):("zhangsan"); Execution succeeded (Time spent: 3532/4264 us)

(user@xxx) [test_graph]> INSERT EDGE pin2merchant() VALUES uuid("pin_zhangsan") -> uuid("not_exist_vertex_id"):(); Execution succeeded (Time spent: 3488/4290 us)

successly execute without destination vertex properties.

(user@xxx) [test_graph]> GO FROM uuid("pin_zhangsan") OVER pin2merchant YIELD $^.pin.pin;

| $^.pin.pin |

| zhangsan

Got 1 rows (Time spent: 3760/4907 us)

fail to execute with destination vertex properties.

(user@xxx) [test_graph]> GO FROM uuid("pin_zhangsan") OVER pin2merchant YIELD $^.pin.pin, $$.merchant.merchantNo; E1107 10:40:15.923456 36480 GraphClient.cpp:85] Thrift rpc call failed: Channel got EOF. Check for server hitting connection limit, server connection idle timeout, and server crashes. [ERROR (-3)]:


**Expected behavior**
* logs

F1107 10:40:15.391747 36101 GoExecutor.cpp:972] Check failed: false

* coredump( partial)

Storage: /var/lib/systemd/coredump/core.nebula-graphd.0.99b6162866bb4e27a1237ffdd9e2ce32.36079.1573094415000000.lz4 Message: Process 36079 (nebula-graphd) of user 0 dumped core.

            Stack trace of thread 36101:
            #0  0x00007ff42cd9c53f raise (libc.so.6)
            #1  0x00007ff42cd86895 abort (libc.so.6)
            #2  0x0000000001a49383 _ZN6googleL21DumpStackTraceAndExitEv.cold.21 (nebula-graphd)
            #3  0x0000000002650f3d _ZN6google10LogMessage4FailEv (nebula-graphd)
            #4  0x000000000265548c _ZN6google10LogMessage9SendToLogEv (nebula-graphd)
            #5  0x0000000002650c3d _ZN6google10LogMessage5FlushEv (nebula-graphd)
            #6  0x0000000002651429 _ZN6google15LogMessageFatalD2Ev (nebula-graphd)
            #7  0x0000000001b17002 _ZNK6nebula5graph10GoExecutor12VertexHolder18getDefaultPropTypeEiRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (nebula-graphd)
            #8  0x0000000001b174bb _ZN6nebula5graph10GoExecutor12VertexHolder7getTypeEliRKNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEE (nebula-graphd)
            #9  0x0000000001b15c0c _ZZNK6nebula5graph10GoExecutor18processFinalResultERNS_7storage18StorageRpcResponseINS2_4cpp213QueryResponseEEESt8functionIFvSt6vectorIN5boost7variantIlJdbNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEESaISI_EES9_INS_4cpp213SupportedTypeESaISM_EEEEENKUlRKSH_SS_E3_clESS_SS_ (nebula-graphd)
            #10 0x0000000001b1a9bb _M_invoke (nebula-graphd)
            #11 0x0000000001a699ec _ZNKSt8functionIFN6nebula8StatusOrIN5boost7variantIlJdbNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEEEERKS9_SD_EEclESD_SD_ (nebula-graphd)
            #12 0x0000000001a5d800 _ZNK6nebula22DestPropertyExpression4evalB5cxx11Ev (nebula-graphd)
            #13 0x0000000001b167e9 _ZNK6nebula5graph10GoExecutor18processFinalResultERNS_7storage18StorageRpcResponseINS2_4cpp213QueryResponseEEESt8functionIFvSt6vectorIN5boost7variantIlJdbNSt7__cxx1112basic_stringIcSt11char_traitsIcESaIcEEEEEESaISI_EES9_INS_4cpp213SupportedTypeESaISM_EEEE (nebula-graphd)
            #14 0x0000000001b14c74 _ZN6nebula5graph10GoExecutor18setupInterimResultEONS_7storage18StorageRpcResponseINS2_4cpp213QueryResponseEEERSt10unique_ptrINS0_13InterimResultESt14default_deleteIS9_EE (nebula-graphd)
            #15 0x0000000001b12b21 _ZN6nebula5graph10GoExecutor15finishExecutionEONS_7storage18StorageRpcResponseINS2_4cpp213QueryResponseEEE (nebula-graphd)
            #16 0x0000000001b13ed8 _ZZN6nebula5graph10GoExecutor16fetchVertexPropsESt6vectorIlSaIlEEONS_7storage18StorageRpcResponseINS5_4cpp213QueryResponseEEEENUlOT_E_clIS9_EEDaSC_ (nebula-graphd)
            #17 0x0000000001b180d5 _ZZNO5folly6FutureIN6nebula7storage18StorageRpcResponseINS2_4cpp213QueryResponseEEEE9thenValueIRZNS1_5graph10GoExecutor16fetchVertexPropsESt6vectorIlSaIlEEOS6_EUlOT_E_EENS0_INS_7futures6detail19valueCallableResultIS6_SF_E10value_typeEEESG_ENUlONS_3TryIS6_EEE_clESR_ (nebula-graphd)
            #18 0x0000000001b19d64 invoke<folly::Try<nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse> > > (nebula-graphd)
            #19 0x0000000001b19d9a invoke<true, folly::futures::detail::CoreCallbackState<folly::Unit, folly::Future<T>::thenValue(F&&) && [with F = nebula::graph::GoExecutor::fetchVertexProps(std::vector<long int>, nebula::graph::GoExecutor::RpcResponse&&)::<lambda(auto:75&&)>&; T = nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse>]::<lambda(folly::Try<nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse> >&&)> >, nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse>, folly::Try<nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse> >&&> (nebula-graphd)
            #20 0x0000000001b19dc2 _ZZZN5folly7futures6detail10FutureBaseIN6nebula7storage18StorageRpcResponseINS4_4cpp213QueryResponseEEEE18thenImplementationIZNOS_6FutureIS8_E9thenValueIRZNS3_5graph10GoExecutor16fetchVertexPropsESt6vectorIlSaIlEEOS8_EUlOT_E_EENSB_INS1_19valueCallableResultIS8_SK_E10value_typeEEESL_EUlONS_3TryIS8_EEE_NS1_14callableResultIS8_SV_EELb1EJSU_EEENSt9enable_ifIXntsrNT0_13ReturnsFutureE5valueENSZ_6ReturnEE4typeESL_NS1_9argResultIXT1_ESK_JDpT2_EEEENUlSU_E_clESU_ENKUlvE_clEv (nebula-graphd)
            #21 0x0000000001b1b47b makeTryWith<folly::futures::detail::FutureBase<T>::thenImplementation(F&&, folly::futures::detail::argResult<isTry, F, Args ...>) [with F = folly::Future<T>::thenValue(F&&) && [with F = nebula::graph::GoExecutor::fetchVertexProps(std::vector<long int>, nebula::graph::GoExecutor::RpcResponse&&)::<lambda(auto:75&&)>&; T = nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse>]::<lambda(folly::Try<nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse> >&&)>; R = folly::futures::detail::callableResult<nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse>, folly::Future<T>::thenValue(F&&) && [with F = nebula::graph::GoExecutor::fetchVertexProps(std::vector<long int>, nebula::graph::GoExecutor::RpcResponse&&)::<lambda(auto:75&&)>&; T = nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse>]::<lambda(folly::Try<nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse> >&&)> >; bool isTry = true; Args = {folly::Try<nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse> >&&}; T = nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse>]::<lambda(folly::Try<nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse> >&&)> mutable::<lambda()> > (nebula-graphd)
            #22 0x0000000001b19dfe _ZZN5folly7futures6detail10FutureBaseIN6nebula7storage18StorageRpcResponseINS4_4cpp213QueryResponseEEEE18thenImplementationIZNOS_6FutureIS8_E9thenValueIRZNS3_5graph10GoExecutor16fetchVertexPropsESt6vectorIlSaIlEEOS8_EUlOT_E_EENSB_INS1_19valueCallableResultIS8_SK_E10value_typeEEESL_EUlONS_3TryIS8_EEE_NS1_14callableResultIS8_SV_EELb1EJSU_EEENSt9enable_ifIXntsrNT0_13ReturnsFutureE5valueENSZ_6ReturnEE4typeESL_NS1_9argResultIXT1_ESK_JDpT2_EEEENUlSU_E_clESU_ (nebula-graphd)
            #23 0x0000000001b1cb93 callBig<folly::futures::detail::FutureBase<T>::thenImplementation(F&&, folly::futures::detail::argResult<isTry, F, Args ...>) [with F = folly::Future<T>::thenValue(F&&) && [with F = nebula::graph::GoExecutor::fetchVertexProps(std::vector<long int>, nebula::graph::GoExecutor::RpcResponse&&)::<lambda(auto:75&&)>&; T = nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse>]::<lambda(folly::Try<nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse> >&&)>; R = folly::futures::detail::callableResult<nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse>, folly::Future<T>::thenValue(F&&) && [with F = nebula::graph::GoExecutor::fetchVertexProps(std::vector<long int>, nebula::graph::GoExecutor::RpcResponse&&)::<lambda(auto:75&&)>&; T = nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse>]::<lambda(folly::Try<nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse> >&&)> >; bool isTry = true; Args = {folly::Try<nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse> >&&}; T = nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse>]::<lambda(folly::Try<nebula::storage::StorageRpcResponse<nebula::storage::cpp2::QueryResponse> >&&)> > (nebula-graphd)
            #24 0x0000000001b3c5c8 _ZN5folly6detail8function14FunctionTraitsIFvONS_3TryIN6nebula7storage18StorageRpcResponseINS5_4cpp213QueryResponseEEEEEEEclESB_ (nebula-graphd)
            #25 0x0000000001b39d67 _ZZN5folly7futures6detail4CoreIN6nebula7storage18StorageRpcResponseINS4_4cpp213QueryResponseEEEE10doCallbackEvENUlvE0_clEv (nebula-graphd)
            #26 0x0000000001b3fc23 _ZN5folly6detail8function14FunctionTraitsIFvvEE9callSmallIZNS_7futures6detail4CoreIN6nebula7storage18StorageRpcResponseINSA_4cpp213QueryResponseEEEE10doCallbackEvEUlvE0_EEvRNS1_4DataE (nebula-graphd)
            #27 0x0000000001a56ff5 _ZN5folly6detail8function14FunctionTraitsIFvvEEclEv (nebula-graphd)
            #28 0x0000000001cb5120 _ZN6apache6thrift11concurrency14FunctionRunner3runEv (nebula-graphd)
            #29 0x0000000002442793 _ZN6apache6thrift11concurrency13ThreadManager4Task3runEv (nebula-graphd)
            #30 0x00000000024bb02e _ZN6apache6thrift11concurrency13PthreadThread10threadMainEPv (nebula-graphd)
            #31 0x00007ff42cf3458e start_thread (libpthread.so.0)
            #32 0x00007ff42ce61513 __clone (libc.so.6)
jude-zhu commented 5 years ago

Duplicate of #1203

zhangguoqing commented 5 years ago

closed by PR #1204