반응형
정의한 proto로 java에서 python을 host로 하여 통신을 하는 중에 간헐적(주당 수차례)으로 발생한 이슈다.
message A {
string message = 1;
int32 number = 2;
repeated int32 index = 3;
string lang = 4;
string options = 5;
}
options 값이 없이 들어오는 경우가 간헐적으로 발생하였다.
이유는 정확히 파악이 안되었는데,
오~래 전에 C++로 서버 제작했을 때 마주한 버그 중에 고정 길이 패킷이 아닌 경우 유사한 현상을 경험했었다.
특히 마지막에 문자열 데이터를 가지고 있는 패킷들에서 송신 또는 수신 시 문자열 처리 중 오류로 마지막 문자열들이 사라지는 현상들이었다.
문자열이란 것이 Encoding 방식을 정해서 사용하지 않으면 문제를 발생시키는 요소인지라

혹시나 하는 생각에 다음과 같이 마지막에 고정길이 변수(valid)를 두어서 패킷의 마지막을 명확히 하였다.
message A {
string message = 1;
int32 number = 2;
repeated int32 index = 3;
string lang = 4;
string options = 5;
int32 valid = 6;
}
원인은 정확히 확인 안되었지만, 위의 조치로 1개월 이상 options 필드가 없이 수신되는 경우는 현재까지 발생하지 않고 있다.
grpc
A high performance, open source, general-purpose RPC framework - grpc
github.com
반응형
'이런 이슈 in 개발' 카테고리의 다른 글
| [AI] 생성형 AI(Generative AI) 충격적🤣 근황 (0) | 2023.05.18 |
|---|---|
| [AI] 코파일럿(Copilot) 활용법과 앞으로 나올 기능은?? (0) | 2023.04.25 |
| [AI] 생성 인공지능 서비스가 가져올 변화에 대해 우리가 꼭 알고 있어야 하는 몇 가지 (2) | 2023.03.23 |
| [JS] 챗GPT에게 탱크 게임 만들기를 부탁하다. (0) | 2023.02.13 |
| [HTML] video tag 사용 시 유의점 (0) | 2023.02.06 |
댓글