Skip to content

[Bug] Produce chunk messages failed when topic level maxMessageSize is set. #13360

@Jason918

Description

@Jason918

Describe the bug
Produce chunk messages failed when topic level maxMessageSize is set.
See details in the following unit test case.

To Reproduce
See this new unit test code in org.apache.pulsar.broker.admin.TopicPoliciesTest

   @Test
   public void testMaxMessageSizeWithChunking() throws Exception {
       this.conf.setMaxMessageSize(10);

       @Cleanup
       Producer<byte[]> producer = pulsarClient.newProducer()
               .topic(persistenceTopic)
               .enableChunking(true)
               .enableBatching(false)
               .create();

       PersistentTopic topic = (PersistentTopic) pulsar.getBrokerService().getTopic(persistenceTopic,false).join().get();

       byte[] data = new byte[100];
       producer.send(data);

       // success with maxMessageSize is 10
       admin.topicPolicies().setMaxMessageSize(persistenceTopic, 10);
       Awaitility.await().untilAsserted(() -> {
           Assert.assertEquals((int) topic.getHierarchyTopicPolicies().getTopicMaxMessageSize().get(), 10);
       });
       producer.send(data);

       // failed with maxMessageSize is 9
       admin.topicPolicies().setMaxMessageSize(persistenceTopic, 9);
       Awaitility.await().untilAsserted(() -> {
           Assert.assertEquals((int) topic.getHierarchyTopicPolicies().getTopicMaxMessageSize().get(), 9);
       });
       producer.send(data);
   }

Expected behavior
Chunking should work fine if we change maxMessageSize.

Screenshots
NA

Desktop (please complete the following information):

  • OS: macOS

Additional context
NA

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions