You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by GitBox <gi...@apache.org> on 2021/10/13 04:00:06 UTC
[GitHub] [pulsar] tomscut commented on issue #12333: Flaky-test: org.apache.pulsar.broker.admin.TopicPoliciesTest.testDisableSubscribeRate
tomscut commented on issue #12333:
URL: https://github.com/apache/pulsar/issues/12333#issuecomment-941895520
@eolivelli @nicoloboschi @lordcheng10
I found that the internal execution time was greater than the default 10s.
When updating the code from
```
Awaitility.await().untilAsserted(()-> {
Optional<SubscribeRateLimiter> limiter1 = (Optional<SubscribeRateLimiter>) field.get(topic);
assertTrue(limiter1.isPresent());
});
```
to
```
Awaitility.waitAtMost(PulsarResources.DEFAULT_OPERATION_TIMEOUT_SEC + 1, TimeUnit.SECONDS).untilAsserted(()-> {
Optional<SubscribeRateLimiter> limiter1 = (Optional<SubscribeRateLimiter>) field.get(topic);
assertTrue(limiter1.isPresent());
});
```
we can see following log
```
2021-10-13T11:53:24,107+0800 [metadata-store-10-1] WARN org.apache.pulsar.broker.service.persistent.DispatchRateLimiter - Failed to get message-rate for persistent://my-tenant/my-namespace/test-set-backlog-quota-partition-1
org.apache.pulsar.metadata.api.MetadataStoreException: Failed to get data from /admin/policies/my-tenant/my-namespace
at org.apache.pulsar.broker.resources.BaseResources.get(BaseResources.java:91) ~[classes/:?]
at org.apache.pulsar.broker.resources.NamespaceResources.getPolicies(NamespaceResources.java:105) ~[classes/:?]
at org.apache.pulsar.broker.service.persistent.DispatchRateLimiter.getPolicies(DispatchRateLimiter.java:324) ~[classes/:?]
at org.apache.pulsar.broker.service.persistent.SubscribeRateLimiter.getPoliciesSubscribeRate(SubscribeRateLimiter.java:237) ~[classes/:?]
at org.apache.pulsar.broker.service.persistent.SubscribeRateLimiter.getPoliciesSubscribeRate(SubscribeRateLimiter.java:215) ~[classes/:?]
at org.apache.pulsar.broker.service.persistent.SubscribeRateLimiter.<init>(SubscribeRateLimiter.java:60) ~[classes/:?]
at org.apache.pulsar.broker.service.persistent.PersistentTopic.initializeRateLimiterIfNeeded(PersistentTopic.java:379) ~[classes/:?]
at org.apache.pulsar.broker.service.persistent.PersistentTopic.onPoliciesUpdate(PersistentTopic.java:2409) ~[classes/:?]
at org.apache.pulsar.broker.service.BrokerService.lambda$null$80(BrokerService.java:1798) ~[classes/:?]
at java.util.Optional.ifPresent(Optional.java:159) ~[?:1.8.0_221]
at org.apache.pulsar.broker.service.BrokerService.lambda$null$81(BrokerService.java:1798) ~[classes/:?]
at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:656) ~[?:1.8.0_221]
at java.util.concurrent.CompletableFuture.uniAcceptStage(CompletableFuture.java:669) ~[?:1.8.0_221]
at java.util.concurrent.CompletableFuture.thenAccept(CompletableFuture.java:1997) ~[?:1.8.0_221]
at org.apache.pulsar.broker.service.BrokerService.lambda$null$82(BrokerService.java:1793) ~[classes/:?]
at org.apache.pulsar.common.util.collections.ConcurrentOpenHashMap$Section.forEach(ConcurrentOpenHashMap.java:387) ~[classes/:?]
at org.apache.pulsar.common.util.collections.ConcurrentOpenHashMap.forEach(ConcurrentOpenHashMap.java:159) ~[classes/:?]
at org.apache.pulsar.broker.service.BrokerService.lambda$handlePoliciesUpdates$83(BrokerService.java:1789) ~[classes/:?]
at java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:656) ~[?:1.8.0_221]
at java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:632) ~[?:1.8.0_221]
at java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474) ~[?:1.8.0_221]
at java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962) ~[?:1.8.0_221]
at org.apache.pulsar.metadata.impl.ZKMetadataStore.lambda$null$7(ZKMetadataStore.java:139) ~[classes/:?]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_221]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:1.8.0_221]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [netty-common-4.1.68.Final.jar:4.1.68.Final]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_221]
Caused by: java.util.concurrent.TimeoutException
at java.util.concurrent.CompletableFuture.timedGet(CompletableFuture.java:1771) ~[?:1.8.0_221]
at java.util.concurrent.CompletableFuture.get(CompletableFuture.java:1915) ~[?:1.8.0_221]
at org.apache.pulsar.broker.resources.BaseResources.get(BaseResources.java:86) ~[classes/:?]
... 26 more
```.
The code that causes the timeout is here ```getAsync(path).get(operationTimeoutSec, TimeUnit.SECONDS)```
```
protected Optional<T> get(String path) throws MetadataStoreException {
try {
return getAsync(path).get(operationTimeoutSec, TimeUnit.SECONDS);
} catch (ExecutionException e) {
throw (e.getCause() instanceof MetadataStoreException) ? (MetadataStoreException) e.getCause()
: new MetadataStoreException(e.getCause());
} catch (Exception e) {
throw new MetadataStoreException("Failed to get data from " + path, e);
}
}
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: commits-unsubscribe@pulsar.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org