{"action":"created","issue":{"url":"https://api.github.com/repos/apache/spark/issues/20474","repository_url":"https://api.github.com/repos/apache/spark","labels_url":"https://api.github.com/repos/apache/spark/issues/20474/labels{/name}","comments_url":"https://api.github.com/repos/apache/spark/issues/20474/comments","events_url":"https://api.github.com/repos/apache/spark/issues/20474/events","html_url":"https://github.com/apache/spark/pull/20474","id":293539413,"number":20474,"title":"[SPARK-23235][Core] Add executor Threaddump to api","user":{"login":"attilapiros","id":2017933,"avatar_url":"https://avatars1.githubusercontent.com/u/2017933?v=4","gravatar_id":"","url":"https://api.github.com/users/attilapiros","html_url":"https://github.com/attilapiros","followers_url":"https://api.github.com/users/attilapiros/followers","following_url":"https://api.github.com/users/attilapiros/following{/other_user}","gists_url":"https://api.github.com/users/attilapiros/gists{/gist_id}","starred_url":"https://api.github.com/users/attilapiros/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/attilapiros/subscriptions","organizations_url":"https://api.github.com/users/attilapiros/orgs","repos_url":"https://api.github.com/users/attilapiros/repos","events_url":"https://api.github.com/users/attilapiros/events{/privacy}","received_events_url":"https://api.github.com/users/attilapiros/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":7,"created_at":"2018-02-01T13:57:38Z","updated_at":"2018-02-03T00:30:53Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/apache/spark/pulls/20474","html_url":"https://github.com/apache/spark/pull/20474","diff_url":"https://github.com/apache/spark/pull/20474.diff","patch_url":"https://github.com/apache/spark/pull/20474.patch"},"body":"## What changes were proposed in this pull request?\r\n\r\nExtending api with the executor thread dump data.\r\n\r\nFor this new REST URL is introduced:\r\n- GET http://localhost:4040/api/v1/applications/{applicationId}/executors/{executorId}/threads\r\n\r\n<details>\r\n<summary>Example response:</summary>\r\n\r\n``` javascript\r\n[ {\r\n  \"threadId\" : 52,\r\n  \"threadName\" : \"context-cleaner-periodic-gc\",\r\n  \"threadState\" : \"TIMED_WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)\\njava.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)\\njava.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)\\njava.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1385411893})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 48,\r\n  \"threadName\" : \"dag-scheduler-event-loop\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingDeque.takeFirst(LinkedBlockingDeque.java:492)\\njava.util.concurrent.LinkedBlockingDeque.take(LinkedBlockingDeque.java:680)\\norg.apache.spark.util.EventLoop$$anon$1.run(EventLoop.scala:46)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1138053349})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 17,\r\n  \"threadName\" : \"dispatcher-event-loop-0\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.rpc.netty.Dispatcher$MessageLoop.run(Dispatcher.scala:215)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1764626380})\",\r\n  \"holdingLocks\" : [ \"Lock(java.util.concurrent.ThreadPoolExecutor$Worker@832743930})\" ]\r\n}, {\r\n  \"threadId\" : 18,\r\n  \"threadName\" : \"dispatcher-event-loop-1\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.rpc.netty.Dispatcher$MessageLoop.run(Dispatcher.scala:215)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1764626380})\",\r\n  \"holdingLocks\" : [ \"Lock(java.util.concurrent.ThreadPoolExecutor$Worker@834153999})\" ]\r\n}, {\r\n  \"threadId\" : 19,\r\n  \"threadName\" : \"dispatcher-event-loop-2\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.rpc.netty.Dispatcher$MessageLoop.run(Dispatcher.scala:215)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1764626380})\",\r\n  \"holdingLocks\" : [ \"Lock(java.util.concurrent.ThreadPoolExecutor$Worker@664836465})\" ]\r\n}, {\r\n  \"threadId\" : 20,\r\n  \"threadName\" : \"dispatcher-event-loop-3\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.rpc.netty.Dispatcher$MessageLoop.run(Dispatcher.scala:215)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1764626380})\",\r\n  \"holdingLocks\" : [ \"Lock(java.util.concurrent.ThreadPoolExecutor$Worker@1645557354})\" ]\r\n}, {\r\n  \"threadId\" : 21,\r\n  \"threadName\" : \"dispatcher-event-loop-4\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.rpc.netty.Dispatcher$MessageLoop.run(Dispatcher.scala:215)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1764626380})\",\r\n  \"holdingLocks\" : [ \"Lock(java.util.concurrent.ThreadPoolExecutor$Worker@1188871851})\" ]\r\n}, {\r\n  \"threadId\" : 22,\r\n  \"threadName\" : \"dispatcher-event-loop-5\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.rpc.netty.Dispatcher$MessageLoop.run(Dispatcher.scala:215)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1764626380})\",\r\n  \"holdingLocks\" : [ \"Lock(java.util.concurrent.ThreadPoolExecutor$Worker@920926249})\" ]\r\n}, {\r\n  \"threadId\" : 23,\r\n  \"threadName\" : \"dispatcher-event-loop-6\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.rpc.netty.Dispatcher$MessageLoop.run(Dispatcher.scala:215)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1764626380})\",\r\n  \"holdingLocks\" : [ \"Lock(java.util.concurrent.ThreadPoolExecutor$Worker@355222677})\" ]\r\n}, {\r\n  \"threadId\" : 24,\r\n  \"threadName\" : \"dispatcher-event-loop-7\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.rpc.netty.Dispatcher$MessageLoop.run(Dispatcher.scala:215)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1764626380})\",\r\n  \"holdingLocks\" : [ \"Lock(java.util.concurrent.ThreadPoolExecutor$Worker@1589745212})\" ]\r\n}, {\r\n  \"threadId\" : 49,\r\n  \"threadName\" : \"driver-heartbeater\",\r\n  \"threadState\" : \"TIMED_WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)\\njava.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)\\njava.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)\\njava.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1602885835})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 53,\r\n  \"threadName\" : \"element-tracking-store-worker\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\njava.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1439439099})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 3,\r\n  \"threadName\" : \"Finalizer\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"java.lang.Object.wait(Native Method)\\njava.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)\\njava.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)\\njava.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)\",\r\n  \"blockedByLock\" : \"Lock(java.lang.ref.ReferenceQueue$Lock@1213098236})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 15,\r\n  \"threadName\" : \"ForkJoinPool-1-worker-13\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\nscala.concurrent.forkjoin.ForkJoinPool.scan(ForkJoinPool.java:2075)\\nscala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)\\nscala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)\",\r\n  \"blockedByLock\" : \"Lock(scala.concurrent.forkjoin.ForkJoinPool@380286413})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 45,\r\n  \"threadName\" : \"heartbeat-receiver-event-loop-thread\",\r\n  \"threadState\" : \"TIMED_WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)\\njava.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)\\njava.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)\\njava.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@715135812})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 1,\r\n  \"threadName\" : \"main\",\r\n  \"threadState\" : \"RUNNABLE\",\r\n  \"stackTrace\" : \"java.io.FileInputStream.read0(Native Method)\\njava.io.FileInputStream.read(FileInputStream.java:207)\\nscala.tools.jline_embedded.internal.NonBlockingInputStream.read(NonBlockingInputStream.java:169) => holding Monitor(scala.tools.jline_embedded.internal.NonBlockingInputStream@46248392})\\nscala.tools.jline_embedded.internal.NonBlockingInputStream.read(NonBlockingInputStream.java:137)\\nscala.tools.jline_embedded.internal.NonBlockingInputStream.read(NonBlockingInputStream.java:246)\\nscala.tools.jline_embedded.internal.InputStreamReader.read(InputStreamReader.java:261) => holding Monitor(scala.tools.jline_embedded.internal.NonBlockingInputStream@46248392})\\nscala.tools.jline_embedded.internal.InputStreamReader.read(InputStreamReader.java:198) => holding Monitor(scala.tools.jline_embedded.internal.NonBlockingInputStream@46248392})\\nscala.tools.jline_embedded.console.ConsoleReader.readCharacter(ConsoleReader.java:2145)\\nscala.tools.jline_embedded.console.ConsoleReader.readLine(ConsoleReader.java:2349)\\nscala.tools.jline_embedded.console.ConsoleReader.readLine(ConsoleReader.java:2269)\\nscala.tools.nsc.interpreter.jline_embedded.InteractiveReader.readOneLine(JLineReader.scala:57)\\nscala.tools.nsc.interpreter.InteractiveReader$$anonfun$readLine$2.apply(InteractiveReader.scala:37)\\nscala.tools.nsc.interpreter.InteractiveReader$$anonfun$readLine$2.apply(InteractiveReader.scala:37)\\nscala.tools.nsc.interpreter.InteractiveReader$.restartSysCalls(InteractiveReader.scala:44)\\nscala.tools.nsc.interpreter.InteractiveReader$class.readLine(InteractiveReader.scala:37)\\nscala.tools.nsc.interpreter.jline_embedded.InteractiveReader.readLine(JLineReader.scala:28)\\nscala.tools.nsc.interpreter.ILoop.readOneLine(ILoop.scala:404)\\nscala.tools.nsc.interpreter.ILoop.loop(ILoop.scala:413)\\nscala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply$mcZ$sp(ILoop.scala:923)\\nscala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:909)\\nscala.tools.nsc.interpreter.ILoop$$anonfun$process$1.apply(ILoop.scala:909)\\nscala.reflect.internal.util.ScalaClassLoader$.savingContextLoader(ScalaClassLoader.scala:97)\\nscala.tools.nsc.interpreter.ILoop.process(ILoop.scala:909)\\norg.apache.spark.repl.Main$.doMain(Main.scala:76)\\norg.apache.spark.repl.Main$.main(Main.scala:56)\\norg.apache.spark.repl.Main.main(Main.scala)\\nsun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\\nsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\\nsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\\njava.lang.reflect.Method.invoke(Method.java:498)\\norg.apache.spark.deploy.JavaMainApplication.start(SparkApplication.scala:52)\\norg.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:879)\\norg.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:197)\\norg.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:227)\\norg.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:136)\\norg.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)\",\r\n  \"blockedByLock\" : \"\",\r\n  \"holdingLocks\" : [ \"Monitor(scala.tools.jline_embedded.internal.NonBlockingInputStream@46248392})\" ]\r\n}, {\r\n  \"threadId\" : 26,\r\n  \"threadName\" : \"map-output-dispatcher-0\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.MapOutputTrackerMaster$MessageLoop.run(MapOutputTracker.scala:384)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@350285679})\",\r\n  \"holdingLocks\" : [ \"Lock(java.util.concurrent.ThreadPoolExecutor$Worker@1791280119})\" ]\r\n}, {\r\n  \"threadId\" : 27,\r\n  \"threadName\" : \"map-output-dispatcher-1\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.MapOutputTrackerMaster$MessageLoop.run(MapOutputTracker.scala:384)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@350285679})\",\r\n  \"holdingLocks\" : [ \"Lock(java.util.concurrent.ThreadPoolExecutor$Worker@1947378744})\" ]\r\n}, {\r\n  \"threadId\" : 28,\r\n  \"threadName\" : \"map-output-dispatcher-2\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.MapOutputTrackerMaster$MessageLoop.run(MapOutputTracker.scala:384)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@350285679})\",\r\n  \"holdingLocks\" : [ \"Lock(java.util.concurrent.ThreadPoolExecutor$Worker@507507251})\" ]\r\n}, {\r\n  \"threadId\" : 29,\r\n  \"threadName\" : \"map-output-dispatcher-3\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.MapOutputTrackerMaster$MessageLoop.run(MapOutputTracker.scala:384)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@350285679})\",\r\n  \"holdingLocks\" : [ \"Lock(java.util.concurrent.ThreadPoolExecutor$Worker@1016408627})\" ]\r\n}, {\r\n  \"threadId\" : 30,\r\n  \"threadName\" : \"map-output-dispatcher-4\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.MapOutputTrackerMaster$MessageLoop.run(MapOutputTracker.scala:384)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@350285679})\",\r\n  \"holdingLocks\" : [ \"Lock(java.util.concurrent.ThreadPoolExecutor$Worker@1879219501})\" ]\r\n}, {\r\n  \"threadId\" : 31,\r\n  \"threadName\" : \"map-output-dispatcher-5\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.MapOutputTrackerMaster$MessageLoop.run(MapOutputTracker.scala:384)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@350285679})\",\r\n  \"holdingLocks\" : [ \"Lock(java.util.concurrent.ThreadPoolExecutor$Worker@290509937})\" ]\r\n}, {\r\n  \"threadId\" : 32,\r\n  \"threadName\" : \"map-output-dispatcher-6\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.MapOutputTrackerMaster$MessageLoop.run(MapOutputTracker.scala:384)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@350285679})\",\r\n  \"holdingLocks\" : [ \"Lock(java.util.concurrent.ThreadPoolExecutor$Worker@1889468930})\" ]\r\n}, {\r\n  \"threadId\" : 33,\r\n  \"threadName\" : \"map-output-dispatcher-7\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.MapOutputTrackerMaster$MessageLoop.run(MapOutputTracker.scala:384)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@350285679})\",\r\n  \"holdingLocks\" : [ \"Lock(java.util.concurrent.ThreadPoolExecutor$Worker@1699637904})\" ]\r\n}, {\r\n  \"threadId\" : 47,\r\n  \"threadName\" : \"netty-rpc-env-timeout\",\r\n  \"threadState\" : \"TIMED_WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)\\njava.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)\\njava.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)\\njava.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@977194847})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 14,\r\n  \"threadName\" : \"NonBlockingInputStreamThread\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"java.lang.Object.wait(Native Method)\\nscala.tools.jline_embedded.internal.NonBlockingInputStream.run(NonBlockingInputStream.java:278)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByThreadId\" : 1,\r\n  \"blockedByLock\" : \"Lock(scala.tools.jline_embedded.internal.NonBlockingInputStream@46248392})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 2,\r\n  \"threadName\" : \"Reference Handler\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"java.lang.Object.wait(Native Method)\\njava.lang.Object.wait(Object.java:502)\\njava.lang.ref.Reference.tryHandlePending(Reference.java:191)\\njava.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)\",\r\n  \"blockedByLock\" : \"Lock(java.lang.ref.Reference$Lock@1359433302})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 35,\r\n  \"threadName\" : \"refresh progress\",\r\n  \"threadState\" : \"TIMED_WAITING\",\r\n  \"stackTrace\" : \"java.lang.Object.wait(Native Method)\\njava.util.TimerThread.mainLoop(Timer.java:552)\\njava.util.TimerThread.run(Timer.java:505)\",\r\n  \"blockedByLock\" : \"Lock(java.util.TaskQueue@44276328})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 34,\r\n  \"threadName\" : \"RemoteBlock-temp-file-clean-thread\",\r\n  \"threadState\" : \"TIMED_WAITING\",\r\n  \"stackTrace\" : \"java.lang.Object.wait(Native Method)\\njava.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)\\norg.apache.spark.storage.BlockManager$RemoteBlockTempFileManager.org$apache$spark$storage$BlockManager$RemoteBlockTempFileManager$$keepCleaning(BlockManager.scala:1630)\\norg.apache.spark.storage.BlockManager$RemoteBlockTempFileManager$$anon$1.run(BlockManager.scala:1608)\",\r\n  \"blockedByLock\" : \"Lock(java.lang.ref.ReferenceQueue$Lock@391748181})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 25,\r\n  \"threadName\" : \"rpc-server-3-1\",\r\n  \"threadState\" : \"RUNNABLE\",\r\n  \"stackTrace\" : \"sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)\\nsun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:198)\\nsun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:117)\\nsun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86) => holding Monitor(sun.nio.ch.KQueueSelectorImpl@2057702496})\\nsun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)\\nio.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:62)\\nio.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:753)\\nio.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:409)\\nio.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)\\nio.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"\",\r\n  \"holdingLocks\" : [ \"Monitor(io.netty.channel.nio.SelectedSelectionKeySet@1066929256})\", \"Monitor(java.util.Collections$UnmodifiableSet@561426729})\", \"Monitor(sun.nio.ch.KQueueSelectorImpl@2057702496})\" ]\r\n}, {\r\n  \"threadId\" : 50,\r\n  \"threadName\" : \"shuffle-server-5-1\",\r\n  \"threadState\" : \"RUNNABLE\",\r\n  \"stackTrace\" : \"sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)\\nsun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:198)\\nsun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:117)\\nsun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86) => holding Monitor(sun.nio.ch.KQueueSelectorImpl@1401522546})\\nsun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)\\nio.netty.channel.nio.SelectedSelectionKeySetSelector.select(SelectedSelectionKeySetSelector.java:62)\\nio.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:753)\\nio.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:409)\\nio.netty.util.concurrent.SingleThreadEventExecutor$5.run(SingleThreadEventExecutor.java:858)\\nio.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:138)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"\",\r\n  \"holdingLocks\" : [ \"Monitor(io.netty.channel.nio.SelectedSelectionKeySet@385972319})\", \"Monitor(java.util.Collections$UnmodifiableSet@477937109})\", \"Monitor(sun.nio.ch.KQueueSelectorImpl@1401522546})\" ]\r\n}, {\r\n  \"threadId\" : 4,\r\n  \"threadName\" : \"Signal Dispatcher\",\r\n  \"threadState\" : \"RUNNABLE\",\r\n  \"stackTrace\" : \"\",\r\n  \"blockedByLock\" : \"\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 51,\r\n  \"threadName\" : \"Spark Context Cleaner\",\r\n  \"threadState\" : \"TIMED_WAITING\",\r\n  \"stackTrace\" : \"java.lang.Object.wait(Native Method)\\njava.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)\\norg.apache.spark.ContextCleaner$$anonfun$org$apache$spark$ContextCleaner$$keepCleaning$1.apply$mcV$sp(ContextCleaner.scala:181)\\norg.apache.spark.util.Utils$.tryOrStopSparkContext(Utils.scala:1319)\\norg.apache.spark.ContextCleaner.org$apache$spark$ContextCleaner$$keepCleaning(ContextCleaner.scala:178)\\norg.apache.spark.ContextCleaner$$anon$1.run(ContextCleaner.scala:73)\",\r\n  \"blockedByLock\" : \"Lock(java.lang.ref.ReferenceQueue$Lock@1739420764})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 16,\r\n  \"threadName\" : \"spark-listener-group-appStatus\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.scheduler.AsyncEventQueue$$anonfun$org$apache$spark$scheduler$AsyncEventQueue$$dispatch$1.apply(AsyncEventQueue.scala:94)\\nscala.util.DynamicVariable.withValue(DynamicVariable.scala:58)\\norg.apache.spark.scheduler.AsyncEventQueue.org$apache$spark$scheduler$AsyncEventQueue$$dispatch(AsyncEventQueue.scala:83)\\norg.apache.spark.scheduler.AsyncEventQueue$$anon$1$$anonfun$run$1.apply$mcV$sp(AsyncEventQueue.scala:79)\\norg.apache.spark.util.Utils$.tryOrStopSparkContext(Utils.scala:1319)\\norg.apache.spark.scheduler.AsyncEventQueue$$anon$1.run(AsyncEventQueue.scala:78)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1287190987})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 44,\r\n  \"threadName\" : \"spark-listener-group-executorManagement\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.scheduler.AsyncEventQueue$$anonfun$org$apache$spark$scheduler$AsyncEventQueue$$dispatch$1.apply(AsyncEventQueue.scala:94)\\nscala.util.DynamicVariable.withValue(DynamicVariable.scala:58)\\norg.apache.spark.scheduler.AsyncEventQueue.org$apache$spark$scheduler$AsyncEventQueue$$dispatch(AsyncEventQueue.scala:83)\\norg.apache.spark.scheduler.AsyncEventQueue$$anon$1$$anonfun$run$1.apply$mcV$sp(AsyncEventQueue.scala:79)\\norg.apache.spark.util.Utils$.tryOrStopSparkContext(Utils.scala:1319)\\norg.apache.spark.scheduler.AsyncEventQueue$$anon$1.run(AsyncEventQueue.scala:78)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@943262890})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 54,\r\n  \"threadName\" : \"spark-listener-group-shared\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\norg.apache.spark.scheduler.AsyncEventQueue$$anonfun$org$apache$spark$scheduler$AsyncEventQueue$$dispatch$1.apply(AsyncEventQueue.scala:94)\\nscala.util.DynamicVariable.withValue(DynamicVariable.scala:58)\\norg.apache.spark.scheduler.AsyncEventQueue.org$apache$spark$scheduler$AsyncEventQueue$$dispatch(AsyncEventQueue.scala:83)\\norg.apache.spark.scheduler.AsyncEventQueue$$anon$1$$anonfun$run$1.apply$mcV$sp(AsyncEventQueue.scala:79)\\norg.apache.spark.util.Utils$.tryOrStopSparkContext(Utils.scala:1319)\\norg.apache.spark.scheduler.AsyncEventQueue$$anon$1.run(AsyncEventQueue.scala:78)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@334604425})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 37,\r\n  \"threadName\" : \"SparkUI-37\",\r\n  \"threadState\" : \"TIMED_WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)\\norg.spark_project.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:392)\\norg.spark_project.jetty.util.thread.QueuedThreadPool.idleJobPoll(QueuedThreadPool.java:563)\\norg.spark_project.jetty.util.thread.QueuedThreadPool.access$800(QueuedThreadPool.java:48)\\norg.spark_project.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:626)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1503479572})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 38,\r\n  \"threadName\" : \"SparkUI-38\",\r\n  \"threadState\" : \"RUNNABLE\",\r\n  \"stackTrace\" : \"sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)\\nsun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:198)\\nsun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:117)\\nsun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86) => holding Monitor(sun.nio.ch.KQueueSelectorImpl@841741934})\\nsun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)\\nsun.nio.ch.SelectorImpl.select(SelectorImpl.java:101)\\norg.spark_project.jetty.io.ManagedSelector$SelectorProducer.select(ManagedSelector.java:243)\\norg.spark_project.jetty.io.ManagedSelector$SelectorProducer.produce(ManagedSelector.java:191)\\norg.spark_project.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:249)\\norg.spark_project.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)\\norg.spark_project.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)\\norg.spark_project.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)\\norg.spark_project.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"\",\r\n  \"holdingLocks\" : [ \"Monitor(sun.nio.ch.Util$3@873523986})\", \"Monitor(java.util.Collections$UnmodifiableSet@1769333189})\", \"Monitor(sun.nio.ch.KQueueSelectorImpl@841741934})\" ]\r\n}, {\r\n  \"threadId\" : 40,\r\n  \"threadName\" : \"SparkUI-40-acceptor-0@34929380-Spark@3a557b62{HTTP/1.1,[http/1.1]}{0.0.0.0:4040}\",\r\n  \"threadState\" : \"RUNNABLE\",\r\n  \"stackTrace\" : \"sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)\\nsun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:422)\\nsun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:250) => holding Monitor(java.lang.Object@1134240909})\\norg.spark_project.jetty.server.ServerConnector.accept(ServerConnector.java:371)\\norg.spark_project.jetty.server.AbstractConnector$Acceptor.run(AbstractConnector.java:601)\\norg.spark_project.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)\\norg.spark_project.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"\",\r\n  \"holdingLocks\" : [ \"Monitor(java.lang.Object@1134240909})\" ]\r\n}, {\r\n  \"threadId\" : 43,\r\n  \"threadName\" : \"SparkUI-43\",\r\n  \"threadState\" : \"RUNNABLE\",\r\n  \"stackTrace\" : \"sun.management.ThreadImpl.dumpThreads0(Native Method)\\nsun.management.ThreadImpl.dumpAllThreads(ThreadImpl.java:454)\\norg.apache.spark.util.Utils$.getThreadDump(Utils.scala:2170)\\norg.apache.spark.SparkContext.getExecutorThreadDump(SparkContext.scala:596)\\norg.apache.spark.status.api.v1.AbstractApplicationResource$$anonfun$threadDump$1$$anonfun$apply$1.apply(OneApplicationResource.scala:66)\\norg.apache.spark.status.api.v1.AbstractApplicationResource$$anonfun$threadDump$1$$anonfun$apply$1.apply(OneApplicationResource.scala:65)\\nscala.Option.flatMap(Option.scala:171)\\norg.apache.spark.status.api.v1.AbstractApplicationResource$$anonfun$threadDump$1.apply(OneApplicationResource.scala:65)\\norg.apache.spark.status.api.v1.AbstractApplicationResource$$anonfun$threadDump$1.apply(OneApplicationResource.scala:58)\\norg.apache.spark.status.api.v1.BaseAppResource$$anonfun$withUI$1.apply(ApiRootResource.scala:139)\\norg.apache.spark.status.api.v1.BaseAppResource$$anonfun$withUI$1.apply(ApiRootResource.scala:134)\\norg.apache.spark.ui.SparkUI.withSparkUI(SparkUI.scala:106)\\norg.apache.spark.status.api.v1.BaseAppResource$class.withUI(ApiRootResource.scala:134)\\norg.apache.spark.status.api.v1.AbstractApplicationResource.withUI(OneApplicationResource.scala:32)\\norg.apache.spark.status.api.v1.AbstractApplicationResource.threadDump(OneApplicationResource.scala:58)\\nsun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\\nsun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)\\nsun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)\\njava.lang.reflect.Method.invoke(Method.java:498)\\norg.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81)\\norg.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144)\\norg.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161)\\norg.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:205)\\norg.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)\\norg.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)\\norg.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)\\norg.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)\\norg.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)\\norg.glassfish.jersey.internal.Errors$1.call(Errors.java:271)\\norg.glassfish.jersey.internal.Errors$1.call(Errors.java:267)\\norg.glassfish.jersey.internal.Errors.process(Errors.java:315)\\norg.glassfish.jersey.internal.Errors.process(Errors.java:297)\\norg.glassfish.jersey.internal.Errors.process(Errors.java:267)\\norg.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)\\norg.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)\\norg.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)\\norg.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:473)\\norg.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:427)\\norg.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:388)\\norg.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:341)\\norg.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:228)\\norg.spark_project.jetty.servlet.ServletHolder.handle(ServletHolder.java:848)\\norg.spark_project.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:584)\\norg.spark_project.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1180)\\norg.spark_project.jetty.servlet.ServletHandler.doScope(ServletHandler.java:512)\\norg.spark_project.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1112)\\norg.spark_project.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)\\norg.spark_project.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:493)\\norg.spark_project.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:213)\\norg.spark_project.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:134)\\norg.spark_project.jetty.server.Server.handle(Server.java:534)\\norg.spark_project.jetty.server.HttpChannel.handle(HttpChannel.java:320)\\norg.spark_project.jetty.server.HttpConnection.onFillable(HttpConnection.java:251)\\norg.spark_project.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:283)\\norg.spark_project.jetty.io.FillInterest.fillable(FillInterest.java:108)\\norg.spark_project.jetty.io.SelectChannelEndPoint$2.run(SelectChannelEndPoint.java:93)\\norg.spark_project.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:303)\\norg.spark_project.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)\\norg.spark_project.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)\\norg.spark_project.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)\\norg.spark_project.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 67,\r\n  \"threadName\" : \"SparkUI-67\",\r\n  \"threadState\" : \"RUNNABLE\",\r\n  \"stackTrace\" : \"sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)\\nsun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:198)\\nsun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:117)\\nsun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86) => holding Monitor(sun.nio.ch.KQueueSelectorImpl@1837806480})\\nsun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)\\nsun.nio.ch.SelectorImpl.select(SelectorImpl.java:101)\\norg.spark_project.jetty.io.ManagedSelector$SelectorProducer.select(ManagedSelector.java:243)\\norg.spark_project.jetty.io.ManagedSelector$SelectorProducer.produce(ManagedSelector.java:191)\\norg.spark_project.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:249)\\norg.spark_project.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)\\norg.spark_project.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)\\norg.spark_project.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)\\norg.spark_project.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"\",\r\n  \"holdingLocks\" : [ \"Monitor(sun.nio.ch.Util$3@881415814})\", \"Monitor(java.util.Collections$UnmodifiableSet@62050480})\", \"Monitor(sun.nio.ch.KQueueSelectorImpl@1837806480})\" ]\r\n}, {\r\n  \"threadId\" : 68,\r\n  \"threadName\" : \"SparkUI-68\",\r\n  \"threadState\" : \"RUNNABLE\",\r\n  \"stackTrace\" : \"sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)\\nsun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:198)\\nsun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:117)\\nsun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86) => holding Monitor(sun.nio.ch.KQueueSelectorImpl@223607814})\\nsun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)\\nsun.nio.ch.SelectorImpl.select(SelectorImpl.java:101)\\norg.spark_project.jetty.io.ManagedSelector$SelectorProducer.select(ManagedSelector.java:243)\\norg.spark_project.jetty.io.ManagedSelector$SelectorProducer.produce(ManagedSelector.java:191)\\norg.spark_project.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:249)\\norg.spark_project.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)\\norg.spark_project.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)\\norg.spark_project.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)\\norg.spark_project.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"\",\r\n  \"holdingLocks\" : [ \"Monitor(sun.nio.ch.Util$3@543145185})\", \"Monitor(java.util.Collections$UnmodifiableSet@897441546})\", \"Monitor(sun.nio.ch.KQueueSelectorImpl@223607814})\" ]\r\n}, {\r\n  \"threadId\" : 71,\r\n  \"threadName\" : \"SparkUI-71\",\r\n  \"threadState\" : \"TIMED_WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)\\norg.spark_project.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:392)\\norg.spark_project.jetty.util.thread.QueuedThreadPool.idleJobPoll(QueuedThreadPool.java:563)\\norg.spark_project.jetty.util.thread.QueuedThreadPool.access$800(QueuedThreadPool.java:48)\\norg.spark_project.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:626)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1503479572})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 77,\r\n  \"threadName\" : \"SparkUI-77\",\r\n  \"threadState\" : \"TIMED_WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)\\norg.spark_project.jetty.util.BlockingArrayQueue.poll(BlockingArrayQueue.java:392)\\norg.spark_project.jetty.util.thread.QueuedThreadPool.idleJobPoll(QueuedThreadPool.java:563)\\norg.spark_project.jetty.util.thread.QueuedThreadPool.access$800(QueuedThreadPool.java:48)\\norg.spark_project.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:626)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1503479572})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 78,\r\n  \"threadName\" : \"SparkUI-78\",\r\n  \"threadState\" : \"RUNNABLE\",\r\n  \"stackTrace\" : \"sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)\\nsun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:198)\\nsun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:117)\\nsun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86) => holding Monitor(sun.nio.ch.KQueueSelectorImpl@403077801})\\nsun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)\\nsun.nio.ch.SelectorImpl.select(SelectorImpl.java:101)\\norg.spark_project.jetty.io.ManagedSelector$SelectorProducer.select(ManagedSelector.java:243)\\norg.spark_project.jetty.io.ManagedSelector$SelectorProducer.produce(ManagedSelector.java:191)\\norg.spark_project.jetty.util.thread.strategy.ExecuteProduceConsume.executeProduceConsume(ExecuteProduceConsume.java:249)\\norg.spark_project.jetty.util.thread.strategy.ExecuteProduceConsume.produceConsume(ExecuteProduceConsume.java:148)\\norg.spark_project.jetty.util.thread.strategy.ExecuteProduceConsume.run(ExecuteProduceConsume.java:136)\\norg.spark_project.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:671)\\norg.spark_project.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:589)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"\",\r\n  \"holdingLocks\" : [ \"Monitor(sun.nio.ch.Util$3@261312406})\", \"Monitor(java.util.Collections$UnmodifiableSet@852901260})\", \"Monitor(sun.nio.ch.KQueueSelectorImpl@403077801})\" ]\r\n}, {\r\n  \"threadId\" : 72,\r\n  \"threadName\" : \"SparkUI-JettyScheduler\",\r\n  \"threadState\" : \"TIMED_WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)\\njava.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)\\njava.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)\\njava.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@1587346642})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 63,\r\n  \"threadName\" : \"task-result-getter-0\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\njava.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@537563105})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 64,\r\n  \"threadName\" : \"task-result-getter-1\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\njava.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@537563105})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 65,\r\n  \"threadName\" : \"task-result-getter-2\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\njava.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@537563105})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 66,\r\n  \"threadName\" : \"task-result-getter-3\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"sun.misc.Unsafe.park(Native Method)\\njava.util.concurrent.locks.LockSupport.park(LockSupport.java:175)\\njava.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(AbstractQueuedSynchronizer.java:2039)\\njava.util.concurrent.LinkedBlockingQueue.take(LinkedBlockingQueue.java:442)\\njava.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1074)\\njava.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1134)\\njava.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\\njava.lang.Thread.run(Thread.java:748)\",\r\n  \"blockedByLock\" : \"Lock(java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject@537563105})\",\r\n  \"holdingLocks\" : [ ]\r\n}, {\r\n  \"threadId\" : 46,\r\n  \"threadName\" : \"Timer-0\",\r\n  \"threadState\" : \"WAITING\",\r\n  \"stackTrace\" : \"java.lang.Object.wait(Native Method)\\njava.lang.Object.wait(Object.java:502)\\njava.util.TimerThread.mainLoop(Timer.java:526)\\njava.util.TimerThread.run(Timer.java:505)\",\r\n  \"blockedByLock\" : \"Lock(java.util.TaskQueue@635634547})\",\r\n  \"holdingLocks\" : [ ]\r\n} ]\r\n``` \r\n</details>\r\n\r\n## How was this patch tested?\r\n\r\nIt was tested manually.\r\n\r\nOld executor page with thread dumps:\r\n\r\n<img width=\"1632\" alt=\"screen shot 2018-02-01 at 14 31 19\" src=\"https://user-images.githubusercontent.com/2017933/35682124-e2ec5d96-075f-11e8-9713-a502e12d05c2.png\">\r\n\r\nNew api:\r\n\r\n<img width=\"1669\" alt=\"screen shot 2018-02-01 at 14 31 56\" src=\"https://user-images.githubusercontent.com/2017933/35682149-f75b80d6-075f-11e8-95b0-c75d048f0b04.png\">\r\n\r\n\r\nTesting error cases.\r\n\r\nInitial state:\r\n\r\n<img width=\"1662\" alt=\"screen shot 2018-02-01 at 23 07 56\" src=\"https://user-images.githubusercontent.com/2017933/35706373-d14b572c-07a5-11e8-984e-08a4e9422bad.png\">\r\n\r\nDead executor:\r\n\r\n<img width=\"864\" alt=\"screen shot 2018-02-01 at 23 09 26\" src=\"https://user-images.githubusercontent.com/2017933/35706405-e8577388-07a5-11e8-8580-801b82d5bc5f.png\">\r\n\r\nNever existed (but well formatted: number) executor ID:\r\n\r\n<img width=\"782\" alt=\"screen shot 2018-02-02 at 21 39 04\" src=\"https://user-images.githubusercontent.com/2017933/35754206-e3ff0504-0862-11e8-91a3-33825f027ef2.png\">\r\n\r\nNot available stacktrace (dead executor but UI has not registered as dead yet):\r\n<img width=\"940\" alt=\"screen shot 2018-02-01 at 23 09 57\" src=\"https://user-images.githubusercontent.com/2017933/35706428-010ed34e-07a6-11e8-94f1-dd1c843e4ed5.png\">\r\n\r\nInvalid executor ID format:\r\n\r\n<img width=\"830\" alt=\"screen shot 2018-02-01 at 23 10 10\" src=\"https://user-images.githubusercontent.com/2017933/35706473-26c874be-07a6-11e8-918a-702c72eae6c2.png\">\r\n\r\n\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/apache/spark/issues/comments/362751199","html_url":"https://github.com/apache/spark/pull/20474#issuecomment-362751199","issue_url":"https://api.github.com/repos/apache/spark/issues/20474","id":362751199,"user":{"login":"AmplabJenkins","id":4031291,"avatar_url":"https://avatars3.githubusercontent.com/u/4031291?v=4","gravatar_id":"","url":"https://api.github.com/users/AmplabJenkins","html_url":"https://github.com/AmplabJenkins","followers_url":"https://api.github.com/users/AmplabJenkins/followers","following_url":"https://api.github.com/users/AmplabJenkins/following{/other_user}","gists_url":"https://api.github.com/users/AmplabJenkins/gists{/gist_id}","starred_url":"https://api.github.com/users/AmplabJenkins/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AmplabJenkins/subscriptions","organizations_url":"https://api.github.com/users/AmplabJenkins/orgs","repos_url":"https://api.github.com/users/AmplabJenkins/repos","events_url":"https://api.github.com/users/AmplabJenkins/events{/privacy}","received_events_url":"https://api.github.com/users/AmplabJenkins/received_events","type":"User","site_admin":false},"created_at":"2018-02-03T00:30:53Z","updated_at":"2018-02-03T00:30:53Z","author_association":"NONE","body":"Merged build finished. Test PASSed."}}
{"actor":{"display_login":"AmplabJenkins"}}