apache / apache/pulsar

[Bug] The global topic policy config override the local topic policy config

Open
#21,202 3 comments 0 reactions 1 assignee Claimed by @chenhongSZ View on GitHub
Stale type/bug
Dominant language
Java
Stars
15.3k
Forks
3.8k
Avg merge
1d 14h
Merged PRs (30d)
160

Description

### Search before asking

- [X] I searched in the [issues](https://github.com/apache/pulsar/issues) and found nothing similar.

### Version

2.10.5

### Minimal reproduce step

1. create a Topic
`./pulsar-admin --admin-url http://127.0.0.1:8881 topics create-partitioned-topic -p 2 persistent://geo/geo/geo_3`

2. set local topic policy (This problem exists in all configurations, max-message-size is used here to demonstrate)
` ./pulsar-admin --admin-url http://127.0.0.1:8880 topicPolicies set-max-message-size persistent://geo/geo/geo_3 -m 10000`

3. set global topic policy
` ./pulsar-admin --admin-url http://127.0.0.1:8880 topicPolicies set-max-message-size persistent://geo/geo/geo_3 -g -m 10`

4. check the topic policy
`./pulsar-admin --admin-url http://127.0.0.1:8880 topicPolicies get-max-message-size persistent://geo/geo/geo_3`
result: 10000

`./pulsar-admin --admin-url http://127.0.0.1:8880 topicPolicies get-max-message-size persistent://geo/geo/geo_3 -g`
result: 10

4. verify the configuration to take effect
`./pulsar-client --url pulsar://127.0.0.1:6650 produce -m 0123456780123456789 persistent://geo/geo/geo_3`

### What did you expect to see?

2023-09-18T20:25:03,301+0800 [main] INFO org.apache.pulsar.client.cli.PulsarClientTool - 1 messages successfully produced

### What did you see instead?

2023-09-18T20:25:33,934+0800 [main] ERROR org.apache.pulsar.client.cli.PulsarClientTool - Exceed maximum message size
org.apache.pulsar.client.api.PulsarClientException$NotAllowedException: Exceed maximum message size
at org.apache.pulsar.client.api.PulsarClientException.unwrap(PulsarClientException.java:1048) ~[org.apache.pulsar-pulsar-client-api-2.10.4.jar:2.10.4]
at org.apache.pulsar.client.impl.TypedMessageBuilderImpl.send(TypedMessageBuilderImpl.java:90) ~[org.apache.pulsar-pulsar-client-original-2.10.4.jar:2.10.4]
at org.apache.pulsar.client.cli.CmdProduce.publish(CmdProduce.java:309) ~[org.apache.pulsar-pulsar-client-tools-2.10.4.jar:2.10.4]
at org.apache.pulsar.client.cli.CmdProduce.run(CmdProduce.java:241) ~[org.apache.pulsar-pulsar-client-tools-2.10.4.jar:2.10.4]
at org.apache.pulsar.client.cli.PulsarClientTool.run(PulsarClientTool.java:184) ~[org.apache.pulsar-pulsar-client-tools-2.10.4.jar:2.10.4]
at org.apache.pulsar.client.cli.PulsarClientTool.main(PulsarClientTool.java:220) ~[org.apache.pulsar-pulsar-client-tools-2.10.4.jar:2.10.4]
2023-09-18T20:25:33,937+0800 [main] INFO org.apache.pulsar.client.cli.PulsarClientTool - 0 messages successfully produced

### Anything else?

as [PIP-92](https://github.com/apache/pulsar/wiki/PIP-92%3A-Topic-policy-across-multiple-clusters) described:
After adding the global topic policy, the topic applied priority is:

Local cluster topic > policy Global topic policy > Namespace policy > Broker default configuration

the global topic policy config shouldn't override the local topic policy config.

### Are you willing to submit a PR?

- [X] I'm willing to submit a PR!

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.