jerrypeng opened a new pull request #9554:
URL: https://github.com/apache/pulsar/pull/9554
### Motivation
When multiple producers contend to become the exclusive producer. A race
condition can occur and the following exception can happen but gets silently
swallowed which eventually leads to a client timeout.
21:44:46.038 [ForkJoinPool.commonPool-worker-2] ERROR
org.apache.pulsar.broker.service.AbstractTopic - got error:
java.util.NoSuchElementException
java.util.NoSuchElementException: null
at
java.util.concurrent.ConcurrentHashMap$KeyIterator.next(ConcurrentHashMap.java:3416)
~[?:1.8.0_231]
at
java.util.concurrent.ConcurrentHashMap$KeyIterator.nextElement(ConcurrentHashMap.java:3423)
~[?:1.8.0_231]
at
org.apache.pulsar.broker.service.AbstractTopic.incrementTopicEpochIfNeeded(AbstractTopic.java:399)
~[pulsar-broker.jar:2.8.0-SNAPSHOT]
at
org.apache.pulsar.broker.service.AbstractTopic.addProducer(AbstractTopic.java:346)
~[pulsar-broker.jar:2.8.0-SNAPSHOT]
at
org.apache.pulsar.broker.service.persistent.PersistentTopic.addProducer(PersistentTopic.java:509)
~[pulsar-broker.jar:2.8.0-SNAPSHOT]
at
org.apache.pulsar.broker.service.ServerCnx.lambda$null$22(ServerCnx.java:1183)
~[pulsar-broker.jar:2.8.0-SNAPSHOT]
at
java.util.concurrent.CompletableFuture.uniAccept(CompletableFuture.java:656)
~[?:1.8.0_231]
at
java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:632)
~[?:1.8.0_231]
at
java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:474)
~[?:1.8.0_231]
at
java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:1962)
~[?:1.8.0_231]
at
org.apache.pulsar.broker.service.schema.BookkeeperSchemaStorage.lambda$null$6(BookkeeperSchemaStorage.java:230)
~[pulsar-broker.jar:2.8.0-SNAPSHOT]
at
java.util.concurrent.CompletableFuture.uniHandle(CompletableFuture.java:822)
[?:1.8.0_231]
at
java.util.concurrent.CompletableFuture$UniHandle.tryFire(CompletableFuture.java:797)
[?:1.8.0_231]
at
java.util.concurrent.CompletableFuture$Completion.exec(CompletableFuture.java:443)
[?:1.8.0_231]
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
[?:1.8.0_231]
at
java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
[?:1.8.0_231]
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
[?:1.8.0_231]
at
java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
[?:1.8.0_231]
----------------------------------------------------------------
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.
For queries about this service, please contact Infrastructure at:
[email protected]