Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-139590

QtGrpc: ChatServer crashes in TcParser::MpMessage

XMLWordPrintable

    • Icon: Task Task
    • Resolution: Invalid
    • Icon: P2: Important P2: Important
    • None
    • None
    • GRPC
    • None
    • macOS
    • 8
    • Foundation Sprint 137

      It was observed that the QtGrpc Chat server crashes with the following backtrace:

       

      (lldb) target create "./qtgrpc_chat_server"
      Current executable set to '/Users/vladimir/development/builds/build-QtGrpcChat-Qt_6_10_0_for_macOS-Debug/server/qtgrpc_chat_server' (arm64).
      (lldb) run
      Process 58460 launched: '/Users/vladimir/development/builds/build-QtGrpcChat-Qt_6_10_0_for_macOS-Debug/server/qtgrpc_chat_server' (arm64)
      Server listening on https://0.0.0.0:65002
      Server listening on http://0.0.0.0:65003
      login:  0x119004210, t1
      login:  0x10ee05050, t2
      Process 58460 stopped
      * thread #10, stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
          frame #0: 0x0000000000000000
      error: memory read failed for 0x0
      Target 0: (qtgrpc_chat_server) stopped.
      (lldb) (lldb) thread backtrace
      * thread #10, stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
        * frame #0: 0x0000000000000000
          frame #1: 0x0000000100c53134 libprotobuf.29.3.0.dylib`char const* google::protobuf::internal::TcParser::MpMessage<false>(google::protobuf::MessageLite*, char const*, google::protobuf::internal::ParseContext*, google::protobuf::internal::TcFieldData, google::protobuf::internal::TcParseTableBase const*, unsigned long long) + 464
          frame #2: 0x0000000100c9dab0 libprotobuf.29.3.0.dylib`bool google::protobuf::internal::MergeFromImpl<false>(google::protobuf::io::ZeroCopyInputStream*, google::protobuf::MessageLite*, google::protobuf::internal::TcParseTableBase const*, google::protobuf::MessageLite::ParseFlags) + 188
          
        ->frame #3: 0x0000000100c9ec04 libprotobuf.29.3.0.dylib`google::protobuf::MessageLite::ParseFromZeroCopyStream(google::protobuf::io::ZeroCopyInputStream*) + 24
          frame #4: 0x000000010003457c qtgrpc_chat_server`grpc::Status grpc::GenericDeserialize<grpc::ProtoBufferReader, chat::ChatMessage>(buffer=0x000000011801b030, msg=0x00006000002b4748) at generic_serialize.h:92:15
          frame #5: 0x00000001000343b0 qtgrpc_chat_server`grpc::SerializationTraits<chat::ChatMessage, void>::Deserialize(buffer=0x000000011801b030, msg=0x00006000002b4748) at proto_utils.h:56:12
          frame #6: 0x0000000100034220 qtgrpc_chat_server`grpc::internal::CallOpRecvMessage<chat::ChatMessage>::FinishOp(this=0x000000011801b020, status=0x00000001702e6e17) at call_op_set.h:450:13
          frame #7: 0x0000000100033ca4 qtgrpc_chat_server`grpc::internal::CallOpSet<grpc::internal::CallOpRecvMessage<chat::ChatMessage>, grpc::internal::CallNoOp<2>, grpc::internal::CallNoOp<3>, grpc::internal::CallNoOp<4>, grpc::internal::CallNoOp<5>, grpc::internal::CallNoOp<6>>::FinalizeResult(this=0x000000011801b018, tag=0x00000001702e6e08, status=0x00000001702e6e17) at call_op_set.h:922:16
          frame #8: 0x0000000100037658 qtgrpc_chat_server`grpc::internal::CallbackWithSuccessTag::Run(this=0x000000011801b170, ok=true) at callback_common.h:221:30
          frame #9: 0x000000010003753c qtgrpc_chat_server`grpc::internal::CallbackWithSuccessTag::StaticRun(cb=0x000000011801b170, ok=1) at callback_common.h:212:47
          frame #10: 0x00000001012d1a44 libgrpc.49.dylib`void absl::lts_20240722::internal_any_invocable::RemoteInvoker<false, void, cq_end_op_for_callback(grpc_completion_queue*, void*, absl::lts_20240722::Status, void (*)(void*, grpc_cq_completion*), void*, grpc_cq_completion*, bool)::$_0&>(absl::lts_20240722::internal_any_invocable::TypeErasedState*) + 44
          frame #11: 0x000000010128bc20 libgrpc.49.dylib`grpc_event_engine::experimental::SelfDeletingClosure::Run() + 28
          frame #12: 0x000000010128ba7c libgrpc.49.dylib`grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::Step() + 404
          frame #13: 0x000000010128b684 libgrpc.49.dylib`grpc_event_engine::experimental::WorkStealingThreadPool::ThreadState::ThreadBody() + 152
          frame #14: 0x000000010128be40 libgrpc.49.dylib`grpc_event_engine::experimental::WorkStealingThreadPool::WorkStealingThreadPoolImpl::StartThread()::$_0::__invoke(void*) + 20
          frame #15: 0x000000010064fea8 libgpr.49.dylib`grpc_core::(anonymous namespace)::ThreadInternalsPosix::ThreadInternalsPosix(char const*, void (*)(void*), void*, bool*, grpc_core::Thread::Options const&)::'lambda'(void*)::__invoke(void*) + 132
          frame #16: 0x000000018c8efc0c libsystem_pthread.dylib`_pthread_start + 136
      (lldb) 
       

        No reviews matched the request. Check your Options in the drop-down menu of this sections header.

            dennisoberst Dennis Oberst
            dennisoberst Dennis Oberst
            Vladimir Minenko Vladimir Minenko
            Alex Blasche Alex Blasche
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated:
              Resolved:

                There are no open Gerrit changes