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 2021/12/30 09:45:53 UTC

[GitHub] [pulsar] 315157973 commented on a change in pull request #13571: Fix NPE when unloading namespace bundle

315157973 commented on a change in pull request #13571:
URL: https://github.com/apache/pulsar/pull/13571#discussion_r776647932



##########
File path: pulsar-broker/src/main/java/org/apache/pulsar/broker/service/BrokerService.java
##########
@@ -874,17 +874,18 @@ public void unloadNamespaceBundlesGracefully() {
             // unload all namespace-bundles gracefully
             long closeTopicsStartTime = System.nanoTime();
             Set<NamespaceBundle> serviceUnits = pulsar.getNamespaceService().getOwnedServiceUnits();
-            serviceUnits.forEach(su -> {
-                if (su instanceof NamespaceBundle) {
-                    try {
-                        pulsar.getNamespaceService().unloadNamespaceBundle(su,
-                                pulsar.getConfiguration().getNamespaceBundleUnloadingTimeoutMs(), TimeUnit.MILLISECONDS)
-                                .get();
-                    } catch (Exception e) {
-                        log.warn("Failed to unload namespace bundle {}", su, e);
+            if (serviceUnits != null) {

Review comment:
       Here is the full stackļ¼š
   
   2021-12-30T14:52:26,658+0800 [main] ERROR org.apache.pulsar.broker.service.BrokerService - Failed to disable broker from loadbalancer list null
   java.lang.NullPointerException: null
   	at org.apache.pulsar.broker.service.BrokerService.unloadNamespaceBundlesGracefully(BrokerService.java:876) ~[classes/:?]
   	at org.apache.pulsar.broker.service.BrokerService$MockitoMock$699853984.unloadNamespaceBundlesGracefully$accessor$kul3VZjk(Unknown Source) ~[classes/:?]
   	at org.apache.pulsar.broker.service.BrokerService$MockitoMock$699853984$auxiliary$w4tS3po5.call(Unknown Source) ~[classes/:?]
   	at org.mockito.internal.invocation.RealMethod$FromCallable$1.call(RealMethod.java:40) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.invocation.RealMethod$FromBehavior.invoke(RealMethod.java:62) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.invocation.InterceptedInvocation.callRealMethod(InterceptedInvocation.java:141) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.stubbing.answers.CallsRealMethods.answer(CallsRealMethods.java:44) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.Answers.answer(Answers.java:98) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.handler.MockHandlerImpl.handle(MockHandlerImpl.java:106) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.handler.NullResultGuardian.handle(NullResultGuardian.java:29) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.handler.InvocationNotifierHandler.handle(InvocationNotifierHandler.java:33) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.doIntercept(MockMethodInterceptor.java:82) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.doIntercept(MockMethodInterceptor.java:56) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor$DispatcherDefaultingToRealMethod.interceptSuperCallable(MockMethodInterceptor.java:141) ~[mockito-core-3.8.0.jar:?]
   	at org.apache.pulsar.broker.service.BrokerService$MockitoMock$699853984.unloadNamespaceBundlesGracefully(Unknown Source) ~[classes/:?]
   	at org.apache.pulsar.broker.service.BrokerService.closeAsync(BrokerService.java:707) ~[classes/:?]
   	at org.apache.pulsar.broker.service.BrokerService$MockitoMock$699853984.closeAsync$accessor$kul3VZjk(Unknown Source) ~[classes/:?]
   	at org.apache.pulsar.broker.service.BrokerService$MockitoMock$699853984$auxiliary$CC4JznlO.call(Unknown Source) ~[classes/:?]
   	at org.mockito.internal.invocation.RealMethod$FromCallable$1.call(RealMethod.java:40) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.invocation.RealMethod$FromBehavior.invoke(RealMethod.java:62) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.invocation.InterceptedInvocation.callRealMethod(InterceptedInvocation.java:141) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.stubbing.answers.CallsRealMethods.answer(CallsRealMethods.java:44) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.Answers.answer(Answers.java:98) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.handler.MockHandlerImpl.handle(MockHandlerImpl.java:106) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.handler.NullResultGuardian.handle(NullResultGuardian.java:29) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.handler.InvocationNotifierHandler.handle(InvocationNotifierHandler.java:33) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.doIntercept(MockMethodInterceptor.java:82) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.doIntercept(MockMethodInterceptor.java:56) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor$DispatcherDefaultingToRealMethod.interceptSuperCallable(MockMethodInterceptor.java:141) ~[mockito-core-3.8.0.jar:?]
   	at org.apache.pulsar.broker.service.BrokerService$MockitoMock$699853984.closeAsync(Unknown Source) ~[classes/:?]
   	at org.apache.pulsar.broker.service.BrokerService.close(BrokerService.java:664) ~[classes/:?]
   	at org.apache.pulsar.broker.service.BrokerService$MockitoMock$699853984.close$accessor$kul3VZjk(Unknown Source) ~[classes/:?]
   	at org.apache.pulsar.broker.service.BrokerService$MockitoMock$699853984$auxiliary$WybKRKng.call(Unknown Source) ~[classes/:?]
   	at org.mockito.internal.invocation.RealMethod$FromCallable$1.call(RealMethod.java:40) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.invocation.RealMethod$FromBehavior.invoke(RealMethod.java:62) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.invocation.InterceptedInvocation.callRealMethod(InterceptedInvocation.java:141) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.stubbing.answers.CallsRealMethods.answer(CallsRealMethods.java:44) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.Answers.answer(Answers.java:98) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.handler.MockHandlerImpl.handle(MockHandlerImpl.java:106) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.handler.NullResultGuardian.handle(NullResultGuardian.java:29) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.handler.InvocationNotifierHandler.handle(InvocationNotifierHandler.java:33) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.doIntercept(MockMethodInterceptor.java:82) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor.doIntercept(MockMethodInterceptor.java:56) ~[mockito-core-3.8.0.jar:?]
   	at org.mockito.internal.creation.bytebuddy.MockMethodInterceptor$DispatcherDefaultingToRealMethod.interceptSuperCallable(MockMethodInterceptor.java:141) ~[mockito-core-3.8.0.jar:?]
   	at org.apache.pulsar.broker.service.BrokerService$MockitoMock$699853984.close(Unknown Source) ~[classes/:?]
   	at org.apache.pulsar.broker.service.PersistentTopicTest.teardown(PersistentTopicTest.java:236) ~[test-classes/:?]
   	at jdk.internal.reflect.GeneratedMethodAccessor35.invoke(Unknown Source) ~[?:?]
   	at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
   	at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
   	at org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:132) ~[testng-7.3.0.jar:?]
   	at org.testng.internal.MethodInvocationHelper.invokeMethodConsideringTimeout(MethodInvocationHelper.java:61) ~[testng-7.3.0.jar:?]
   	at org.testng.internal.ConfigInvoker.invokeConfigurationMethod(ConfigInvoker.java:366) ~[testng-7.3.0.jar:?]
   	at org.testng.internal.ConfigInvoker.invokeConfigurations(ConfigInvoker.java:320) ~[testng-7.3.0.jar:?]
   	at org.testng.internal.TestInvoker.runConfigMethods(TestInvoker.java:701) ~[testng-7.3.0.jar:?]
   	at org.testng.internal.TestInvoker.runAfterGroupsConfigurations(TestInvoker.java:677) ~[testng-7.3.0.jar:?]
   	at org.testng.internal.TestInvoker.invokeMethod(TestInvoker.java:548) ~[testng-7.3.0.jar:?]
   	at org.testng.internal.TestInvoker.invokeTestMethod(TestInvoker.java:174) ~[testng-7.3.0.jar:?]
   	at org.testng.internal.MethodRunner.runInSequence(MethodRunner.java:46) ~[testng-7.3.0.jar:?]
   	at org.testng.internal.TestInvoker$MethodInvocationAgent.invoke(TestInvoker.java:822) ~[testng-7.3.0.jar:?]
   	at org.testng.internal.TestInvoker.invokeTestMethods(TestInvoker.java:147) ~[testng-7.3.0.jar:?]
   	at org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:146) ~[testng-7.3.0.jar:?]
   	at org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:128) ~[testng-7.3.0.jar:?]
   	at java.util.ArrayList.forEach(ArrayList.java:1541) [?:?]
   	at org.testng.TestRunner.privateRun(TestRunner.java:764) [testng-7.3.0.jar:?]
   	at org.testng.TestRunner.run(TestRunner.java:585) [testng-7.3.0.jar:?]
   	at org.testng.SuiteRunner.runTest(SuiteRunner.java:384) [testng-7.3.0.jar:?]
   	at org.testng.SuiteRunner.runSequentially(SuiteRunner.java:378) [testng-7.3.0.jar:?]
   	at org.testng.SuiteRunner.privateRun(SuiteRunner.java:337) [testng-7.3.0.jar:?]
   	at org.testng.SuiteRunner.run(SuiteRunner.java:286) [testng-7.3.0.jar:?]
   	at org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:53) [testng-7.3.0.jar:?]
   	at org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:96) [testng-7.3.0.jar:?]
   	at org.testng.TestNG.runSuitesSequentially(TestNG.java:1218) [testng-7.3.0.jar:?]
   	at org.testng.TestNG.runSuitesLocally(TestNG.java:1140) [testng-7.3.0.jar:?]
   	at org.testng.TestNG.runSuites(TestNG.java:1069) [testng-7.3.0.jar:?]
   	at org.testng.TestNG.run(TestNG.java:1037) [testng-7.3.0.jar:?]
   	at com.intellij.rt.testng.IDEARemoteTestNG.run(IDEARemoteTestNG.java:66) [testng-rt.jar:?]
   	at com.intellij.rt.testng.RemoteTestNGStarter.main(RemoteTestNGStarter.java:109) [testng-rt.jar:?]




-- 
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: commits-unsubscribe@pulsar.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org