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 2020/05/28 16:52:09 UTC
[GitHub] [pulsar] renns opened a new issue #7088: NullPointerException when creating new reader in Java client with startMessageId that doesn't exist
renns opened a new issue #7088:
URL: https://github.com/apache/pulsar/issues/7088
I am seeing an exception in the pulsar logs (running version 2.5.1 in standalone mode) when creating a new reader in the Java client with a startMessageId that doesn't exist. See the exception log below.
Steps to reproduce the behavior:
1. Run pulsar in standalone mode
2. Create a reader in the Java client that listens on a topic
3. Send a few messages to the topic
4. Stop pulsar
5. Delete pulsar's data directory
6. Start pulsar again
7. Create reader with offset of the last message received from step 3
8. Wait 30 seconds
9. The client gets a TimeoutException and pulsar throws a NullPointerException
Expected behavior:
An appropriate error message should be returned to the client immediately.
Desktop:
- OS: Ubuntu 18.04
Code used to create the reader (scala code using Java pulsar client):
```
val reader =
pulsarClient
.newReader()
.topic(mailboxQueueInfo.privateMailboxId.value)
.startMessageId(initialMessageId)
.readerName(UUID.randomUUID().toString)
.create()
```
Exception details:
```
16:01:02.491 [pulsar-io-50-4] INFO org.apache.pulsar.broker.service.ServerCnx - New connection from /127.0.0.1:57434
16:01:02.503 [pulsar-io-50-4] INFO org.apache.pulsar.broker.service.ServerCnx - [/127.0.0.1:57434] Subscribing on topic persistent://public/default/5f6517bbcef94fcdb27e2ee623f01b3a / reader-aed45922b4
16:01:02.503 [pulsar-io-50-4] INFO org.apache.pulsar.broker.service.persistent.PersistentTopic - [persistent://public/default/5f6517bbcef94fcdb27e2ee623f01b3a][reader-aed45922b4] Creating non-durable subscription at msg id 121:12:-1:0
16:01:02.503 [pulsar-io-50-4] WARN org.apache.pulsar.broker.service.ServerCnx - [/127.0.0.1:57434][persistent://public/default/5f6517bbcef94fcdb27e2ee623f01b3a][reader-aed45922b4] Failed to create consumer: null
java.util.concurrent.CompletionException: java.lang.NullPointerException
at java.util.concurrent.CompletableFuture.encodeThrowable(CompletableFuture.java:273) ~[?:1.8.0_242]
at java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:1005) ~[?:1.8.0_242]
at java.util.concurrent.CompletableFuture.thenCompose(CompletableFuture.java:2137) ~[?:1.8.0_242]
at org.apache.pulsar.broker.service.ServerCnx.lambda$null$14(ServerCnx.java:809) ~[org.apache.pulsar-pulsar-broker-2.5.1.jar:2.5.1]
at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:616) ~[?:1.8.0_242]
at java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:628) ~[?:1.8.0_242]
at java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:1996) ~[?:1.8.0_242]
at org.apache.pulsar.broker.service.ServerCnx.lambda$handleSubscribe$16(ServerCnx.java:759) ~[org.apache.pulsar-pulsar-broker-2.5.1.jar:2.5.1]
at java.util.concurrent.CompletableFuture.uniApply(CompletableFuture.java:616) [?:1.8.0_242]
at java.util.concurrent.CompletableFuture.uniApplyStage(CompletableFuture.java:628) [?:1.8.0_242]
at java.util.concurrent.CompletableFuture.thenApply(CompletableFuture.java:1996) [?:1.8.0_242]
at org.apache.pulsar.broker.service.ServerCnx.handleSubscribe(ServerCnx.java:748) [org.apache.pulsar-pulsar-broker-2.5.1.jar:2.5.1]
at org.apache.pulsar.common.protocol.PulsarDecoder.channelRead(PulsarDecoder.java:216) [org.apache.pulsar-pulsar-common-2.5.1.jar:2.5.1]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:377) [io.netty-netty-transport-4.1.45.Final.jar:4.1.45.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [io.netty-netty-transport-4.1.45.Final.jar:4.1.45.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:355) [io.netty-netty-transport-4.1.45.Final.jar:4.1.45.Final]
at io.netty.handler.flow.FlowControlHandler.dequeue(FlowControlHandler.java:191) [io.netty-netty-handler-4.1.45.Final.jar:4.1.45.Final]
at io.netty.handler.flow.FlowControlHandler.channelRead(FlowControlHandler.java:153) [io.netty-netty-handler-4.1.45.Final.jar:4.1.45.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:377) [io.netty-netty-transport-4.1.45.Final.jar:4.1.45.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [io.netty-netty-transport-4.1.45.Final.jar:4.1.45.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:355) [io.netty-netty-transport-4.1.45.Final.jar:4.1.45.Final]
at io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:321) [io.netty-netty-codec-4.1.45.Final.jar:4.1.45.Final]
at io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:295) [io.netty-netty-codec-4.1.45.Final.jar:4.1.45.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:377) [io.netty-netty-transport-4.1.45.Final.jar:4.1.45.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [io.netty-netty-transport-4.1.45.Final.jar:4.1.45.Final]
at io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:355) [io.netty-netty-transport-4.1.45.Final.jar:4.1.45.Final]
at io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) [io.netty-netty-transport-4.1.45.Final.jar:4.1.45.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:377) [io.netty-netty-transport-4.1.45.Final.jar:4.1.45.Final]
at io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:363) [io.netty-netty-transport-4.1.45.Final.jar:4.1.45.Final]
at io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) [io.netty-netty-transport-4.1.45.Final.jar:4.1.45.Final]
at io.netty.channel.epoll.AbstractEpollStreamChannel$EpollStreamUnsafe.epollInReady(AbstractEpollStreamChannel.java:792) [io.netty-netty-transport-native-epoll-4.1.45.Final-linux-x86_64.jar:4.1.45.Final]
at io.netty.channel.epoll.EpollEventLoop.processReady(EpollEventLoop.java:475) [io.netty-netty-transport-native-epoll-4.1.45.Final-linux-x86_64.jar:4.1.45.Final]
at io.netty.channel.epoll.EpollEventLoop.run(EpollEventLoop.java:378) [io.netty-netty-transport-native-epoll-4.1.45.Final-linux-x86_64.jar:4.1.45.Final]
at io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:989) [io.netty-netty-common-4.1.45.Final.jar:4.1.45.Final]
at io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) [io.netty-netty-common-4.1.45.Final.jar:4.1.45.Final]
at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30) [io.netty-netty-common-4.1.45.Final.jar:4.1.45.Final]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_242]
Caused by: java.lang.NullPointerException
at org.apache.bookkeeper.mledger.impl.NonDurableCursorImpl.recoverCursor(NonDurableCursorImpl.java:65) ~[org.apache.pulsar-managed-ledger-2.5.1.jar:2.5.1]
at org.apache.bookkeeper.mledger.impl.NonDurableCursorImpl.<init>(NonDurableCursorImpl.java:51) ~[org.apache.pulsar-managed-ledger-2.5.1.jar:2.5.1]
at org.apache.bookkeeper.mledger.impl.ManagedLedgerImpl.newNonDurableCursor(ManagedLedgerImpl.java:855) ~[org.apache.pulsar-managed-ledger-2.5.1.jar:2.5.1]
at org.apache.pulsar.broker.service.persistent.PersistentTopic.lambda$getNonDurableSubscription$13(PersistentTopic.java:692) ~[org.apache.pulsar-pulsar-broker-2.5.1.jar:2.5.1]
at org.apache.pulsar.common.util.collections.ConcurrentOpenHashMap$Section.put(ConcurrentOpenHashMap.java:274) ~[org.apache.pulsar-pulsar-common-2.5.1.jar:2.5.1]
at org.apache.pulsar.common.util.collections.ConcurrentOpenHashMap.computeIfAbsent(ConcurrentOpenHashMap.java:129) ~[org.apache.pulsar-pulsar-common-2.5.1.jar:2.5.1]
at org.apache.pulsar.broker.service.persistent.PersistentTopic.getNonDurableSubscription(PersistentTopic.java:675) ~[org.apache.pulsar-pulsar-broker-2.5.1.jar:2.5.1]
at org.apache.pulsar.broker.service.persistent.PersistentTopic.subscribe(PersistentTopic.java:584) ~[org.apache.pulsar-pulsar-broker-2.5.1.jar:2.5.1]
at org.apache.pulsar.broker.service.ServerCnx.lambda$null$11(ServerCnx.java:824) ~[org.apache.pulsar-pulsar-broker-2.5.1.jar:2.5.1]
at java.util.concurrent.CompletableFuture.uniComposeStage(CompletableFuture.java:995) ~[?:1.8.0_242]
... 35 more
```
----------------------------------------------------------------
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:
users@infra.apache.org
[GitHub] [pulsar] zongtanghu commented on issue #7088: NullPointerException when creating new reader in Java client with startMessageId that doesn't exist
Posted by GitBox <gi...@apache.org>.
zongtanghu commented on issue #7088:
URL: https://github.com/apache/pulsar/issues/7088#issuecomment-647139762
You see, can you put forward a pr to fix this issue? @zhanghaou
----------------------------------------------------------------
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:
users@infra.apache.org