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