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 2019/10/14 19:45:23 UTC

[GitHub] [pulsar] Lanayx opened a new issue #5384: Topic compaction fails with 500 error

Lanayx opened a new issue #5384: Topic compaction fails with 500 error
URL: https://github.com/apache/pulsar/issues/5384
 
 
   **Describe the bug**
   I'm running pulsar 2.4.1 on minikube installed with Helm template. I create topic in `retention` namespace where some retention is set ( in my case --time 3h --size 1G). Then I sent 100 messages to the topic with the same key, and then wanted to enable compacting for this topic. Tried several ways, 
   
   `bin/pulsar-admin topics compact persistent://public/retention/topic-2`
   returns
   ```
   HTTP 500 Internal Server Error
   
   Reason: HTTP 500 Internal Server Error
   ```
   Direct REST call `PUT /admin/v2/persistent/public/retention/topic-2/compaction HTTP/1.1`
   returns
   ```
    --- An unexpected error occurred in the server ---
   
   Message: org.apache.pulsar.broker.PulsarServerException: java.lang.IllegalArgumentException: Param serviceUrl must not be blank.
   
   Stacktrace:
   
   org.apache.pulsar.broker.PulsarServerException: org.apache.pulsar.broker.PulsarServerException: java.lang.IllegalArgumentException: Param serviceUrl must not be blank.
   	at org.apache.pulsar.broker.PulsarService.getCompactor(PulsarService.java:809)
   	at org.apache.pulsar.broker.service.persistent.PersistentTopic.triggerCompaction(PersistentTopic.java:1775)
   	at org.apache.pulsar.broker.admin.impl.PersistentTopicsBase.internalTriggerCompaction(PersistentTopicsBase.java:1262)
   	at org.apache.pulsar.broker.admin.v2.PersistentTopics.compact(PersistentTopics.java:838)
   	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)
   	at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:76)
   	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:148)
   	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:191)
   	at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$VoidOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:183)
   	at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:103)
   	at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:493)
   	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:415)
   	at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:104)
   	at org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:277)
   	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:272)
   	at org.glassfish.jersey.internal.Errors$1.call(Errors.java:268)
   	at org.glassfish.jersey.internal.Errors.process(Errors.java:316)
   	at org.glassfish.jersey.internal.Errors.process(Errors.java:298)
   	at org.glassfish.jersey.internal.Errors.process(Errors.java:268)
   	at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:289)
   	at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:256)
   	at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:703)
   	at org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:416)
   	at org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:370)
   	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:389)
   	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:342)
   	at org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:229)
   	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:865)
   	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1655)
   	at org.apache.pulsar.broker.web.ResponseHandlerFilter.doFilter(ResponseHandlerFilter.java:53)
   	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
   	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
   	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
   	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
   	at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
   	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
   	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
   	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
   	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
   	at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
   	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
   	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
   	at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:220)
   	at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126)
   	at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:174)
   	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
   	at org.eclipse.jetty.server.Server.handle(Server.java:503)
   	at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
   	at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
   	at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
   	at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
   	at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
   	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
   	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
   	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
   	at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
   	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
   	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
   	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
   	at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
   	at java.lang.Thread.run(Thread.java:748)
   Caused by: org.apache.pulsar.broker.PulsarServerException: java.lang.IllegalArgumentException: Param serviceUrl must not be blank.
   	at org.apache.pulsar.broker.PulsarService.getClient(PulsarService.java:839)
   	at org.apache.pulsar.broker.PulsarService.getCompactor(PulsarService.java:806)
   	... 63 more
   Caused by: java.lang.IllegalArgumentException: Param serviceUrl must not be blank.
   	at org.apache.pulsar.client.impl.ClientBuilderImpl.serviceUrl(ClientBuilderImpl.java:84)
   	at org.apache.pulsar.broker.PulsarService.getClient(PulsarService.java:828)
   	... 64 more
   ```
   Also tried to run this command
   `bin/pulsar compact-topic --topic persistent://public/retention/topic-2` which led to those errors: https://pastebin.com/ft8THHnC
   
   **Expected behavior**
   Expected comaction to succeed
   
   **Desktop (please complete the following information):**
    - minikube
   - 2.4.1 pulsar version
   
   **Additional context**
   [Slack discussion](https://apache-pulsar.slack.com/archives/C5Z4T36F7/p1571065681208400) 
   

----------------------------------------------------------------
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


With regards,
Apache Git Services