zymap opened a new issue #13551:
URL: https://github.com/apache/pulsar/issues/13551


   **Describe the bug**
   An NPE will appear when reset-cursor at a non-existent topic. In the old 
version, we are throw topic is not found error to the client, I think we should 
keep that behavior.
   
   **To Reproduce**
   Steps to reproduce the behavior:
   1. `docker pull apachepulsar/pulsar-all:2.9.1`
   2. `docker run --name pulsar -it  apachepulsar/pulsar-all:2.9.1 bash`
   3. enter the docker to start up pulsar standalone
   4. reset cursor : `bin/pulsar-admin topics reset-cursor non-existing -s sub`
   
   **Expected behavior**
   Get topic not found exception.
   
   
   **Desktop (please complete the following information):**
    - OS: [e.g. iOS]
   
   **Additional context**
   Pulsar Version: 2.9.1
   
   Broker error:
   ```
   2021-12-29T07:53:29,951+0000 [metadata-store-19-1] WARN  
org.apache.pulsar.broker.admin.impl.PersistentTopicsBase - 
[null][persistent://public/default/non-existing] Failed to reset cursor on 
subscription sub to time 1640764318176
   java.lang.NullPointerException: null
        at 
org.apache.pulsar.broker.web.RestException.getExceptionData(RestException.java:44)
 ~[org.apache.pulsar-pulsar-broker-2.9.1.jar:2.9.1]
        at 
org.apache.pulsar.broker.web.RestException.getResponse(RestException.java:81) 
~[org.apache.pulsar-pulsar-broker-2.9.1.jar:2.9.1]
        at 
org.apache.pulsar.broker.web.RestException.<init>(RestException.java:57) 
~[org.apache.pulsar-pulsar-broker-2.9.1.jar:2.9.1]
        at 
org.apache.pulsar.broker.admin.impl.PersistentTopicsBase.getTopicReference(PersistentTopicsBase.java:3613)
 ~[org.apache.pulsar-pulsar-broker-2.9.1.jar:2.9.1]
        at 
org.apache.pulsar.broker.admin.impl.PersistentTopicsBase.internalResetCursorForNonPartitionedTopic(PersistentTopicsBase.java:1966)
 ~[org.apache.pulsar-pulsar-broker-2.9.1.jar:2.9.1]
        at 
org.apache.pulsar.broker.admin.impl.PersistentTopicsBase.lambda$internalResetCursor$89(PersistentTopicsBase.java:1946)
 ~[org.apache.pulsar-pulsar-broker-2.9.1.jar:2.9.1]
        at 
java.util.concurrent.CompletableFuture$UniAccept.tryFire(CompletableFuture.java:714)
 ~[?:?]
        at 
java.util.concurrent.CompletableFuture.postComplete(CompletableFuture.java:506) 
~[?:?]
        at 
java.util.concurrent.CompletableFuture.complete(CompletableFuture.java:2073) 
~[?:?]
        at 
org.apache.pulsar.metadata.impl.ZKMetadataStore.lambda$null$7(ZKMetadataStore.java:158)
 ~[org.apache.pulsar-pulsar-metadata-2.9.1.jar:2.9.1]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 
[?:?]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 
[?:?]
        at 
io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 [io.netty-netty-common-4.1.72.Final.jar:4.1.72.Final]
        at java.lang.Thread.run(Thread.java:829) [?:?]
   ```
   
   Client error:
   
   ```
   root@a4b1093e63a4:/pulsar# bin/pulsar-admin topics reset-cursor non-existing 
-s sub --time 1m
   HTTP 500 Internal Server Error
   
   Reason: HTTP 500 Internal Server Error
   ```
   


-- 
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: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to