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

[Bug] Multi-level (such as star topology) geo-replication doesn't work after PIP-180 in Pulsar 3.0.0 #23694

Closed
2 of 3 tasks
lhotari opened this issue Dec 9, 2024 · 1 comment
Labels
type/bug The PR fixed a bug or issue reported a bug

Comments

@lhotari
Copy link
Member

lhotari commented Dec 9, 2024

Search before asking

  • I searched in the issues and found nothing similar.

Read release policy

  • I understand that unsupported versions don't get bug fixes. I will attempt to reproduce the issue on a supported version of Pulsar client and Pulsar broker.

Version

Since Pulsar 3.0.0 with PR #17150 changes

Minimal reproduce step

This code break multi-level replication:

if (msg.isReplicated()) {
// Discard messages that were already replicated into this region
cursor.asyncDelete(entry.getPosition(), this, entry.getPosition());
entry.release();
msg.recycle();
continue;
}

What did you expect to see?

Before Pulsar 3.0.0, it has been possible to have multi-level replication in Pulsar clusters, for example with a star topology. Star topology is useful since instead of having every cluster connected with every other cluster, it's possible to configure geo-replication in a star topology where the number of connections is significantly reduced.
I'm not sure if star topology was officially ever supported, but it has been possible to configure geo-replication successfully in that way in pulsar 2.x.

What did you see instead?

Forwarding of replicated messages is prevented with code added in #17150.

Anything else?

No response

Are you willing to submit a PR?

  • I'm willing to submit a PR!
@lhotari lhotari added the type/bug The PR fixed a bug or issue reported a bug label Dec 9, 2024
@lhotari
Copy link
Member Author

lhotari commented Dec 9, 2024

It looks like multi-level 2-way replication has never been possible.

This is the code in branch-2.11:

if (msg.isReplicated()) {
// Discard messages that were already replicated into this region
cursor.asyncDelete(entry.getPosition(), this, entry.getPosition());
entry.release();
msg.recycle();
continue;
}

Closing this issue since it's not introduced in PIP-180.

@lhotari lhotari closed this as completed Dec 9, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type/bug The PR fixed a bug or issue reported a bug
Projects
None yet
Development

No branches or pull requests

1 participant