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

[pulsar-broker] fix deadlock on get-status rest-api call #4616

Merged
merged 1 commit into from Jun 30, 2019

Conversation

rdhabalia
Copy link
Contributor

Motivation

due to some issue if broker fails to complete topic-loading then getting stats of that topic blocks web-thread.

"pulsar-web-30-13" #242 prio=5 os_prio=0 tid=0x00002b0b3c001000 nid=0x2540 waiting on condition [0x00002b0aa7d0a000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x000000072560a180> (a java.util.concurrent.CompletableFuture$Signaller)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.CompletableFuture$Signaller.block(CompletableFuture.java:1693)
        at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3323)
        at java.util.concurrent.CompletableFuture.waitingGet(CompletableFuture.java:1729)
        at java.util.concurrent.CompletableFuture.join(CompletableFuture.java:1934)
        at org.apache.pulsar.broker.admin.impl.PersistentTopicsBase.getTopicReference(PersistentTopicsBase.java:1253)
        at org.apache.pulsar.broker.admin.impl.PersistentTopicsBase.internalGetStats(PersistentTopicsBase.java:592)
        at org.apache.pulsar.broker.admin.v1.PersistentTopics.getStats(PersistentTopics.java:240)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)

@rdhabalia rdhabalia added this to the 2.4.1 milestone Jun 26, 2019
@rdhabalia rdhabalia self-assigned this Jun 26, 2019
@rdhabalia
Copy link
Contributor Author

rerun java8 tests

@sijie sijie merged commit f272df9 into apache:master Jun 30, 2019
@rdhabalia rdhabalia deleted the dead_stats branch August 22, 2019 18:16
jiazhai pushed a commit that referenced this pull request Aug 28, 2019
### Motivation

due to some issue if broker fails to complete topic-loading then getting stats of that topic blocks web-thread.

```
"pulsar-web-30-13" #242 prio=5 os_prio=0 tid=0x00002b0b3c001000 nid=0x2540 waiting on condition [0x00002b0aa7d0a000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x000000072560a180> (a java.util.concurrent.CompletableFuture$Signaller)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at java.util.concurrent.CompletableFuture$Signaller.block(CompletableFuture.java:1693)
        at java.util.concurrent.ForkJoinPool.managedBlock(ForkJoinPool.java:3323)
        at java.util.concurrent.CompletableFuture.waitingGet(CompletableFuture.java:1729)
        at java.util.concurrent.CompletableFuture.join(CompletableFuture.java:1934)
        at org.apache.pulsar.broker.admin.impl.PersistentTopicsBase.getTopicReference(PersistentTopicsBase.java:1253)
        at org.apache.pulsar.broker.admin.impl.PersistentTopicsBase.internalGetStats(PersistentTopicsBase.java:592)
        at org.apache.pulsar.broker.admin.v1.PersistentTopics.getStats(PersistentTopics.java:240)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
```
(cherry picked from commit f272df9)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants