Skip to content

[FIXED] Invalid JS ACK for subject with '@' character#6777

Merged
neilalexander merged 1 commit intomainfrom
maurice/invalid-js-ack
Apr 9, 2025
Merged

[FIXED] Invalid JS ACK for subject with '@' character#6777
neilalexander merged 1 commit intomainfrom
maurice/invalid-js-ack

Conversation

@MauriceVanVeen
Copy link
Copy Markdown
Member

Streams, consumers and subjects are allowed to have @ characters, but JS ACKs would be invalid if a client requests messages from a consumer leader and is not directly connected to the server hosting that leader.

When publishing a message with subject foo.with.@.at, a client would receive the following from the server:

subject: at
reply: $JS.ACK.StreamNoAt.ConsumerNoAt.1.1.1.1744203858108658190.0@foo.with

Instead the following should be sent/received:

subject: foo.with@at
reply: $JS.ACK.StreamNoAt.ConsumerNoAt.1.1.1.1744203986298728967.0

Clients would either recognize the invalid JS ACK and return errors, or for clients that would allow to msg.Ack(), the server would not be listening on that subject and the message would not be acked.

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

Signed-off-by: Maurice van Veen <github@mauricevanveen.com>
@MauriceVanVeen MauriceVanVeen requested a review from a team as a code owner April 9, 2025 13:08
Copy link
Copy Markdown
Member

@neilalexander neilalexander left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@neilalexander neilalexander merged commit 890aea9 into main Apr 9, 2025
45 checks passed
@neilalexander neilalexander deleted the maurice/invalid-js-ack branch April 9, 2025 14:18
neilalexander added a commit that referenced this pull request Apr 17, 2025
Includes the following (already cherry-picked) PRs:

- #6587
- #6607
- #6612
- #6609
- #6620
- #6668
- #6674
- #6647
- #6684
- #6691
- #6697
- #6705
- #6706
- #6704
- #6714
- #6720
- #6727
- #6730
- #6726
- #6732
- #6759
- #6753
- #6685
- #6769
- #6777
- #6785
- #6786
- #6778
- #6790
- #6791
- #6798
- #6794
- #6801

Signed-off-by: Neil Twigg <neil@nats.io>

Signed-off-by: Neil Twigg <neil@nats.io>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants