diff --git a/server/stream.go b/server/stream.go index 0e75aa49..0374fe6c 100644 --- a/server/stream.go +++ b/server/stream.go @@ -520,6 +520,8 @@ func (mset *Stream) Purge() uint64 { return 0 } purged := mset.store.Purge() + // Purge dedupe. + mset.ddmap = nil stats := mset.store.State() var obs []*Consumer for _, o := range mset.consumers { diff --git a/test/jetstream_test.go b/test/jetstream_test.go index 485d1b2e..ee43f1d5 100644 --- a/test/jetstream_test.go +++ b/test/jetstream_test.go @@ -2896,6 +2896,10 @@ func TestJetStreamPublishDeDupe(t *testing.T) { if !pa.Duplicate { t.Fatalf("Expected duplicate to be set") } + + // Purge should wipe the msgIds as well. + mset.Purge() + nmids(0) } func TestJetStreamPullConsumerRemoveInterest(t *testing.T) {