You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by pe...@apache.org on 2021/01/07 02:05:46 UTC

[pulsar] branch branch-2.7 updated: [pulsar-client-api] Fix Unavailable Hash Range Condition (#9041)

This is an automated email from the ASF dual-hosted git repository.

penghui pushed a commit to branch branch-2.7
in repository https://gitbox.apache.org/repos/asf/pulsar.git


The following commit(s) were added to refs/heads/branch-2.7 by this push:
     new 2eca431  [pulsar-client-api] Fix Unavailable Hash Range Condition (#9041)
2eca431 is described below

commit 2eca431fafb576e33171bd5f2be1306213ba2e51
Author: k2la <mz...@gmail.com>
AuthorDate: Thu Dec 24 16:02:05 2020 +0900

    [pulsar-client-api] Fix Unavailable Hash Range Condition (#9041)
    
    ### Motivation
    https://github.com/apache/pulsar/blob/3b2c8526a96fc90e948dbeb510e8400a628c749a/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/KeySharedPolicy.java#L110-L112
    
    When range is [0, 65536], the above condition is false.
    
    ### Modification
    Change from `range1.getEnd() > DEFAULT_HASH_RANGE_SIZE` to `range1.getEnd() >= DEFAULT_HASH_RANGE_SIZE`.
    
    (cherry picked from commit 48779bd78632c4fee3ce54f3914333501fb3ff2f)
---
 .../org/apache/pulsar/client/api/KeySharedSubscriptionTest.java     | 6 +++---
 .../src/main/java/org/apache/pulsar/client/api/KeySharedPolicy.java | 2 +-
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/pulsar-broker/src/test/java/org/apache/pulsar/client/api/KeySharedSubscriptionTest.java b/pulsar-broker/src/test/java/org/apache/pulsar/client/api/KeySharedSubscriptionTest.java
index 9d914e1..50011d4 100644
--- a/pulsar-broker/src/test/java/org/apache/pulsar/client/api/KeySharedSubscriptionTest.java
+++ b/pulsar-broker/src/test/java/org/apache/pulsar/client/api/KeySharedSubscriptionTest.java
@@ -175,7 +175,7 @@ public class KeySharedSubscriptionTest extends ProducerConsumerBase {
 
         @Cleanup
         Consumer<Integer> consumer3 = createConsumer(topic, KeySharedPolicy.stickyHashRange()
-                .ranges(Range.of(40001, KeySharedPolicy.DEFAULT_HASH_RANGE_SIZE)));
+                .ranges(Range.of(40001, KeySharedPolicy.DEFAULT_HASH_RANGE_SIZE-1)));
 
         @Cleanup
         Producer<Integer> producer = createProducer(topic, enableBatch);
@@ -296,7 +296,7 @@ public class KeySharedSubscriptionTest extends ProducerConsumerBase {
 
         @Cleanup
         Consumer<Integer> consumer3 = createConsumer(topic, KeySharedPolicy.stickyHashRange()
-                .ranges(Range.of(40001, KeySharedPolicy.DEFAULT_HASH_RANGE_SIZE)));
+                .ranges(Range.of(40001, KeySharedPolicy.DEFAULT_HASH_RANGE_SIZE-1)));
 
         @Cleanup
         Producer<Integer> producer = createProducer(topic, enableBatch);
@@ -362,7 +362,7 @@ public class KeySharedSubscriptionTest extends ProducerConsumerBase {
 
         @Cleanup
         Consumer<Integer> consumer3 = createConsumer(topic, KeySharedPolicy.stickyHashRange()
-                .ranges(Range.of(40001, KeySharedPolicy.DEFAULT_HASH_RANGE_SIZE)));
+                .ranges(Range.of(40001, KeySharedPolicy.DEFAULT_HASH_RANGE_SIZE-1)));
 
         @Cleanup
         Producer<Integer> producer = createProducer(topic, enableBatch);
diff --git a/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/KeySharedPolicy.java b/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/KeySharedPolicy.java
index b9f0694..92ff3d2 100644
--- a/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/KeySharedPolicy.java
+++ b/pulsar-client-api/src/main/java/org/apache/pulsar/client/api/KeySharedPolicy.java
@@ -107,7 +107,7 @@ public abstract class KeySharedPolicy {
             }
             for (int i = 0; i < ranges.size(); i++) {
                 Range range1 = ranges.get(i);
-                if (range1.getStart() < 0 || range1.getEnd() > DEFAULT_HASH_RANGE_SIZE) {
+                if (range1.getStart() < 0 || range1.getEnd() >= DEFAULT_HASH_RANGE_SIZE) {
                     throw new IllegalArgumentException("Ranges must be [0, 65535] but provided range is " + range1);
                 }
                 for (int j = 0; j < ranges.size(); j++) {