[ 
https://issues.apache.org/jira/browse/KAFKA-13920?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Oleg Muravskiy updated KAFKA-13920:
-----------------------------------
    Description: 
When closing (transactional) KafkaProducer (after aborting incomplete 
transaction with {{KafkaProducer.abortTransaction()}}), it keeps waiting for 
the ioThread to join:
{code:java}
"MainLoop" #24 prio=5 os_prio=0 tid=0x00007f93d8afb800 nid=0x2c398 in 
Object.wait() [0x00007f93a0cf8000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Thread.join(Thread.java:1265)
        - locked <0x0000000085feb2c0> (a 
org.apache.kafka.common.utils.KafkaThread)
        at 
org.apache.kafka.clients.producer.KafkaProducer.close(KafkaProducer.java:1220)
        at 
org.apache.kafka.clients.producer.KafkaProducer.close(KafkaProducer.java:1197)
        at 
org.apache.kafka.clients.producer.KafkaProducer.close(KafkaProducer.java:1173){code}
while the ioThread is in this state:
{code:java}
"kafka-producer-network-thread | produce-ris-live-consume1.vega" #26 daemon 
prio=5 os_prio=0 tid=0x00007f92d01e1800 nid=0x2c399 waiting on condition 
[0x00007f93a03ca000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at org.apache.kafka.common.utils.Utils.sleep(Utils.java:375)
        at org.apache.kafka.common.utils.SystemTime.sleep(SystemTime.java:41)
        at 
org.apache.kafka.clients.producer.internals.Sender.maybeSendAndPollTransactionalRequest(Sender.java:463)
        at 
org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:315)
        at 
org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:255)
        at java.lang.Thread.run(Thread.java:750)
{code}
and does not quit.

  was:
{{When closing (transactional) KafkaProducer (after aborting incomplete 
transaction with }}{{{}KafkaProducer{}}}{{{}.abortTransaction(){}}}), it keeps 
waiting for the ioThread to join:
{code:java}
"MainLoop" #24 prio=5 os_prio=0 tid=0x00007f93d8afb800 nid=0x2c398 in 
Object.wait() [0x00007f93a0cf8000]
   java.lang.Thread.State: TIMED_WAITING (on object monitor)
        at java.lang.Object.wait(Native Method)
        at java.lang.Thread.join(Thread.java:1265)
        - locked <0x0000000085feb2c0> (a 
org.apache.kafka.common.utils.KafkaThread)
        at 
org.apache.kafka.clients.producer.KafkaProducer.close(KafkaProducer.java:1220)
        at 
org.apache.kafka.clients.producer.KafkaProducer.close(KafkaProducer.java:1197)
        at 
org.apache.kafka.clients.producer.KafkaProducer.close(KafkaProducer.java:1173){code}
{{while the ioThread is in this state:}}
{code:java}
"kafka-producer-network-thread | produce-ris-live-consume1.vega" #26 daemon 
prio=5 os_prio=0 tid=0x00007f92d01e1800 nid=0x2c399 waiting on condition 
[0x00007f93a03ca000]
   java.lang.Thread.State: TIMED_WAITING (sleeping)
        at java.lang.Thread.sleep(Native Method)
        at org.apache.kafka.common.utils.Utils.sleep(Utils.java:375)
        at org.apache.kafka.common.utils.SystemTime.sleep(SystemTime.java:41)
        at 
org.apache.kafka.clients.producer.internals.Sender.maybeSendAndPollTransactionalRequest(Sender.java:463)
        at 
org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:315)
        at 
org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:255)
        at java.lang.Thread.run(Thread.java:750){code}
{{and does not quit.}}


> KafkaProducer.close waits idefinitely on ioThread that is not joining 
> ----------------------------------------------------------------------
>
>                 Key: KAFKA-13920
>                 URL: https://issues.apache.org/jira/browse/KAFKA-13920
>             Project: Kafka
>          Issue Type: Bug
>          Components: producer 
>    Affects Versions: 2.8.0
>            Reporter: Oleg Muravskiy
>            Priority: Major
>
> When closing (transactional) KafkaProducer (after aborting incomplete 
> transaction with {{KafkaProducer.abortTransaction()}}), it keeps waiting for 
> the ioThread to join:
> {code:java}
> "MainLoop" #24 prio=5 os_prio=0 tid=0x00007f93d8afb800 nid=0x2c398 in 
> Object.wait() [0x00007f93a0cf8000]
>    java.lang.Thread.State: TIMED_WAITING (on object monitor)
>         at java.lang.Object.wait(Native Method)
>         at java.lang.Thread.join(Thread.java:1265)
>         - locked <0x0000000085feb2c0> (a 
> org.apache.kafka.common.utils.KafkaThread)
>         at 
> org.apache.kafka.clients.producer.KafkaProducer.close(KafkaProducer.java:1220)
>         at 
> org.apache.kafka.clients.producer.KafkaProducer.close(KafkaProducer.java:1197)
>         at 
> org.apache.kafka.clients.producer.KafkaProducer.close(KafkaProducer.java:1173){code}
> while the ioThread is in this state:
> {code:java}
> "kafka-producer-network-thread | produce-ris-live-consume1.vega" #26 daemon 
> prio=5 os_prio=0 tid=0x00007f92d01e1800 nid=0x2c399 waiting on condition 
> [0x00007f93a03ca000]
>    java.lang.Thread.State: TIMED_WAITING (sleeping)
>         at java.lang.Thread.sleep(Native Method)
>         at org.apache.kafka.common.utils.Utils.sleep(Utils.java:375)
>         at org.apache.kafka.common.utils.SystemTime.sleep(SystemTime.java:41)
>         at 
> org.apache.kafka.clients.producer.internals.Sender.maybeSendAndPollTransactionalRequest(Sender.java:463)
>         at 
> org.apache.kafka.clients.producer.internals.Sender.runOnce(Sender.java:315)
>         at 
> org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:255)
>         at java.lang.Thread.run(Thread.java:750)
> {code}
> and does not quit.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to