aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkomels <komels@ydb.tech>2022-12-09 15:14:13 +0300
committerkomels <komels@ydb.tech>2022-12-09 15:14:13 +0300
commitb1c604aaa95b3053251ce7420a18ca07c8cff8d6 (patch)
treee32d8789f9d5d72ec5cb1a4b13bb3a6d29de0e4f
parentb15acf7c8637a386caddf80b785a6eaeb72cac4f (diff)
downloadydb-b1c604aaa95b3053251ce7420a18ca07c8cff8d6.tar.gz
Fix seq-no shift
-rw-r--r--ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/write_session.cpp11
1 files changed, 5 insertions, 6 deletions
diff --git a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/write_session.cpp b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/write_session.cpp
index a7572339ae0..33e17f2bc36 100644
--- a/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/write_session.cpp
+++ b/ydb/public/sdk/cpp/client/ydb_persqueue_core/impl/write_session.cpp
@@ -246,7 +246,7 @@ void TWriteSession::OnCdsResponse(
OnSeqNoShift = false;
} else { // Switched from initial cluster to second one;
Y_VERIFY(CurrentCluster == InitialCluster);
- if (!AutoSeqNoMode.Defined() || !(*AutoSeqNoMode))
+ if (AutoSeqNoMode.GetOrElse(true))
OnSeqNoShift = true;
}
@@ -300,11 +300,6 @@ ui64 TWriteSession::GetNextSeqNoImpl(const TMaybe<ui64>& seqNo) {
ui64 seqNoValue = LastSeqNo + 1;
if (!AutoSeqNoMode.Defined()) {
AutoSeqNoMode = !seqNo.Defined();
- //! Disable SeqNo shift for manual SeqNo mode;
- if (seqNo.Defined()) {
- OnSeqNoShift = false;
- SeqNoShift = 0;
- }
}
if (seqNo.Defined()) {
if (*AutoSeqNoMode) {
@@ -315,6 +310,10 @@ ui64 TWriteSession::GetNextSeqNoImpl(const TMaybe<ui64>& seqNo) {
ThrowFatalError(
"Cannot call write() with defined SeqNo on WriteSession running in auto-seqNo mode"
);
+
+ //! Disable SeqNo shift for manual SeqNo mode;
+ OnSeqNoShift = false;
+ SeqNoShift = 0;
} else {
seqNoValue = *seqNo;
}