Shikhar Bhushan created KAFKA-4154:
--------------------------------------

             Summary: Kafka Connect fails to shutdown if it has not completed 
startup
                 Key: KAFKA-4154
                 URL: https://issues.apache.org/jira/browse/KAFKA-4154
             Project: Kafka
          Issue Type: Bug
          Components: KafkaConnect
            Reporter: Shikhar Bhushan
            Assignee: Shikhar Bhushan
             Fix For: 0.10.1.0


To reproduce:
1. Start Kafka Connect in distributed mode without Kafka running 
{{./bin/connect-distributed.sh config/connect-distributed.properties}}
2. Ctrl+C fails to terminate the process

thread dump:
{noformat}
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.92-b14 mixed mode):

"Thread-1" #13 prio=5 os_prio=31 tid=0x00007fc29a18a800 nid=0x7007 waiting on 
condition [0x0000700003129000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000007bd7d91d8> (a 
java.util.concurrent.CountDownLatch$Sync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304)
        at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231)
        at 
org.apache.kafka.connect.runtime.distributed.DistributedHerder.stop(DistributedHerder.java:357)
        at org.apache.kafka.connect.runtime.Connect.stop(Connect.java:71)
        at 
org.apache.kafka.connect.runtime.Connect$ShutdownHook.run(Connect.java:93)

"SIGINT handler" #27 daemon prio=9 os_prio=31 tid=0x00007fc29aa6a000 nid=0x560f 
in Object.wait() [0x0000700001a61000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000007bd63db38> (a 
org.apache.kafka.connect.runtime.Connect$ShutdownHook)
        at java.lang.Thread.join(Thread.java:1245)
        - locked <0x00000007bd63db38> (a 
org.apache.kafka.connect.runtime.Connect$ShutdownHook)
        at java.lang.Thread.join(Thread.java:1319)
        at 
java.lang.ApplicationShutdownHooks.runHooks(ApplicationShutdownHooks.java:106)
        at 
java.lang.ApplicationShutdownHooks$1.run(ApplicationShutdownHooks.java:46)
        at java.lang.Shutdown.runHooks(Shutdown.java:123)
        at java.lang.Shutdown.sequence(Shutdown.java:167)
        at java.lang.Shutdown.exit(Shutdown.java:212)
        - locked <0x00000007b0244600> (a java.lang.Class for java.lang.Shutdown)
        at java.lang.Terminator$1.handle(Terminator.java:52)
        at sun.misc.Signal$1.run(Signal.java:212)
        at java.lang.Thread.run(Thread.java:745)

"kafka-producer-network-thread | producer-1" #15 daemon prio=5 os_prio=31 
tid=0x00007fc29a0b7000 nid=0x7a03 runnable [0x0000700002608000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method)
        at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:198)
        at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:117)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
        - locked <0x00000007bd7788d8> (a sun.nio.ch.Util$2)
        - locked <0x00000007bd7788e8> (a java.util.Collections$UnmodifiableSet)
        - locked <0x00000007bd778888> (a sun.nio.ch.KQueueSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
        at org.apache.kafka.common.network.Selector.select(Selector.java:470)
        at org.apache.kafka.common.network.Selector.poll(Selector.java:286)
        at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:260)
        at 
org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:235)
        at 
org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:134)
        at java.lang.Thread.run(Thread.java:745)

"DistributedHerder" #14 prio=5 os_prio=31 tid=0x00007fc29a11e000 nid=0x7803 
waiting on condition [0x0000700002505000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at org.apache.kafka.common.utils.SystemTime.sleep(SystemTime.java:37)
        at 
org.apache.kafka.clients.consumer.internals.Fetcher.getTopicMetadata(Fetcher.java:299)
        at 
org.apache.kafka.clients.consumer.KafkaConsumer.partitionsFor(KafkaConsumer.java:1310)
        at 
org.apache.kafka.connect.util.KafkaBasedLog.start(KafkaBasedLog.java:131)
        at 
org.apache.kafka.connect.storage.KafkaOffsetBackingStore.start(KafkaOffsetBackingStore.java:86)
        at org.apache.kafka.connect.runtime.Worker.start(Worker.java:115)
        at 
org.apache.kafka.connect.runtime.AbstractHerder.startServices(AbstractHerder.java:112)
        at 
org.apache.kafka.connect.runtime.distributed.DistributedHerder.run(DistributedHerder.java:169)
        at java.lang.Thread.run(Thread.java:745)

"RMI TCP Accept-0" #12 daemon prio=5 os_prio=31 tid=0x00007fc299aed800 
nid=0x740f runnable [0x00007000022ff000]
   java.lang.Thread.State: RUNNABLE
        at java.net.PlainSocketImpl.socketAccept(Native Method)
        at 
java.net.AbstractPlainSocketImpl.accept(AbstractPlainSocketImpl.java:409)
        at java.net.ServerSocket.implAccept(ServerSocket.java:545)
        at java.net.ServerSocket.accept(ServerSocket.java:513)
        at 
sun.management.jmxremote.LocalRMIServerSocketFactory$1.accept(LocalRMIServerSocketFactory.java:52)
        at 
sun.rmi.transport.tcp.TCPTransport$AcceptLoop.executeAcceptLoop(TCPTransport.java:400)
        at 
sun.rmi.transport.tcp.TCPTransport$AcceptLoop.run(TCPTransport.java:372)
        at java.lang.Thread.run(Thread.java:745)

"Service Thread" #10 daemon prio=9 os_prio=31 tid=0x00007fc29a87d800 nid=0x6e03 
runnable [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C1 CompilerThread3" #9 daemon prio=9 os_prio=31 tid=0x00007fc29a02c000 
nid=0x6c03 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread2" #8 daemon prio=9 os_prio=31 tid=0x00007fc29a829800 
nid=0x6a03 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread1" #7 daemon prio=9 os_prio=31 tid=0x00007fc298968800 
nid=0x6803 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"C2 CompilerThread0" #6 daemon prio=9 os_prio=31 tid=0x00007fc29a829000 
nid=0x6603 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Signal Dispatcher" #5 daemon prio=9 os_prio=31 tid=0x00007fc298966800 
nid=0x6403 waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Surrogate Locker Thread (Concurrent GC)" #4 daemon prio=9 os_prio=31 
tid=0x00007fc299807000 nid=0x570b waiting on condition [0x0000000000000000]
   java.lang.Thread.State: RUNNABLE

"Finalizer" #3 daemon prio=8 os_prio=31 tid=0x00007fc298965000 nid=0x5003 in 
Object.wait() [0x000070000195e000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000007b0149a60> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
        - locked <0x00000007b0149a60> (a java.lang.ref.ReferenceQueue$Lock)
        at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
        at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)

"Reference Handler" #2 daemon prio=10 os_prio=31 tid=0x00007fc29b804000 
nid=0x4e03 in Object.wait() [0x000070000185b000]
   java.lang.Thread.State: WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        - waiting on <0x00000007b016ddb0> (a java.lang.ref.Reference$Lock)
        at java.lang.Object.wait(Object.java:502)
        at java.lang.ref.Reference.tryHandlePending(Reference.java:191)
        - locked <0x00000007b016ddb0> (a java.lang.ref.Reference$Lock)
        at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:153)

"main" #1 prio=5 os_prio=31 tid=0x00007fc29a802000 nid=0xc0f waiting on 
condition [0x0000700000219000]
   java.lang.Thread.State: WAITING (parking)
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000007bd63db08> (a 
java.util.concurrent.CountDownLatch$Sync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:997)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1304)
        at java.util.concurrent.CountDownLatch.await(CountDownLatch.java:231)
        at org.apache.kafka.connect.runtime.Connect.awaitStop(Connect.java:82)
        at 
org.apache.kafka.connect.cli.ConnectDistributed.main(ConnectDistributed.java:95)

"VM Thread" os_prio=31 tid=0x00007fc29a02b000 nid=0x4c03 runnable

"Gang worker#0 (Parallel GC Threads)" os_prio=31 tid=0x00007fc298813800 
nid=0x1607 runnable

"Gang worker#1 (Parallel GC Threads)" os_prio=31 tid=0x00007fc298814000 
nid=0x2603 runnable

"Gang worker#2 (Parallel GC Threads)" os_prio=31 tid=0x00007fc298814800 
nid=0x2803 runnable

"Gang worker#3 (Parallel GC Threads)" os_prio=31 tid=0x00007fc298815000 
nid=0x2a03 runnable

"Gang worker#4 (Parallel GC Threads)" os_prio=31 tid=0x00007fc298816000 
nid=0x2c03 runnable

"Gang worker#5 (Parallel GC Threads)" os_prio=31 tid=0x00007fc298816800 
nid=0x2e03 runnable

"Gang worker#6 (Parallel GC Threads)" os_prio=31 tid=0x00007fc298817000 
nid=0x3003 runnable

"Gang worker#7 (Parallel GC Threads)" os_prio=31 tid=0x00007fc298817800 
nid=0x3203 runnable

"G1 Main Concurrent Mark GC Thread" os_prio=31 tid=0x00007fc298833800 
nid=0x4603 runnable

"Gang worker#0 (G1 Parallel Marking Threads)" os_prio=31 tid=0x00007fc298834800 
nid=0x4803 runnable

"Gang worker#1 (G1 Parallel Marking Threads)" os_prio=31 tid=0x00007fc298835000 
nid=0x4a03 runnable

"G1 Concurrent Refinement Thread#0" os_prio=31 tid=0x00007fc29881e800 
nid=0x4403 runnable

"G1 Concurrent Refinement Thread#1" os_prio=31 tid=0x00007fc29881d800 
nid=0x4203 runnable

"G1 Concurrent Refinement Thread#2" os_prio=31 tid=0x00007fc29881d000 
nid=0x4003 runnable

"G1 Concurrent Refinement Thread#3" os_prio=31 tid=0x00007fc29881c000 
nid=0x3e03 runnable

"G1 Concurrent Refinement Thread#4" os_prio=31 tid=0x00007fc29881b800 
nid=0x3c03 runnable

"G1 Concurrent Refinement Thread#5" os_prio=31 tid=0x00007fc29881a800 
nid=0x3a03 runnable

"G1 Concurrent Refinement Thread#6" os_prio=31 tid=0x00007fc29881a000 
nid=0x3803 runnable

"G1 Concurrent Refinement Thread#7" os_prio=31 tid=0x00007fc298819000 
nid=0x3603 runnable

"G1 Concurrent Refinement Thread#8" os_prio=31 tid=0x00007fc298818800 
nid=0x3403 runnable

"VM Periodic Task Thread" os_prio=31 tid=0x00007fc29896d800 nid=0x7603 waiting 
on condition

JNI global references: 280

Heap
 garbage-first heap   total 262144K, used 23429K [0x00000007b0000000, 
0x00000007b0100800, 0x00000007c0000000)
  region size 1024K, 14 young (14336K), 5 survivors (5120K)
 Metaspace       used 19993K, capacity 20266K, committed 20480K, reserved 
1067008K
  class space    used 2430K, capacity 2513K, committed 2560K, reserved 1048576K
{noformat}




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to