diff options
author | ildar-khisam <ikhis@ydb.tech> | 2022-09-05 18:10:31 +0300 |
---|---|---|
committer | ildar-khisam <ikhis@ydb.tech> | 2022-09-05 18:10:31 +0300 |
commit | b016e5ad8257fa631b2d7aaa4b7111a3256027de (patch) | |
tree | 7d9461117a268655267cbd823ae4440a9651fe1d | |
parent | f1ee295b388568dbcc56001aafe25ca1711ee49e (diff) | |
download | ydb-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.ipp | 9 |
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; } |