mirror of
https://github.com/gogrlx/nats-server.git
synced 2026-04-02 03:38:42 -07:00
Merge branch 'main' into dev
This commit is contained in:
@@ -7369,20 +7369,28 @@ func (o *consumerFileStore) UpdateDelivered(dseq, sseq, dc uint64, ts int64) err
|
||||
}
|
||||
|
||||
if dc > 1 {
|
||||
if maxdc := uint64(o.cfg.MaxDeliver); maxdc > 0 && dc > maxdc {
|
||||
// Make sure to remove from pending.
|
||||
delete(o.state.Pending, sseq)
|
||||
}
|
||||
if o.state.Redelivered == nil {
|
||||
o.state.Redelivered = make(map[uint64]uint64)
|
||||
}
|
||||
// Only update if greater then what we already have.
|
||||
if o.state.Redelivered[sseq] < dc {
|
||||
if o.state.Redelivered[sseq] < dc-1 {
|
||||
o.state.Redelivered[sseq] = dc - 1
|
||||
}
|
||||
}
|
||||
} else {
|
||||
// For AckNone just update delivered and ackfloor at the same time.
|
||||
o.state.Delivered.Consumer = dseq
|
||||
o.state.Delivered.Stream = sseq
|
||||
o.state.AckFloor.Consumer = dseq
|
||||
o.state.AckFloor.Stream = sseq
|
||||
if dseq > o.state.Delivered.Consumer {
|
||||
o.state.Delivered.Consumer = dseq
|
||||
o.state.AckFloor.Consumer = dseq
|
||||
}
|
||||
if sseq > o.state.Delivered.Stream {
|
||||
o.state.Delivered.Stream = sseq
|
||||
o.state.AckFloor.Stream = sseq
|
||||
}
|
||||
}
|
||||
// Make sure we flush to disk.
|
||||
o.kickFlusher()
|
||||
|
||||
Reference in New Issue
Block a user