sangho0n / MookSabalBattle

0 stars 0 forks source link

gRPC Networking Error #14

Closed sangho0n closed 10 months ago

sangho0n commented 11 months ago

Why gRPC & Why the Error Occured

As player nickname duplicate check is needed before client travels to server's level, we implemented gRPC system to verify if session already contains duplicate nickname or not.

However, when client invokes the gRPC, server is abruptly shut down with fatal error as illustrated below:

Error Situation Reconstruction

  1. Before hosing the session 초기

  2. After hosting a session, listen server awaits clients to send gRPC with their respective nicknames 대기

  3. Right after client calls gRPC, server encounters a fatal error(In this case, we used Postman for calling gRPC) gRPC 호출 후 오류

And PIE Crash Reporter provides the following information:

Abort signal received

ucrtbase
ucrtbase
UnrealEditor_MookSabalBattle!grpc_core::Server::AllocatingRequestMatcherRegistered::MatchOrQueue()
UnrealEditor_MookSabalBattle!grpc_core::Server::CallData::PublishNewRpc()
UnrealEditor_MookSabalBattle!grpc_core::FilterStackCall::BatchControl::PostCompletion()
UnrealEditor_MookSabalBattle!grpc_core::FilterStackCall::BatchControl::ReceivingStreamReady()
UnrealEditor_MookSabalBattle!grpc_shutdown_blocking()
UnrealEditor_MookSabalBattle!grpc_core::MessageSizeParser::name()
UnrealEditor_MookSabalBattle!absl::lts_20220623::StatusOr<grpc_core::HttpClientFilter>::status()
UnrealEditor_MookSabalBattle!absl::lts_20220623::StatusOr<grpc_core::HttpClientFilter>::status()
UnrealEditor_MookSabalBattle!grpc_core::ExecCtx::Flush()
UnrealEditor_MookSabalBattle!grpc_timer_init_unset()
UnrealEditor_MookSabalBattle!grpc_pollset_work()
UnrealEditor_MookSabalBattle!ExecCtxPluck::`vector deleting destructor'()
UnrealEditor_MookSabalBattle!grpc_completion_queue_next()
UnrealEditor_MookSabalBattle!grpc::CompletionQueue::AsyncNextInternal()
UnrealEditor_MookSabalBattle!grpc::Server::SyncRequestThreadManager::PollForWork()
UnrealEditor_MookSabalBattle!grpc::ThreadManager::MainWorkLoop()
UnrealEditor_MookSabalBattle!grpc::internal::CallbackServerStreamingHandler<grpc::ByteBuffer,grpc::ByteBuffer>::ServerCallbackWriterImpl::reactor()
UnrealEditor_MookSabalBattle!grpc_core::internal::ThreadInternalsInterface::`vector deleting destructor'()
kernel32

What Have We Done to Resolve the Error

class MOOKSABALBATTLE_API URegisterNicknameServiceImpl final : public UObject, public NicknameService::Service{ ... grpc::Status RegisterNickname(grpc::ServerContext context, const NickName request, RegisterResponse* response) override; ... };


 // TODO : Include additional steps that will be performed to resolve the error

-------------------------------

## If you have a solution for this issue, feel free to comment your resolution below this! Thank you.