• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

nats-io / nats-server / 13513815732
83%

Build:
DEFAULT BRANCH: main
Ran 25 Feb 2025 05:48AM UTC
Jobs 1
Files 57
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

24 Feb 2025 07:33PM UTC coverage: 68.025% (-17.4%) from 85.444%
13513815732

push

github

web-flow
[FIXED] Preserve max delivered messages with Interest retention (#6575)

Resolves https://github.com/nats-io/nats-server/issues/6538

If a consumer reached max deliveries for a message, it should preserve
the redelivered state and allow inspecting its content. However, if a
new consumer would be created and consume this message as well, it would
still be removed under Interest retention.

This PR fixes that by using the redelivered state to keep marking
there's interest.

Only downside is that the redelivered state gets cleaned up after a
restart (this PR does not change/fix that). So if the consumer that had
a max delivery message keeps acknowledging messages and its
acknowledgement floor moves up, it would clean up the redelivered state
below this ack floor.

Honestly I feel like keeping messages around if max delivery is reached
makes the code very complex. It would be a lot cleaner if we'd only have
the acknowledgement floor, starting sequence, and pending messages
in-between, not also redelivered state that can be below ack floor. It's
not something we can change now I suppose, but I'd be in favor of having
messages automatically be removed once max delivery is reached and all
consumers have consumed the message. DLQ-style behavior would then be
more explicitly (and reliably) handled by the client, for example by
publishing into another stream and then TERM the message, instead of
relying on advisories that could be missed.

Signed-off-by: Maurice van Veen <github@mauricevanveen.com>

55031 of 80898 relevant lines covered (68.03%)

310123.27 hits per line

Uncovered Existing Lines

Lines Coverage ∆ File
1
97.87
-2.13% src/github.com/nats-io/nats-server/server/jetstream_errors.go
4
93.81
-4.12% src/github.com/nats-io/nats-server/server/jetstream_versioning.go
4
42.86
-57.14% src/github.com/nats-io/nats-server/server/service.go
7
75.95
-8.86% src/github.com/nats-io/nats-server/server/errors.go
17
69.23
-5.03% src/github.com/nats-io/nats-server/server/store.go
29
61.63
-16.86% src/github.com/nats-io/nats-server/server/log.go
37
84.42
-1.8% src/github.com/nats-io/nats-server/server/events.go
41
75.0
-20.1% src/github.com/nats-io/nats-server/server/util.go
42
6.67
-93.33% src/github.com/nats-io/nats-server/server/monitor_sort_opts.go
50
92.09
-2.06% src/github.com/nats-io/nats-server/server/gateway.go
51
46.88
-31.88% src/github.com/nats-io/nats-server/server/jwt.go
98
9.56
-72.06% src/github.com/nats-io/nats-server/server/signal.go
107
80.87
-10.29% src/github.com/nats-io/nats-server/server/parser.go
114
0.0
-50.22% src/github.com/nats-io/nats-server/server/proto.go
124
87.41
-10.01% src/github.com/nats-io/nats-server/server/sublist.go
147
54.69
-34.51% src/github.com/nats-io/nats-server/server/subject_transform.go
161
79.75
-5.29% src/github.com/nats-io/nats-server/server/raft.go
199
46.48
-38.87% src/github.com/nats-io/nats-server/server/dirstore.go
236
67.77
-21.07% src/github.com/nats-io/nats-server/server/auth.go
268
82.45
-10.99% src/github.com/nats-io/nats-server/server/route.go
328
84.19
-10.48% src/github.com/nats-io/nats-server/server/server.go
329
26.87
-63.15% src/github.com/nats-io/nats-server/server/msgtrace.go
373
74.65
-15.81% src/github.com/nats-io/nats-server/server/leafnode.go
386
22.75
-30.49% src/github.com/nats-io/nats-server/server/jetstream_errors_generated.go
436
63.2
-19.61% src/github.com/nats-io/nats-server/server/jetstream.go
446
75.85
-5.88% src/github.com/nats-io/nats-server/server/jetstream_cluster.go
454
77.74
-5.57% src/github.com/nats-io/nats-server/server/filestore.go
475
72.04
-14.26% src/github.com/nats-io/nats-server/server/accounts.go
521
47.63
-48.47% src/github.com/nats-io/nats-server/server/websocket.go
524
87.4
-7.84% src/github.com/nats-io/nats-server/server/client.go
530
52.04
-31.19% src/github.com/nats-io/nats-server/server/memstore.go
560
63.99
-20.64% src/github.com/nats-io/nats-server/server/monitor.go
671
70.28
-14.18% src/github.com/nats-io/nats-server/server/stream.go
691
53.58
-19.74% src/github.com/nats-io/nats-server/server/jetstream_api.go
696
46.33
-41.88% src/github.com/nats-io/nats-server/server/reload.go
938
60.19
-20.63% src/github.com/nats-io/nats-server/server/opts.go
949
71.34
-16.82% src/github.com/nats-io/nats-server/server/consumer.go
3490
1.53
-87.51% src/github.com/nats-io/nats-server/server/mqtt.go
Jobs
ID Job ID Ran Files Coverage
1 13513815732.1 25 Feb 2025 05:48AM UTC 57
68.03
GitHub Action Run
Source Files on build 13513815732
  • Tree
  • List 57
  • Changed 51
  • Source Changed 2
  • Coverage Changed 39
Coverage ∆ File Lines Relevant Covered Missed Hits/Line
  • Back to Repo
  • Github Actions Build #13513815732
  • e938ac01 on github
  • Prev Build on main (#13490973811)
  • Next Build on main (#13536697685)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc