mirror of
https://github.com/gogrlx/nats-server.git
synced 2026-04-02 03:38:42 -07:00
@@ -4288,26 +4288,29 @@ func (fs *fileStore) State() StreamState {
|
||||
state.NumSubjects = fs.numSubjects()
|
||||
state.Deleted = nil // make sure.
|
||||
|
||||
cur := fs.state.FirstSeq
|
||||
if numDeleted := int((state.LastSeq - state.FirstSeq + 1) - state.Msgs); numDeleted > 0 {
|
||||
state.Deleted = make([]uint64, 0, numDeleted)
|
||||
cur := fs.state.FirstSeq
|
||||
|
||||
for _, mb := range fs.blks {
|
||||
mb.mu.Lock()
|
||||
fseq := mb.first.seq
|
||||
// Account for messages missing from the head.
|
||||
if fseq > cur {
|
||||
for seq := cur; seq < fseq; seq++ {
|
||||
state.Deleted = append(state.Deleted, seq)
|
||||
for _, mb := range fs.blks {
|
||||
mb.mu.Lock()
|
||||
fseq := mb.first.seq
|
||||
// Account for messages missing from the head.
|
||||
if fseq > cur {
|
||||
for seq := cur; seq < fseq; seq++ {
|
||||
state.Deleted = append(state.Deleted, seq)
|
||||
}
|
||||
}
|
||||
}
|
||||
cur = mb.last.seq + 1 // Expected next first.
|
||||
for seq := range mb.dmap {
|
||||
if seq < fseq {
|
||||
delete(mb.dmap, seq)
|
||||
} else {
|
||||
state.Deleted = append(state.Deleted, seq)
|
||||
cur = mb.last.seq + 1 // Expected next first.
|
||||
for seq := range mb.dmap {
|
||||
if seq < fseq {
|
||||
delete(mb.dmap, seq)
|
||||
} else {
|
||||
state.Deleted = append(state.Deleted, seq)
|
||||
}
|
||||
}
|
||||
mb.mu.Unlock()
|
||||
}
|
||||
mb.mu.Unlock()
|
||||
}
|
||||
fs.mu.RUnlock()
|
||||
|
||||
|
||||
@@ -873,8 +873,7 @@ func (ms *memStore) State() StreamState {
|
||||
|
||||
// Calculate interior delete details.
|
||||
if state.LastSeq > state.FirstSeq {
|
||||
state.NumDeleted = int((state.LastSeq - state.FirstSeq) - state.Msgs + 1)
|
||||
if state.NumDeleted > 0 {
|
||||
if state.NumDeleted = int((state.LastSeq - state.FirstSeq) - state.Msgs + 1); state.NumDeleted > 0 {
|
||||
state.Deleted = make([]uint64, 0, state.NumDeleted)
|
||||
// TODO(dlc) - Too Simplistic, once state is updated to allow runs etc redo.
|
||||
for seq := state.FirstSeq + 1; seq < ms.state.LastSeq; seq++ {
|
||||
|
||||
Reference in New Issue
Block a user