jerrypeng opened a new pull request #7962:
URL: https://github.com/apache/pulsar/pull/7962


   
   ### Motivation
   
   Let's wait for thread pool termination in the Pulsar client so we make more 
of an effort to make sure all Pulsar threads are shutdown when the pulsar 
client is closed.  This helps in when running Pulsar client on system like 
flink that dynamically load and unload JARS when jobs are started and stopped.
   
   Example in Flink of an error that can be caused by threads not terminated
   
   `
      extendedStackTrace: java.lang.NoClassDefFoundError: 
org/apache/pulsar/client/api/PulsarClientException$ConnectException
        at 
org.apache.pulsar.client.impl.ConsumerImpl.doAcknowledge(ConsumerImpl.java:533) 
~[c3b063d2-4697-4dfb-9a08-dda707a7456f?version=9b5ac9b0bfb1050ae095a3ac6519433dbd99c156:?]
        at 
org.apache.pulsar.client.impl.ConsumerBase.doAcknowledgeWithTxn(ConsumerBase.java:390)
 
~[c3b063d2-4697-4dfb-9a08-dda707a7456f?version=9b5ac9b0bfb1050ae095a3ac6519433dbd99c156:?]
        at 
org.apache.pulsar.client.impl.ConsumerBase.acknowledgeCumulativeAsync(ConsumerBase.java:379)
 
~[c3b063d2-4697-4dfb-9a08-dda707a7456f?version=9b5ac9b0bfb1050ae095a3ac6519433dbd99c156:?]
        at 
org.apache.pulsar.client.impl.ConsumerBase.acknowledgeCumulativeAsync(ConsumerBase.java:363)
 
~[c3b063d2-4697-4dfb-9a08-dda707a7456f?version=9b5ac9b0bfb1050ae095a3ac6519433dbd99c156:?]
        at 
org.apache.pulsar.client.impl.ConsumerBase.acknowledgeCumulativeAsync(ConsumerBase.java:326)
 
~[c3b063d2-4697-4dfb-9a08-dda707a7456f?version=9b5ac9b0bfb1050ae095a3ac6519433dbd99c156:?]
        at 
org.apache.pulsar.client.impl.ReaderImpl$1.received(ReaderImpl.java:69) 
~[c3b063d2-4697-4dfb-9a08-dda707a7456f?version=9b5ac9b0bfb1050ae095a3ac6519433dbd99c156:?]
        at 
org.apache.pulsar.client.impl.ConsumerImpl.lambda$triggerListener$8(ConsumerImpl.java:1237)
 
~[c3b063d2-4697-4dfb-9a08-dda707a7456f?version=9b5ac9b0bfb1050ae095a3ac6519433dbd99c156:?]
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) 
[?:1.8.0_252]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
[?:1.8.0_252]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
 [?:1.8.0_252]
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
 [?:1.8.0_252]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) 
[?:1.8.0_252]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) 
[?:1.8.0_252]
        at 
org.apache.pulsar.shade.io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)
 
[c3b063d2-4697-4dfb-9a08-dda707a7456f?version=9b5ac9b0bfb1050ae095a3ac6519433dbd99c156:?]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_252]
   Caused by: java.lang.ClassNotFoundException: 
org.apache.pulsar.client.api.PulsarClientException$ConnectException
        at java.net.URLClassLoader.findClass(URLClassLoader.java:382) 
~[?:1.8.0_252]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:418) ~[?:1.8.0_252]
        at 
org.apache.flink.util.ChildFirstClassLoader.loadClass(ChildFirstClassLoader.java:69)
 ~[flink-dist_2.11-1.9.1-splunk-2.1.jar:1.9.1-splunk-2.1]
        at java.lang.ClassLoader.loadClass(ClassLoader.java:351) ~[?:1.8.0_252]
        ... 15 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:
[email protected]


Reply via email to