[GitHub] [kafka] hachikuji commented on pull request #12190: KAFKA-13923; Generalize authorizer system test for kraft

2022-05-20 Thread GitBox


hachikuji commented on PR #12190:
URL: https://github.com/apache/kafka/pull/12190#issuecomment-1133482572

   Successful test run here: 
http://confluent-kafka-branch-builder-system-test-results.s3-us-west-2.amazonaws.com/2022-05-20--001.system-test-kafka-branch-builder--1653090157--hachikuji--KAFKA-13923--017f69bfd3/report.html.


-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] hachikuji opened a new pull request, #12190: KAFKA-13923; Generalize authorizer system test for kraft

2022-05-20 Thread GitBox


hachikuji opened a new pull request, #12190:
URL: https://github.com/apache/kafka/pull/12190

   Now that KRaft supports an authorizer (from KIP-801), we should be covering 
it in our system tests. I kept around the test with KRaft and the zk 
`AclAuthorizer` since it seems useful in KRaft to test an implementation which 
uses an external source.
   
   ### Committer Checklist (excluded from commit message)
   - [ ] Verify design and implementation 
   - [ ] Verify test coverage and CI build status
   - [ ] Verify documentation (including upgrade notes)
   


-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] rittikaadhikari commented on a diff in pull request #12005: KAFKA-13803: Refactor Leader API Access

2022-05-20 Thread GitBox


rittikaadhikari commented on code in PR #12005:
URL: https://github.com/apache/kafka/pull/12005#discussion_r878592964


##
core/src/main/scala/kafka/server/LeaderEndPoint.scala:
##
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package kafka.server
+
+import kafka.cluster.BrokerEndPoint
+import kafka.server.AbstractFetcherThread.{ReplicaFetch, ResultWithPartitions}
+import org.apache.kafka.common.TopicPartition
+import org.apache.kafka.common.requests.FetchRequest
+import 
org.apache.kafka.common.message.OffsetForLeaderEpochResponseData.EpochEndOffset
+import org.apache.kafka.common.message.{FetchResponseData, 
OffsetForLeaderEpochRequestData}
+
+import scala.collection.Map
+
+/**
+ * This trait defines the APIs to be used on the client side to access a 
broker that is a leader.
+ */
+trait LeaderEndPoint {
+
+  type FetchData = FetchResponseData.PartitionData
+  type EpochData = OffsetForLeaderEpochRequestData.OffsetForLeaderPartition
+
+  /**
+   * A boolean specifying if truncation when fetching from the leader is 
supported
+   */
+  def isTruncationOnFetchSupported: Boolean
+
+  /**
+   * Initiate closing access to fetches from leader.
+   */
+  def initiateClose(): Unit
+
+  /**
+   * Closes access to fetches from leader.
+   * `initiateClose` must be called prior to invoking `close`.
+   */
+  def close(): Unit
+
+  /**
+   * The specific broker (host:port) we want to connect to.
+   */
+  def brokerEndPoint(): BrokerEndPoint
+
+  /**
+   * Given a fetchRequest, carries out the expected request and returns
+   * the results from fetching from the leader.
+   *
+   * @param fetchRequest The fetch request we want to carry out
+   *
+   * @return A map of topic partition -> fetch data
+   */
+  def fetch(fetchRequest: FetchRequest.Builder): Map[TopicPartition, FetchData]
+
+  /**
+   * Fetches the log start offset of the given topic partition, at a specific
+   * leader epoch, from the leader.
+   *
+   * @param topicPartition The topic partition that we want to fetch from
+   * @param currentLeaderEpoch An int representing the current leader epoch of 
the requester
+   *
+   * @return A long representing the earliest offset in the leader's topic 
partition.

Review Comment:
   I can add some documentation to the `fetchEarliestOffset` in both 
implemented endpoint classes to reflect that



-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] rittikaadhikari commented on a diff in pull request #12005: KAFKA-13803: Refactor Leader API Access

2022-05-20 Thread GitBox


rittikaadhikari commented on code in PR #12005:
URL: https://github.com/apache/kafka/pull/12005#discussion_r878592706


##
core/src/main/scala/kafka/server/LeaderEndPoint.scala:
##
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package kafka.server
+
+import kafka.cluster.BrokerEndPoint
+import kafka.server.AbstractFetcherThread.{ReplicaFetch, ResultWithPartitions}
+import org.apache.kafka.common.TopicPartition
+import org.apache.kafka.common.requests.FetchRequest
+import 
org.apache.kafka.common.message.OffsetForLeaderEpochResponseData.EpochEndOffset
+import org.apache.kafka.common.message.{FetchResponseData, 
OffsetForLeaderEpochRequestData}
+
+import scala.collection.Map
+
+/**
+ * This trait defines the APIs to be used on the client side to access a 
broker that is a leader.
+ */
+trait LeaderEndPoint {
+
+  type FetchData = FetchResponseData.PartitionData
+  type EpochData = OffsetForLeaderEpochRequestData.OffsetForLeaderPartition
+
+  /**
+   * A boolean specifying if truncation when fetching from the leader is 
supported
+   */
+  def isTruncationOnFetchSupported: Boolean
+
+  /**
+   * Initiate closing access to fetches from leader.
+   */
+  def initiateClose(): Unit
+
+  /**
+   * Closes access to fetches from leader.
+   * `initiateClose` must be called prior to invoking `close`.
+   */
+  def close(): Unit
+
+  /**
+   * The specific broker (host:port) we want to connect to.
+   */
+  def brokerEndPoint(): BrokerEndPoint
+
+  /**
+   * Given a fetchRequest, carries out the expected request and returns
+   * the results from fetching from the leader.
+   *
+   * @param fetchRequest The fetch request we want to carry out
+   *
+   * @return A map of topic partition -> fetch data
+   */
+  def fetch(fetchRequest: FetchRequest.Builder): Map[TopicPartition, FetchData]
+
+  /**
+   * Fetches the log start offset of the given topic partition, at a specific
+   * leader epoch, from the leader.
+   *
+   * @param topicPartition The topic partition that we want to fetch from
+   * @param currentLeaderEpoch An int representing the current leader epoch of 
the requester
+   *
+   * @return A long representing the earliest offset in the leader's topic 
partition.

Review Comment:
   I believe that this depends on whether we are using the 
`RemoteLeaderEndPoint` vs. the `LocalLeaderEndPoint`



-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] rittikaadhikari commented on a diff in pull request #12005: KAFKA-13803: Refactor Leader API Access

2022-05-20 Thread GitBox


rittikaadhikari commented on code in PR #12005:
URL: https://github.com/apache/kafka/pull/12005#discussion_r878591307


##
core/src/main/scala/kafka/server/BrokerBlockingSender.scala:
##
@@ -124,4 +128,8 @@ class ReplicaFetcherBlockingSend(sourceBroker: 
BrokerEndPoint,
   def close(): Unit = {
 networkClient.close()
   }
+
+  override def toString: String = {
+s"ReplicaFetcherBlockingSend($sourceBroker, fetcherId=$fetcherId)"

Review Comment:
   Nice catch, I totally missed that in the refactor.



-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] kowshik commented on a diff in pull request #12005: KAFKA-13803: Refactor Leader API Access

2022-05-20 Thread GitBox


kowshik commented on code in PR #12005:
URL: https://github.com/apache/kafka/pull/12005#discussion_r878586639


##
core/src/main/scala/kafka/server/LeaderEndPoint.scala:
##
@@ -0,0 +1,108 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ *http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package kafka.server
+
+import kafka.cluster.BrokerEndPoint
+import kafka.server.AbstractFetcherThread.{ReplicaFetch, ResultWithPartitions}
+import org.apache.kafka.common.TopicPartition
+import org.apache.kafka.common.requests.FetchRequest
+import 
org.apache.kafka.common.message.OffsetForLeaderEpochResponseData.EpochEndOffset
+import org.apache.kafka.common.message.{FetchResponseData, 
OffsetForLeaderEpochRequestData}
+
+import scala.collection.Map
+
+/**
+ * This trait defines the APIs to be used on the client side to access a 
broker that is a leader.
+ */
+trait LeaderEndPoint {
+
+  type FetchData = FetchResponseData.PartitionData
+  type EpochData = OffsetForLeaderEpochRequestData.OffsetForLeaderPartition
+
+  /**
+   * A boolean specifying if truncation when fetching from the leader is 
supported
+   */
+  def isTruncationOnFetchSupported: Boolean
+
+  /**
+   * Initiate closing access to fetches from leader.
+   */
+  def initiateClose(): Unit
+
+  /**
+   * Closes access to fetches from leader.
+   * `initiateClose` must be called prior to invoking `close`.
+   */
+  def close(): Unit
+
+  /**
+   * The specific broker (host:port) we want to connect to.
+   */
+  def brokerEndPoint(): BrokerEndPoint
+
+  /**
+   * Given a fetchRequest, carries out the expected request and returns
+   * the results from fetching from the leader.
+   *
+   * @param fetchRequest The fetch request we want to carry out
+   *
+   * @return A map of topic partition -> fetch data
+   */
+  def fetch(fetchRequest: FetchRequest.Builder): Map[TopicPartition, FetchData]
+
+  /**
+   * Fetches the log start offset of the given topic partition, at a specific
+   * leader epoch, from the leader.
+   *
+   * @param topicPartition The topic partition that we want to fetch from
+   * @param currentLeaderEpoch An int representing the current leader epoch of 
the requester
+   *
+   * @return A long representing the earliest offset in the leader's topic 
partition.

Review Comment:
   Is this returning the leader's "local" log start offset, or the remote log 
start offset?
   Note: the earliest offset is not necessarily the local log start offset, it 
could be the remote log start offset.
   
   Depending on what this function is returning, we can improve the 
documentation to mention "local" or "remote" log start offset.



##
core/src/main/scala/kafka/server/BrokerBlockingSender.scala:
##
@@ -124,4 +128,8 @@ class ReplicaFetcherBlockingSend(sourceBroker: 
BrokerEndPoint,
   def close(): Unit = {
 networkClient.close()
   }
+
+  override def toString: String = {
+s"ReplicaFetcherBlockingSend($sourceBroker, fetcherId=$fetcherId)"

Review Comment:
   Lets use `BrokerBlockingSender` in the string.



##
core/src/test/scala/unit/kafka/server/epoch/util/ReplicaFetcherMockBlockingSend.scala:
##
@@ -16,19 +16,19 @@
   */
 package kafka.server.epoch.util
 
-import java.net.SocketTimeoutException
-import java.util
 import kafka.cluster.BrokerEndPoint
 import kafka.server.BlockingSend
 import org.apache.kafka.clients.{ClientRequest, ClientResponse, MockClient, 
NetworkClientUtils}
-import org.apache.kafka.common.message.{FetchResponseData, 
OffsetForLeaderEpochResponseData}
 import 
org.apache.kafka.common.message.OffsetForLeaderEpochResponseData.{EpochEndOffset,
 OffsetForLeaderTopicResult}
+import org.apache.kafka.common.message.{FetchResponseData, 
OffsetForLeaderEpochResponseData}
 import org.apache.kafka.common.protocol.{ApiKeys, Errors}
 import org.apache.kafka.common.requests.AbstractRequest.Builder
 import org.apache.kafka.common.requests.{AbstractRequest, FetchResponse, 
OffsetsForLeaderEpochResponse, FetchMetadata => JFetchMetadata}
 import org.apache.kafka.common.utils.{SystemTime, Time}
 import org.apache.kafka.common.{Node, TopicIdPartition, TopicPartition, Uuid}
 
+import java.net.SocketTimeoutException
+import java.util
 import scala.collection.Map
 
 /**

Review Comment:
   

[jira] [Commented] (KAFKA-13817) Schedule nextTimeToEmit to system time every time instead of just once

2022-05-20 Thread Matthias J. Sax (Jira)


[ 
https://issues.apache.org/jira/browse/KAFKA-13817?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17540294#comment-17540294
 ] 

Matthias J. Sax commented on KAFKA-13817:
-

Thanks for the PR! I put it into my review backlog. Might take some time until 
I get to it.

> Schedule nextTimeToEmit to system time every time instead of just once
> --
>
> Key: KAFKA-13817
> URL: https://issues.apache.org/jira/browse/KAFKA-13817
> Project: Kafka
>  Issue Type: Improvement
>  Components: streams
>Reporter: Hao Li
>Assignee: Lim Qing Wei
>Priority: Minor
>  Labels: beginner, newbie
>
> [https://github.com/apache/kafka/blob/trunk/streams/src/main/java/org/apache/kafka/streams/kstream/internals/KStreamKStreamJoin.java#L229-L231.]
>  
> If this is just scheduled once, this can trigger emit every time if system 
> time jumps a lot suddenly.
>  
> For example, 
>  # nextTimeToEmit set to 1 and step is 1
>  # If next system time jumps to 100, we will always emit for next 100 records



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


[GitHub] [kafka] mjsax commented on pull request #12169: MINOR: improve description of `commit.interval.ms` config

2022-05-20 Thread GitBox


mjsax commented on PR #12169:
URL: https://github.com/apache/kafka/pull/12169#issuecomment-1133318073

   I am not sure if bumping the priority from LOW to MEDIUM is the right thing 
to do? In general, we cannot also not explain all config cross-dependencies 
(ie, `linger.ms`). If there is no objection, I would merge the PR as-is?


-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] mjsax commented on a diff in pull request #12169: MINOR: improve description of `commit.interval.ms` config

2022-05-20 Thread GitBox


mjsax commented on code in PR #12169:
URL: https://github.com/apache/kafka/pull/12169#discussion_r878518216


##
streams/src/main/java/org/apache/kafka/streams/StreamsConfig.java:
##
@@ -452,7 +452,9 @@ public class StreamsConfig extends AbstractConfig {
 /** {@code commit.interval.ms} */
 @SuppressWarnings("WeakerAccess")
 public static final String COMMIT_INTERVAL_MS_CONFIG = 
"commit.interval.ms";
-private static final String COMMIT_INTERVAL_MS_DOC = "The frequency in 
milliseconds with which to save the position of the processor." +
+private static final String COMMIT_INTERVAL_MS_DOC = "The frequency in 
milliseconds with which to commit processing progress." +
+" For at-least-once processing, committing means to save the position 
(ie, offsets) of the processor." +
+" For exactly-once processing, it means to commit the transaction 
which includes to save the position." +

Review Comment:
   Not sure -- would we go down the rabbit hole?



-- 
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: jira-unsubscr...@kafka.apache.org

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



[jira] [Created] (KAFKA-13923) ZooKeeperAuthorizerTest should use standard authorizer for kraft

2022-05-20 Thread Jason Gustafson (Jira)
Jason Gustafson created KAFKA-13923:
---

 Summary: ZooKeeperAuthorizerTest should use standard authorizer 
for kraft
 Key: KAFKA-13923
 URL: https://issues.apache.org/jira/browse/KAFKA-13923
 Project: Kafka
  Issue Type: Improvement
Reporter: Jason Gustafson
Assignee: Jason Gustafson


Our system test `ZooKeeperAuthorizerTest` relies on the zk-based 
`AclAuthorizer` even when running KRaft. We should update this test to use 
`StandardAuthorizer` (and probably change the name while we're at it).



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


[jira] [Commented] (KAFKA-13817) Schedule nextTimeToEmit to system time every time instead of just once

2022-05-20 Thread Lim Qing Wei (Jira)


[ 
https://issues.apache.org/jira/browse/KAFKA-13817?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17540259#comment-17540259
 ] 

Lim Qing Wei commented on KAFKA-13817:
--

Hi [~lihaosky] or [~mjsax] , will you be the one to review my PR?

 

Or should I request in the dev mailing list?

> Schedule nextTimeToEmit to system time every time instead of just once
> --
>
> Key: KAFKA-13817
> URL: https://issues.apache.org/jira/browse/KAFKA-13817
> Project: Kafka
>  Issue Type: Improvement
>  Components: streams
>Reporter: Hao Li
>Assignee: Lim Qing Wei
>Priority: Minor
>  Labels: beginner, newbie
>
> [https://github.com/apache/kafka/blob/trunk/streams/src/main/java/org/apache/kafka/streams/kstream/internals/KStreamKStreamJoin.java#L229-L231.]
>  
> If this is just scheduled once, this can trigger emit every time if system 
> time jumps a lot suddenly.
>  
> For example, 
>  # nextTimeToEmit set to 1 and step is 1
>  # If next system time jumps to 100, we will always emit for next 100 records



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


[jira] [Updated] (KAFKA-13914) Implement kafka-metadata-quorum.sh

2022-05-20 Thread Jose Armando Garcia Sancio (Jira)


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

Jose Armando Garcia Sancio updated KAFKA-13914:
---
Issue Type: Improvement  (was: Bug)

> Implement kafka-metadata-quorum.sh
> --
>
> Key: KAFKA-13914
> URL: https://issues.apache.org/jira/browse/KAFKA-13914
> Project: Kafka
>  Issue Type: Improvement
>Reporter: Jason Gustafson
>Priority: Major
>
> KIP-595 documents a tool for describing quorum status 
> `kafka-metadata-quorum.sh`: 
> [https://cwiki.apache.org/confluence/display/KAFKA/KIP-595%3A+A+Raft+Protocol+for+the+Metadata+Quorum#KIP595:ARaftProtocolfortheMetadataQuorum-ToolingSupport.]
>   We need to implement this.
> Note that this depends on the Admin API for `DescribeQuorum`, which is 
> proposed in KIP-836: 
> [https://cwiki.apache.org/confluence/display/KAFKA/KIP-836%3A+Addition+of+Information+in+DescribeQuorumResponse+about+Voter+Lag.]
>  



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


[GitHub] [kafka] divijvaidya commented on a diff in pull request #12189: Fix flaky test TopicCommandIntegrationTest.testDescribeAtMinIsrPartitions(String).quorum=kraft

2022-05-20 Thread GitBox


divijvaidya commented on code in PR #12189:
URL: https://github.com/apache/kafka/pull/12189#discussion_r878437206


##
core/src/test/scala/integration/kafka/admin/TopicCommandIntegrationTest.scala:
##
@@ -697,6 +697,19 @@ class TopicCommandIntegrationTest extends 
KafkaServerTestHarness with Logging wi
 try {
   killBroker(0)
   killBroker(1)
+
+  val aliveServers = brokers.filterNot(brokers => brokers.config.brokerId 
== 0 || brokers.config.brokerId == 1)
+
+  if (isKRaftTest()) {
+TestUtils.ensureConsistentKRaftMetadata(aliveServers, controllerServer,

Review Comment:
   Thank you for the review and suggestion. I have made two changes based on 
your suggestion:
   1. Added a helper method `aliveBrokers` in KafkaServerTestHarness()
   2. Modified KafkaServerTestHarness.ensureConsistentKRaftMetadata() to check 
for only the brokers which are alive
   
   Separately, if you have thoughts on further simplification (especially 
around combining the logic of Zk and kraft in a single helper function), I 
would be happy to make the change.



-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] hachikuji commented on a diff in pull request #12189: Fix flaky test TopicCommandIntegrationTest.testDescribeAtMinIsrPartitions(String).quorum=kraft

2022-05-20 Thread GitBox


hachikuji commented on code in PR #12189:
URL: https://github.com/apache/kafka/pull/12189#discussion_r878330637


##
core/src/test/scala/integration/kafka/admin/TopicCommandIntegrationTest.scala:
##
@@ -697,6 +697,19 @@ class TopicCommandIntegrationTest extends 
KafkaServerTestHarness with Logging wi
 try {
   killBroker(0)
   killBroker(1)
+
+  val aliveServers = brokers.filterNot(brokers => brokers.config.brokerId 
== 0 || brokers.config.brokerId == 1)
+
+  if (isKRaftTest()) {
+TestUtils.ensureConsistentKRaftMetadata(aliveServers, controllerServer,

Review Comment:
   We have a helper `KafkaServerTestHarness.ensureConsistentKRaftMetadata`. I 
think it would make sense to modify it to use only the alive brokers. Then we 
could use it here.



-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] dajac commented on pull request #12121: KAFKA-13846: Adding overloaded metricOrElseCreate method

2022-05-20 Thread GitBox


dajac commented on PR #12121:
URL: https://github.com/apache/kafka/pull/12121#issuecomment-1133028737

   Do we also have concrete examples of usages of this new API? It would be 
helpful to update one or two metrics which would benefits from this change. 
This would be a good illustration.


-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] dajac commented on pull request #12121: KAFKA-13846: Adding overloaded metricOrElseCreate method

2022-05-20 Thread GitBox


dajac commented on PR #12121:
URL: https://github.com/apache/kafka/pull/12121#issuecomment-1133027849

   `Metrics` is actually published in our 
[javadoc](https://javadoc.io/doc/org.apache.kafka/kafka-clients/latest/org/apache/kafka/common/metrics/Metrics.html).
 This suggests that changing it would require a KIP, no?


-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] dajac commented on a diff in pull request #12121: KAFKA-13846: Adding overloaded metricOrElseCreate method

2022-05-20 Thread GitBox


dajac commented on code in PR #12121:
URL: https://github.com/apache/kafka/pull/12121#discussion_r878262992


##
clients/src/main/java/org/apache/kafka/common/metrics/Metrics.java:
##
@@ -563,10 +615,15 @@ public synchronized void removeReporter(MetricsReporter 
reporter) {
 }
 }
 
-synchronized void registerMetric(KafkaMetric metric) {
+synchronized void registerMetric(KafkaMetric metric, boolean 
raiseIfMetricExists) {

Review Comment:
   `registerMetric` is also called from the `Sensor` class so we have to check 
if that works there as well.



-- 
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: jira-unsubscr...@kafka.apache.org

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



[jira] [Comment Edited] (KAFKA-13922) Unable to generate coverage reports for the whole project

2022-05-20 Thread Patrik Nagy (Jira)


[ 
https://issues.apache.org/jira/browse/KAFKA-13922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17540157#comment-17540157
 ] 

Patrik Nagy edited comment on KAFKA-13922 at 5/20/22 2:53 PM:
--

There is a reportCoverage task in each module that runs jacoco or scoverage 
report (scoverage for the core module and jacoco for any other). This works 
well and needed for coverage generation.

There is also a reportCoverage task configured outside of subprojects scope 
that depends on jacocoRootReport and the reportCoverage task of the core 
module. 

The jacocoRootReport depends on all java related project's test task.

I don't think this jacocoRootReport is needed in the project because:
 * You can have the coverage data generated for all modules without it
 * If you need something like a report to summarize everything that is what 
sonar is much better for than an html/xml file
 * I don't think jacoco aggregated report would include the core module's 
scoverage report (I am sure it can be implemented with additional work, but I 
am not sure it is worth instead of using simply a sonar), so even if the 
aggregated report would work, it still would not be complete for the project, 
core module would be missing
 * It seems to me that Gradle advises to create another module for aggregated 
reports that would be responsible to collect everything and generate the 
report, not like the current one: 
[https://docs.gradle.org/7.3.3/samples/sample_jvm_multi_project_with_code_coverage.html]
 * I doubt that it is used by anyone because it is not working for a really 
long time (tested in 2.5 and 3.2)

I think the jacocoRootReport should be considered to be deleted along with the 
reportCoverage task outside of subprojects scope:
{code:java}
if (userEnableTestCoverage) {
  task reportCoverage(dependsOn: ['jacocoRootReport', 'core:reportCoverage'])
} {code}
Without them, it would be easy to generate coverage for all modules as it is 
documented.

 


was (Author: JIRAUSER289621):
There is a reportCoverage task in each module that runs jacoco or scoverage 
report (scoverage for the core module and jacoco for any other). This works 
well and needed for coverage generation.

There is also a reportCoverage task configured outside of subprojects scope 
that depends on jacocoRootReport and the reportCoverage task of the core 
module. 

The jacocoRootReport depends on all java related project's test task.

I don't think this jacocoRootReport is needed in the project because:
 * You can have the coverage data generated for all modules without it
 * If you need something like a report to summarize everything that is what 
sonar is much better for than an html/xml file
 * I don't think jacoco aggregated report would include the core module's 
scoverage report (I am sure it can be implemented with additional work, but I 
am not sure it is worth instead of using simply a sonar), so even if the 
aggregated report would work, it still would not be complete for the project, 
core module would be missing
 * It seems to me that Gradle advises to create another module for aggregated 
reports that would be responsible to collect everything and generate the 
report, not like the current one: 
[https://docs.gradle.org/7.3.3/samples/sample_jvm_multi_project_with_code_coverage.html]
 * I doubt that it is used by anyone because it is not working for a really 
long time (tested in 2.5 and 3.2)

 

I think the jacocoRootReport should be considered to be deleted along with the 
reportCoverage task outside of subprojects scope:

 
{code:java}
if (userEnableTestCoverage) {
  task reportCoverage(dependsOn: ['jacocoRootReport', 'core:reportCoverage'])
} {code}
Without them, it would be easy to generate coverage for all modules as it is 
documented.

 

> Unable to generate coverage reports for the whole project
> -
>
> Key: KAFKA-13922
> URL: https://issues.apache.org/jira/browse/KAFKA-13922
> Project: Kafka
>  Issue Type: Bug
>  Components: build
>Affects Versions: 2.5.0
>Reporter: Patrik Nagy
>Priority: Minor
>
> It is documented in the project that if we need code coverage reports for the 
> whole project, we need to run something like this where we enabled the test 
> coverage flag and run the reportCoverage task:
> {code:java}
> ./gradlew reportCoverage -PenableTestCoverage=true -Dorg.gradle.parallel=false
> {code}
> If I run it, the build will fail in the end because of jacocoRootReport:
> {code:java}
> 14:34:41 > Task :jacocoRootReport FAILED
> 14:34:41 
> 14:34:41 FAILURE: Build failed with an exception.
> 14:34:41 
> 14:34:41 * What went wrong:
> 14:34:41 Some problems were found with the configuration of task 
> ':jacocoRootReport' (type 'JacocoReport').
> 14:34:41   - Type 

[jira] [Commented] (KAFKA-13922) Unable to generate coverage reports for the whole project

2022-05-20 Thread Patrik Nagy (Jira)


[ 
https://issues.apache.org/jira/browse/KAFKA-13922?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=17540157#comment-17540157
 ] 

Patrik Nagy commented on KAFKA-13922:
-

There is a reportCoverage task in each module that runs jacoco or scoverage 
report (scoverage for the core module and jacoco for any other). This works 
well and needed for coverage generation.

There is also a reportCoverage task configured outside of subprojects scope 
that depends on jacocoRootReport and the reportCoverage task of the core 
module. 

The jacocoRootReport depends on all java related project's test task.

I don't think this jacocoRootReport is needed in the project because:
 * You can have the coverage data generated for all modules without it
 * If you need something like a report to summarize everything that is what 
sonar is much better for than an html/xml file
 * I don't think jacoco aggregated report would include the core module's 
scoverage report (I am sure it can be implemented with additional work, but I 
am not sure it is worth instead of using simply a sonar), so even if the 
aggregated report would work, it still would not be complete for the project, 
core module would be missing
 * It seems to me that Gradle advises to create another module for aggregated 
reports that would be responsible to collect everything and generate the 
report, not like the current one: 
[https://docs.gradle.org/7.3.3/samples/sample_jvm_multi_project_with_code_coverage.html]
 * I doubt that it is used by anyone because it is not working for a really 
long time (tested in 2.5 and 3.2)

 

I think the jacocoRootReport should be considered to be deleted along with the 
reportCoverage task outside of subprojects scope:

 
{code:java}
if (userEnableTestCoverage) {
  task reportCoverage(dependsOn: ['jacocoRootReport', 'core:reportCoverage'])
} {code}
Without them, it would be easy to generate coverage for all modules as it is 
documented.

 

> Unable to generate coverage reports for the whole project
> -
>
> Key: KAFKA-13922
> URL: https://issues.apache.org/jira/browse/KAFKA-13922
> Project: Kafka
>  Issue Type: Bug
>  Components: build
>Affects Versions: 2.5.0
>Reporter: Patrik Nagy
>Priority: Minor
>
> It is documented in the project that if we need code coverage reports for the 
> whole project, we need to run something like this where we enabled the test 
> coverage flag and run the reportCoverage task:
> {code:java}
> ./gradlew reportCoverage -PenableTestCoverage=true -Dorg.gradle.parallel=false
> {code}
> If I run it, the build will fail in the end because of jacocoRootReport:
> {code:java}
> 14:34:41 > Task :jacocoRootReport FAILED
> 14:34:41 
> 14:34:41 FAILURE: Build failed with an exception.
> 14:34:41 
> 14:34:41 * What went wrong:
> 14:34:41 Some problems were found with the configuration of task 
> ':jacocoRootReport' (type 'JacocoReport').
> 14:34:41   - Type 'org.gradle.testing.jacoco.tasks.JacocoReport' property 
> 'jacocoClasspath' doesn't have a configured value.
> 14:34:41 
> 14:34:41 Reason: This property isn't marked as optional and no value has 
> been configured.
> 14:34:41 
> 14:34:41 Possible solutions:
> 14:34:41   1. Assign a value to 'jacocoClasspath'.
> 14:34:41   2. Mark property 'jacocoClasspath' as optional.
> 14:34:41 
> 14:34:41 Please refer to 
> https://docs.gradle.org/7.3.3/userguide/validation_problems.html#value_not_set
>  for more details about this problem.
> 14:34:41   - Type 'org.gradle.testing.jacoco.tasks.JacocoReport' property 
> 'reports.enabledReports.html.outputLocation' doesn't have a configured value.
> 14:34:41 
> 14:34:41 Reason: This property isn't marked as optional and no value has 
> been configured.
> 14:34:41 
> 14:34:41 Possible solutions:
> 14:34:41   1. Assign a value to 
> 'reports.enabledReports.html.outputLocation'.
> 14:34:41   2. Mark property 'reports.enabledReports.html.outputLocation' 
> as optional.
> 14:34:41 
> 14:34:41 Please refer to 
> https://docs.gradle.org/7.3.3/userguide/validation_problems.html#value_not_set
>  for more details about this problem.
> 14:34:41   - Type 'org.gradle.testing.jacoco.tasks.JacocoReport' property 
> 'reports.enabledReports.xml.outputLocation' doesn't have a configured value.
> 14:34:41 
> 14:34:41 Reason: This property isn't marked as optional and no value has 
> been configured.
> 14:34:41 
> 14:34:41 Possible solutions:
> 14:34:41   1. Assign a value to 
> 'reports.enabledReports.xml.outputLocation'.
> 14:34:41   2. Mark property 'reports.enabledReports.xml.outputLocation' 
> as optional. {code}



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


[GitHub] [kafka] viktorsomogyi commented on pull request #10738: KAFKA-6945: KIP-373, allow users to create delegation token for others

2022-05-20 Thread GitBox


viktorsomogyi commented on PR #10738:
URL: https://github.com/apache/kafka/pull/10738#issuecomment-1132991630

   @omkreddy would you please check it once you get some time?


-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] viktorsomogyi commented on pull request #12180: KAFKA-13917: Avoid calling lookupCoordinator() in tight loop

2022-05-20 Thread GitBox


viktorsomogyi commented on PR #12180:
URL: https://github.com/apache/kafka/pull/12180#issuecomment-1132983718

   @mimaison would you please review this short change if you get some time?


-- 
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: jira-unsubscr...@kafka.apache.org

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



[jira] [Created] (KAFKA-13922) Unable to generate coverage reports for the whole project

2022-05-20 Thread Patrik Nagy (Jira)
Patrik Nagy created KAFKA-13922:
---

 Summary: Unable to generate coverage reports for the whole project
 Key: KAFKA-13922
 URL: https://issues.apache.org/jira/browse/KAFKA-13922
 Project: Kafka
  Issue Type: Bug
  Components: build
Affects Versions: 2.5.0
Reporter: Patrik Nagy


It is documented in the project that if we need code coverage reports for the 
whole project, we need to run something like this where we enabled the test 
coverage flag and run the reportCoverage task:
{code:java}
./gradlew reportCoverage -PenableTestCoverage=true -Dorg.gradle.parallel=false
{code}
If I run it, the build will fail in the end because of jacocoRootReport:
{code:java}
14:34:41 > Task :jacocoRootReport FAILED
14:34:41 
14:34:41 FAILURE: Build failed with an exception.
14:34:41 
14:34:41 * What went wrong:
14:34:41 Some problems were found with the configuration of task 
':jacocoRootReport' (type 'JacocoReport').
14:34:41   - Type 'org.gradle.testing.jacoco.tasks.JacocoReport' property 
'jacocoClasspath' doesn't have a configured value.
14:34:41 
14:34:41 Reason: This property isn't marked as optional and no value has 
been configured.
14:34:41 
14:34:41 Possible solutions:
14:34:41   1. Assign a value to 'jacocoClasspath'.
14:34:41   2. Mark property 'jacocoClasspath' as optional.
14:34:41 
14:34:41 Please refer to 
https://docs.gradle.org/7.3.3/userguide/validation_problems.html#value_not_set 
for more details about this problem.
14:34:41   - Type 'org.gradle.testing.jacoco.tasks.JacocoReport' property 
'reports.enabledReports.html.outputLocation' doesn't have a configured value.
14:34:41 
14:34:41 Reason: This property isn't marked as optional and no value has 
been configured.
14:34:41 
14:34:41 Possible solutions:
14:34:41   1. Assign a value to 
'reports.enabledReports.html.outputLocation'.
14:34:41   2. Mark property 'reports.enabledReports.html.outputLocation' as 
optional.
14:34:41 
14:34:41 Please refer to 
https://docs.gradle.org/7.3.3/userguide/validation_problems.html#value_not_set 
for more details about this problem.
14:34:41   - Type 'org.gradle.testing.jacoco.tasks.JacocoReport' property 
'reports.enabledReports.xml.outputLocation' doesn't have a configured value.
14:34:41 
14:34:41 Reason: This property isn't marked as optional and no value has 
been configured.
14:34:41 
14:34:41 Possible solutions:
14:34:41   1. Assign a value to 'reports.enabledReports.xml.outputLocation'.
14:34:41   2. Mark property 'reports.enabledReports.xml.outputLocation' as 
optional. {code}



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


[GitHub] [kafka] vvcephei merged pull request #12186: MINOR: Deflake OptimizedKTableIntegrationTest

2022-05-20 Thread GitBox


vvcephei merged PR #12186:
URL: https://github.com/apache/kafka/pull/12186


-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] soarez commented on a diff in pull request #12174: KAFKA-13907: Fix hanging ServerShutdownTest.testCleanShutdownWithKRaftControllerUnavailable

2022-05-20 Thread GitBox


soarez commented on code in PR #12174:
URL: https://github.com/apache/kafka/pull/12174#discussion_r878056323


##
core/src/main/scala/kafka/server/BrokerServer.scala:
##
@@ -93,6 +93,9 @@ class BrokerServer(
 
   this.logIdent = logContext.logPrefix
 
+  // VisibleForTesting
+  private[kafka] var controlledShutdownTimeoutMillis: Long = 5 * 60 * 1000L // 
5 minutes

Review Comment:
   Thanks for reviewing this @dengziming. I agree it is not an elegant approach.
   And thanks for your suggestion, it seems to be in line with @hachikuji 's 
suggestion as well.
   I've updated this patch to follow your suggested approach. Please let me 
know if this is what you had in mind.
   However, I'm not very confident that this is better, since `KafkaServer` 
also has to implement the new `shutdown` variant and it has no use for the 
timeout. So it seems a bit strange to have an implementation where the timeout 
has to be ignored.



-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] divijvaidya commented on pull request #12189: Fix flaky test TopicCommandIntegrationTest.testDescribeAtMinIsrPartitions(String).quorum=kraft

2022-05-20 Thread GitBox


divijvaidya commented on PR #12189:
URL: https://github.com/apache/kafka/pull/12189#issuecomment-1132747105

   @dengziming @guozhangwang perhaps you might be interested to code review 
this one?


-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] divijvaidya opened a new pull request, #12189: Fix flaky test TopicCommandIntegrationTest.testDescribeAtMinIsrPartitions(String).quorum=kraft

2022-05-20 Thread GitBox


divijvaidya opened a new pull request, #12189:
URL: https://github.com/apache/kafka/pull/12189

   ## Problem
   Flaky test as failed in CI 
https://ci-builds.apache.org/blue/organizations/jenkins/Kafka%2Fkafka-pr/detail/PR-12184/1/tests/
 
   
   The test fails because it does not wait for metadata to be propagated across 
brokers before killing a broker which may lead to it getting stale information. 
Note that a similar test was done in #12104 for a different test.
   
   ## Change
   Wait for metadata propagation to complete after killing the broker.
   
   ### Committer Checklist (excluded from commit message)
   - [ ] Verify design and implementation 
   - [ ] Verify test coverage and CI build status
   - [ ] Verify documentation (including upgrade notes)
   


-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] fvaleri commented on pull request #12159: Fix stuck SSL tests in case of authentication failure

2022-05-20 Thread GitBox


fvaleri commented on PR #12159:
URL: https://github.com/apache/kafka/pull/12159#issuecomment-1132744614

   All selector's tests are passing. Failing tests seem to be unrelated.


-- 
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: jira-unsubscr...@kafka.apache.org

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



[jira] [Assigned] (KAFKA-13921) Flaky test TopicCommandIntegrationTest testDescribeAtMinIsrPartitions(String).quorum=kraft

2022-05-20 Thread Divij Vaidya (Jira)


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

Divij Vaidya reassigned KAFKA-13921:


Assignee: Divij Vaidya

> Flaky test TopicCommandIntegrationTest 
> testDescribeAtMinIsrPartitions(String).quorum=kraft
> --
>
> Key: KAFKA-13921
> URL: https://issues.apache.org/jira/browse/KAFKA-13921
> Project: Kafka
>  Issue Type: Bug
>  Components: unit tests
>Reporter: Divij Vaidya
>Assignee: Divij Vaidya
>Priority: Minor
>  Labels: flaky-test
>
> [https://ci-builds.apache.org/blue/organizations/jenkins/Kafka%2Fkafka-pr/detail/PR-12184/1/tests]
> {code:java}
> org.opentest4j.AssertionFailedError: expected: <1> but was: <7>   at 
> app//org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:55)   
> at 
> app//org.junit.jupiter.api.AssertionUtils.failNotEqual(AssertionUtils.java:62)
>at 
> app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:150)  
> at 
> app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:145)  
> at app//org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:527)
>   at 
> app//kafka.admin.TopicCommandIntegrationTest.testDescribeAtMinIsrPartitions(TopicCommandIntegrationTest.scala:704)
>at 
> java.base@11.0.12/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native
>  Method)   at 
> java.base@11.0.12/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
>  at 
> java.base@11.0.12/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>  at java.base@11.0.12/java.lang.reflect.Method.invoke(Method.java:566)   
> at 
> app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
>   at 
> app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
>at 
> app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
>  at 
> app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
> at 
> app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
>   at 
> app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestTemplateMethod(TimeoutExtension.java:92)
>at 
> app//org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
> at 
> app//org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
> at 
> app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
> at 
> app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
>at 
> app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
> at 
> app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
> at 
> app//org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
>  at 
> app//org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
>   at 
> app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)
>at 
> app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
>at 
> app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)
> at 
> app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
>  at 
> app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
>   at 
> app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
>   at 
> app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
>at 
> app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
>   at 
> app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)
>at 
> app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
>   at 
> app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
>at 
> 

[jira] [Updated] (KAFKA-13920) KafkaProducer.close waits idefinitely on ioThread that is not joining

2022-05-20 Thread Oleg Muravskiy (Jira)


 [ 
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=0x7f93d8afb800 nid=0x2c398 in 
Object.wait() [0x7f93a0cf8000]
   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 <0x85feb2c0> (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=0x7f92d01e1800 nid=0x2c399 waiting on condition 
[0x7f93a03ca000]
   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=0x7f93d8afb800 nid=0x2c398 in 
Object.wait() [0x7f93a0cf8000]
   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 <0x85feb2c0> (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=0x7f92d01e1800 nid=0x2c399 waiting on condition 
[0x7f93a03ca000]
   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=0x7f93d8afb800 nid=0x2c398 in 
> Object.wait() [0x7f93a0cf8000]
>    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 <0x85feb2c0> (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 

[jira] [Updated] (KAFKA-13920) KafkaProducer.close waits idefinitely on ioThread that is not joining

2022-05-20 Thread Oleg Muravskiy (Jira)


 [ 
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=0x7f93d8afb800 nid=0x2c398 in 
Object.wait() [0x7f93a0cf8000]
   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 <0x85feb2c0> (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=0x7f92d01e1800 nid=0x2c399 waiting on condition 
[0x7f93a03ca000]
   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=0x7f93d8afb800 nid=0x2c398 in 
Object.wait() [0x7f93a0cf8000]
   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 <0x85feb2c0> (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=0x7f92d01e1800 nid=0x2c399 waiting on condition 
[0x7f93a03ca000]
   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=0x7f93d8afb800 nid=0x2c398 in 
> Object.wait() [0x7f93a0cf8000]
>    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 <0x85feb2c0> (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 | 

[jira] [Updated] (KAFKA-13920) KafkaProducer.close waits idefinitely on ioThread that is not joining

2022-05-20 Thread Oleg Muravskiy (Jira)


 [ 
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=0x7f93d8afb800 nid=0x2c398 in 
Object.wait() [0x7f93a0cf8000]
   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 <0x85feb2c0> (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=0x7f92d01e1800 nid=0x2c399 waiting on condition 
[0x7f93a03ca000]
   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, it keeps waiting for the ioThread 
to join:}}
{code:java}
"MainLoop" #24 prio=5 os_prio=0 tid=0x7f93d8afb800 nid=0x2c398 in 
Object.wait() [0x7f93a0cf8000]
   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 <0x85feb2c0> (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=0x7f92d01e1800 nid=0x2c399 waiting on condition 
[0x7f93a03ca000]
   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=0x7f93d8afb800 nid=0x2c398 in 
> Object.wait() [0x7f93a0cf8000]
>    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 <0x85feb2c0> (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=0x7f92d01e1800 nid=0x2c399 

[jira] [Updated] (KAFKA-13920) KafkaProducer.close waits idefinitely on ioThread that is not joining

2022-05-20 Thread Oleg Muravskiy (Jira)


 [ 
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, it keeps waiting for the ioThread 
to join:}}
{code:java}
"MainLoop" #24 prio=5 os_prio=0 tid=0x7f93d8afb800 nid=0x2c398 in 
Object.wait() [0x7f93a0cf8000]
   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 <0x85feb2c0> (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=0x7f92d01e1800 nid=0x2c399 waiting on condition 
[0x7f93a03ca000]
   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, it keeps waiting for the ioThread 
to join:}}
{{}}
{code:java}
"MainLoop" #24 prio=5 os_prio=0 tid=0x7f93d8afb800 nid=0x2c398 in 
Object.wait() [0x7f93a0cf8000]
   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 <0x85feb2c0> (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=0x7f92d01e1800 nid=0x2c399 waiting on condition 
[0x7f93a03ca000]
   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, it keeps waiting for the 
> ioThread to join:}}
> {code:java}
> "MainLoop" #24 prio=5 os_prio=0 tid=0x7f93d8afb800 nid=0x2c398 in 
> Object.wait() [0x7f93a0cf8000]
>    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 <0x85feb2c0> (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=0x7f92d01e1800 nid=0x2c399 waiting on condition 
> [0x7f93a03ca000]
>    java.lang.Thread.State: TIMED_WAITING (sleeping)
>         at java.lang.Thread.sleep(Native Method)
>         at 

[jira] [Updated] (KAFKA-13920) KafkaProducer.close waits idefinitely on ioThread that is not joining

2022-05-20 Thread Oleg Muravskiy (Jira)


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

Oleg Muravskiy updated KAFKA-13920:
---
Affects Version/s: 2.8.0
   (was: 2.6.2)

> 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, it keeps waiting for the 
> ioThread to join:}}
> {{}}
> {code:java}
> "MainLoop" #24 prio=5 os_prio=0 tid=0x7f93d8afb800 nid=0x2c398 in 
> Object.wait() [0x7f93a0cf8000]
>    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 <0x85feb2c0> (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=0x7f92d01e1800 nid=0x2c399 waiting on condition 
> [0x7f93a03ca000]
>    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)


[jira] [Created] (KAFKA-13921) Flaky test TopicCommandIntegrationTest testDescribeAtMinIsrPartitions(String).quorum=kraft

2022-05-20 Thread Divij Vaidya (Jira)
Divij Vaidya created KAFKA-13921:


 Summary: Flaky test TopicCommandIntegrationTest 
testDescribeAtMinIsrPartitions(String).quorum=kraft
 Key: KAFKA-13921
 URL: https://issues.apache.org/jira/browse/KAFKA-13921
 Project: Kafka
  Issue Type: Bug
  Components: unit tests
Reporter: Divij Vaidya


[https://ci-builds.apache.org/blue/organizations/jenkins/Kafka%2Fkafka-pr/detail/PR-12184/1/tests]


{code:java}
org.opentest4j.AssertionFailedError: expected: <1> but was: <7> at 
app//org.junit.jupiter.api.AssertionUtils.fail(AssertionUtils.java:55)   at 
app//org.junit.jupiter.api.AssertionUtils.failNotEqual(AssertionUtils.java:62)  
 at 
app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:150)  at 
app//org.junit.jupiter.api.AssertEquals.assertEquals(AssertEquals.java:145)  at 
app//org.junit.jupiter.api.Assertions.assertEquals(Assertions.java:527)  at 
app//kafka.admin.TopicCommandIntegrationTest.testDescribeAtMinIsrPartitions(TopicCommandIntegrationTest.scala:704)
   at 
java.base@11.0.12/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native 
Method)   at 
java.base@11.0.12/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
 at 
java.base@11.0.12/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
 at java.base@11.0.12/java.lang.reflect.Method.invoke(Method.java:566)   at 
app//org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725)
  at 
app//org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60)
   at 
app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131)
 at 
app//org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149)
at 
app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140)
  at 
app//org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestTemplateMethod(TimeoutExtension.java:92)
   at 
app//org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115)
at 
app//org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105)
at 
app//org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106)
at 
app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64)
   at 
app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45)
at 
app//org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37)
at 
app//org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104)
 at 
app//org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98)
  at 
app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214)
   at 
app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
   at 
app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210)
at 
app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135)
 at 
app//org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66)
  at 
app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151)
  at 
app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
   at 
app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141)
  at 
app//org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137)  
 at 
app//org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139)
  at 
app//org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73)
   at 
app//org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138)
   at 
app//org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95)
   at 
app//org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35)
  at 
app//org.junit.platform.engine.support.hierarchical.NodeTestTask$DefaultDynamicTestExecutor.execute(NodeTestTask.java:226)
   at 

[jira] [Created] (KAFKA-13920) KafkaProducer.close waits idefinitely on ioThread that is not joining

2022-05-20 Thread Oleg Muravskiy (Jira)
Oleg Muravskiy created KAFKA-13920:
--

 Summary: 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.6.2
Reporter: Oleg Muravskiy


{{When closing (transactional) KafkaProducer, it keeps waiting for the ioThread 
to join:}}
{{}}
{code:java}
"MainLoop" #24 prio=5 os_prio=0 tid=0x7f93d8afb800 nid=0x2c398 in 
Object.wait() [0x7f93a0cf8000]
   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 <0x85feb2c0> (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=0x7f92d01e1800 nid=0x2c399 waiting on condition 
[0x7f93a03ca000]
   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)


[GitHub] [kafka] calmera opened a new pull request, #12188: KAFKA-10892: Shared Readonly State Stores

2022-05-20 Thread GitBox


calmera opened a new pull request, #12188:
URL: https://github.com/apache/kafka/pull/12188

   This PR implements KIP-813: support for shareable state stores.
   
   Tests were created to validate the structure of the resulting topology. 
   
   Certain parts (MockProcessor eg.) have been migrated to the newer PAPI as 
well. Tests have been ran against the whole project to be sure this migration 
doesn't cause any side-effects.
   
   The contribution is my original work and I license the work to the project 
under the project's open source license


-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] dajac opened a new pull request, #12187: KAFKA-13858; Kraft should not shutdown metadata listener until controller shutdown is finished

2022-05-20 Thread GitBox


dajac opened a new pull request, #12187:
URL: https://github.com/apache/kafka/pull/12187

   WIP
   
   ### Committer Checklist (excluded from commit message)
   - [ ] Verify design and implementation 
   - [ ] Verify test coverage and CI build status
   - [ ] Verify documentation (including upgrade notes)
   


-- 
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: jira-unsubscr...@kafka.apache.org

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



[jira] [Created] (KAFKA-13919) Add metric for log recovery progress

2022-05-20 Thread Luke Chen (Jira)
Luke Chen created KAFKA-13919:
-

 Summary: Add metric for log recovery progress
 Key: KAFKA-13919
 URL: https://issues.apache.org/jira/browse/KAFKA-13919
 Project: Kafka
  Issue Type: New Feature
  Components: core, log
Reporter: Luke Chen
Assignee: Luke Chen


expose metrics for log recovery progress. This metrics would let the admins 
have a way to monitor the log recovery progress.
 
Details can be found here:
[https://cwiki.apache.org/confluence/display/KAFKA/KIP-831%3A+Add+metric+for+log+recovery+progress]
 



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


[GitHub] [kafka] dengziming commented on pull request #11951: KAFKA-13836: Improve KRaft broker heartbeat logic

2022-05-20 Thread GitBox


dengziming commented on PR #11951:
URL: https://github.com/apache/kafka/pull/11951#issuecomment-1132601901

   Bumped `BrokerHeartbeat` and use version 2 if MetadataVersion is above 
IBP_3_3_IV1, this is the first use case of FeatureVersion, PTAL. @hachikuji 
@mumrah 


-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] dengziming commented on a diff in pull request #12174: KAFKA-13907: Fix hanging ServerShutdownTest.testCleanShutdownWithKRaftControllerUnavailable

2022-05-20 Thread GitBox


dengziming commented on code in PR #12174:
URL: https://github.com/apache/kafka/pull/12174#discussion_r877836361


##
core/src/main/scala/kafka/server/BrokerServer.scala:
##
@@ -93,6 +93,9 @@ class BrokerServer(
 
   this.logIdent = logContext.logPrefix
 
+  // VisibleForTesting
+  private[kafka] var controlledShutdownTimeoutMillis: Long = 5 * 60 * 1000L // 
5 minutes

Review Comment:
   This can solve the problem but is not very elegant, we can add a 
`shutdown(timeout)`, and use `Time` to compute a deadline, then we can use the 
deadline to compute a timeout for a controlled shutdown, WDYT?



-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] cadonna commented on pull request #12152: MINOR: Fix DSL typo in streams docs

2022-05-20 Thread GitBox


cadonna commented on PR #12152:
URL: https://github.com/apache/kafka/pull/12152#issuecomment-1132573699

   Thanks for the idea!
   
   To get more information about the directory mapping you can consult the 
release process wiki: 
https://cwiki.apache.org/confluence/display/KAFKA/Release+Process . There are 
two parts that describe how docs are released, one is section "Website update 
process" and the other is the item "Update the website:" under section "After 
the vote passes".
   
   If you have tested your idea, feel free to propose it on the dev mailing 
list. 


-- 
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: jira-unsubscr...@kafka.apache.org

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



[GitHub] [kafka] milindmantri commented on pull request #12152: MINOR: Fix DSL typo in streams docs

2022-05-20 Thread GitBox


milindmantri commented on PR #12152:
URL: https://github.com/apache/kafka/pull/12152#issuecomment-1132547512

   @cadonna, I looked into this. My initial idea was that adding a 
`docs-typo`-like label to a PR would trigger (after merge) a workflow/action on 
`kafka-site` that creates a PR there. I'm not sure about the directory mapping 
from `apache/kafka` to `apache/kafka-site`, but this can be explored.
   
   Does this resonate with you? Can you think of another way or how this can be 
improved?
   
   Is this even worth exploring further, considering the number/rate of PRs 
that are for docs related typos?


-- 
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: jira-unsubscr...@kafka.apache.org

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