This is an automated email from the ASF dual-hosted git repository.
chunshao pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/horaedb.git
The following commit(s) were added to refs/heads/main by this push:
new 483eb98d fix: sequence overflow when dropping a table using a message
queue as WAL (#1550)
483eb98d is described below
commit 483eb98d188080fb2ccb4ae849fcdb45ebd718f9
Author: chunshao.rcs <[email protected]>
AuthorDate: Fri Aug 2 17:08:25 2024 +0800
fix: sequence overflow when dropping a table using a message queue as WAL
(#1550)
## Rationale
Fix the issue of sequence overflow when dropping a table using a message
queue as WAL.
close #1543
## Detailed Changes
Check the maximum value of sequence to prevent overflow.
## Test Plan
CI.
---
src/wal/src/message_queue_impl/wal.rs | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/src/wal/src/message_queue_impl/wal.rs
b/src/wal/src/message_queue_impl/wal.rs
index 89876cbf..293f4a9d 100644
--- a/src/wal/src/message_queue_impl/wal.rs
+++ b/src/wal/src/message_queue_impl/wal.rs
@@ -20,7 +20,7 @@
use std::sync::Arc;
use async_trait::async_trait;
-use common_types::SequenceNumber;
+use common_types::{SequenceNumber, MAX_SEQUENCE_NUMBER};
use generic_error::BoxError;
use message_queue::{kafka::kafka_impl::KafkaImpl, ConsumeIterator,
MessageQueue};
use runtime::Runtime;
@@ -70,8 +70,13 @@ impl<M: MessageQueue> WalManager for MessageQueueImpl<M> {
location: WalLocation,
sequence_num: SequenceNumber,
) -> Result<()> {
+ let delete_to_sequence_num = if sequence_num < MAX_SEQUENCE_NUMBER {
+ sequence_num + 1
+ } else {
+ MAX_SEQUENCE_NUMBER
+ };
self.0
- .mark_delete_to(location, sequence_num + 1)
+ .mark_delete_to(location, delete_to_sequence_num)
.await
.box_err()
.context(Delete)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]