aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorildar-khisam <ikhis@ydb.tech>2022-09-05 18:10:31 +0300
committerildar-khisam <ikhis@ydb.tech>2022-09-05 18:10:31 +0300
commitb016e5ad8257fa631b2d7aaa4b7111a3256027de (patch)
tree7d9461117a268655267cbd823ae4440a9651fe1d
parentf1ee295b388568dbcc56001aafe25ca1711ee49e (diff)
downloadydb-b016e5ad8257fa631b2d7aaa4b7111a3256027de.tar.gz
fix codec ids parse in write requests
fix codec ids parse in write requests
-rw-r--r--ydb/services/persqueue_v1/actors/write_session_actor.ipp9
1 files changed, 6 insertions, 3 deletions
diff --git a/ydb/services/persqueue_v1/actors/write_session_actor.ipp b/ydb/services/persqueue_v1/actors/write_session_actor.ipp
index 22a249811e..84d7a7ee75 100644
--- a/ydb/services/persqueue_v1/actors/write_session_actor.ipp
+++ b/ydb/services/persqueue_v1/actors/write_session_actor.ipp
@@ -138,7 +138,10 @@ inline void FillChunkDataFromReq(
const auto& msg = writeRequest.messages(messageIndex);
proto.SetSeqNo(msg.seq_no());
proto.SetCreateTime(::google::protobuf::util::TimeUtil::TimestampToMilliseconds(msg.created_at()));
- proto.SetCodec(writeRequest.codec());
+ // TODO (ildar-khisam@): refactor codec enum convert
+ if (writeRequest.codec() > 0) {
+ proto.SetCodec(writeRequest.codec() - 1);
+ }
proto.SetData(msg.data());
}
@@ -1384,8 +1387,8 @@ void TWriteSessionActor<UseMigrationProtocol>::Handle(typename TEvWrite::TPtr& e
}
const ui32 codecID = data.codec();
- TString error;
- if (!ValidateWriteWithCodec(InitialPQTabletConfig, codecID, error)) {
+ TString error = "unspecified (id 0)";
+ if (codecID == 0 || !ValidateWriteWithCodec(InitialPQTabletConfig, codecID - 1, error)) {
CloseSession(TStringBuilder() << "bad write request - codec is invalid: " << error, PersQueue::ErrorCode::BAD_REQUEST, ctx);
return false;
}