Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Issue 7554][broker] Split message ranges by ledger ID and store them in individualDeletedMessages #7861

Merged
merged 1 commit into from
Aug 27, 2020

Conversation

massakam
Copy link
Contributor

Fixes #7554

Motivation

As mentioned in #7554, the class of individualDeletedMessages is different between Pulsar 2.3.2 (and earlier) and 2.4.0 (and later). This causes some of ranges contained in individualDeletedMessages to be lost when the version of Pulsar is upgraded, and a large number of messages that have already been acked can be redelivered to consumers.

Also, even if the Pulsar version is 2.4.0 or later, the same phenomenon occurs when the value of managedLedgerUnackedRangesOpenCacheSetEnabled is switched from false to true.

Modifications

If the list of individually deleted message ranges loaded from ZK contains ranges that span different ledgers, split the ranges by ledger ID and store them in individualDeletedMessages.

As a result, information about deleted message ranges is never lost and messages that have already been acked will not be redelivered.

@massakam massakam added type/bug The PR fixed a bug or issue reported a bug area/broker release/2.6.2 labels Aug 20, 2020
@massakam massakam added this to the 2.7.0 milestone Aug 20, 2020
@massakam massakam self-assigned this Aug 20, 2020
@sijie sijie merged commit 0b7f034 into apache:master Aug 27, 2020
@massakam massakam deleted the acked-msg-redelivery branch August 28, 2020 01:09
lbenc135 pushed a commit to lbenc135/pulsar that referenced this pull request Sep 5, 2020
…Messages (apache#7861)

Fixes apache#7554

### Motivation

As mentioned in apache#7554, the class of `individualDeletedMessages` is different between Pulsar 2.3.2 (and earlier) and 2.4.0 (and later). This causes some of ranges contained in `individualDeletedMessages` to be lost when the version of Pulsar is upgraded, and a large number of messages that have already been acked can be redelivered to consumers.

Also, even if the Pulsar version is 2.4.0 or later, the same phenomenon occurs when the value of `managedLedgerUnackedRangesOpenCacheSetEnabled` is switched from false to true.

### Modifications

If the list of individually deleted message ranges loaded from ZK contains ranges that span different ledgers, split the ranges by ledger ID and store them in `individualDeletedMessages`.

As a result, information about deleted message ranges is never lost and messages that have already been acked will not be redelivered.
lbenc135 pushed a commit to lbenc135/pulsar that referenced this pull request Sep 5, 2020
…Messages (apache#7861)

Fixes apache#7554

### Motivation

As mentioned in apache#7554, the class of `individualDeletedMessages` is different between Pulsar 2.3.2 (and earlier) and 2.4.0 (and later). This causes some of ranges contained in `individualDeletedMessages` to be lost when the version of Pulsar is upgraded, and a large number of messages that have already been acked can be redelivered to consumers.

Also, even if the Pulsar version is 2.4.0 or later, the same phenomenon occurs when the value of `managedLedgerUnackedRangesOpenCacheSetEnabled` is switched from false to true.

### Modifications

If the list of individually deleted message ranges loaded from ZK contains ranges that span different ledgers, split the ranges by ledger ID and store them in `individualDeletedMessages`.

As a result, information about deleted message ranges is never lost and messages that have already been acked will not be redelivered.
lbenc135 pushed a commit to lbenc135/pulsar that referenced this pull request Sep 5, 2020
…Messages (apache#7861)

Fixes apache#7554

### Motivation

As mentioned in apache#7554, the class of `individualDeletedMessages` is different between Pulsar 2.3.2 (and earlier) and 2.4.0 (and later). This causes some of ranges contained in `individualDeletedMessages` to be lost when the version of Pulsar is upgraded, and a large number of messages that have already been acked can be redelivered to consumers.

Also, even if the Pulsar version is 2.4.0 or later, the same phenomenon occurs when the value of `managedLedgerUnackedRangesOpenCacheSetEnabled` is switched from false to true.

### Modifications

If the list of individually deleted message ranges loaded from ZK contains ranges that span different ledgers, split the ranges by ledger ID and store them in `individualDeletedMessages`.

As a result, information about deleted message ranges is never lost and messages that have already been acked will not be redelivered.
wolfstudy pushed a commit that referenced this pull request Oct 30, 2020
…Messages (#7861)

Fixes #7554

### Motivation

As mentioned in #7554, the class of `individualDeletedMessages` is different between Pulsar 2.3.2 (and earlier) and 2.4.0 (and later). This causes some of ranges contained in `individualDeletedMessages` to be lost when the version of Pulsar is upgraded, and a large number of messages that have already been acked can be redelivered to consumers.

Also, even if the Pulsar version is 2.4.0 or later, the same phenomenon occurs when the value of `managedLedgerUnackedRangesOpenCacheSetEnabled` is switched from false to true.

### Modifications

If the list of individually deleted message ranges loaded from ZK contains ranges that span different ledgers, split the ranges by ledger ID and store them in `individualDeletedMessages`.

As a result, information about deleted message ranges is never lost and messages that have already been acked will not be redelivered.

(cherry picked from commit 0b7f034)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/broker release/2.6.2 type/bug The PR fixed a bug or issue reported a bug
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Messages that have already been acked are redelivered when upgrading Pulsar version
3 participants