svn commit: r56021 - /dev/kafka/3.2.1/

2022-07-28 Thread davidarthur
Author: davidarthur
Date: Fri Jul 29 00:06:21 2022
New Revision: 56021

Log:
Release 3.2.1

Added:
dev/kafka/3.2.1/
dev/kafka/3.2.1/RELEASE_NOTES.html
dev/kafka/3.2.1/RELEASE_NOTES.html.asc
dev/kafka/3.2.1/RELEASE_NOTES.html.md5
dev/kafka/3.2.1/RELEASE_NOTES.html.sha1
dev/kafka/3.2.1/RELEASE_NOTES.html.sha512
dev/kafka/3.2.1/kafka-3.2.1-src.tgz   (with props)
dev/kafka/3.2.1/kafka-3.2.1-src.tgz.asc
dev/kafka/3.2.1/kafka-3.2.1-src.tgz.md5
dev/kafka/3.2.1/kafka-3.2.1-src.tgz.sha1
dev/kafka/3.2.1/kafka-3.2.1-src.tgz.sha512
dev/kafka/3.2.1/kafka_2.12-3.2.1-site-docs.tgz   (with props)
dev/kafka/3.2.1/kafka_2.12-3.2.1-site-docs.tgz.asc
dev/kafka/3.2.1/kafka_2.12-3.2.1-site-docs.tgz.md5
dev/kafka/3.2.1/kafka_2.12-3.2.1-site-docs.tgz.sha1
dev/kafka/3.2.1/kafka_2.12-3.2.1-site-docs.tgz.sha512
dev/kafka/3.2.1/kafka_2.12-3.2.1.tgz   (with props)
dev/kafka/3.2.1/kafka_2.12-3.2.1.tgz.asc
dev/kafka/3.2.1/kafka_2.12-3.2.1.tgz.md5
dev/kafka/3.2.1/kafka_2.12-3.2.1.tgz.sha1
dev/kafka/3.2.1/kafka_2.12-3.2.1.tgz.sha512
dev/kafka/3.2.1/kafka_2.13-3.2.1-site-docs.tgz   (with props)
dev/kafka/3.2.1/kafka_2.13-3.2.1-site-docs.tgz.asc
dev/kafka/3.2.1/kafka_2.13-3.2.1-site-docs.tgz.md5
dev/kafka/3.2.1/kafka_2.13-3.2.1-site-docs.tgz.sha1
dev/kafka/3.2.1/kafka_2.13-3.2.1-site-docs.tgz.sha512
dev/kafka/3.2.1/kafka_2.13-3.2.1.tgz   (with props)
dev/kafka/3.2.1/kafka_2.13-3.2.1.tgz.asc
dev/kafka/3.2.1/kafka_2.13-3.2.1.tgz.md5
dev/kafka/3.2.1/kafka_2.13-3.2.1.tgz.sha1
dev/kafka/3.2.1/kafka_2.13-3.2.1.tgz.sha512

Added: dev/kafka/3.2.1/RELEASE_NOTES.html
==
--- dev/kafka/3.2.1/RELEASE_NOTES.html (added)
+++ dev/kafka/3.2.1/RELEASE_NOTES.html Fri Jul 29 00:06:21 2022
@@ -0,0 +1,31 @@
+Release Notes - Kafka - Version 3.2.1
+Below is a summary of the JIRA issues addressed in the 3.2.1 release of 
Kafka. For full documentation of the
+release, a guide to get started, and information about the project, see 
the https://kafka.apache.org/;>Kafka
+project site.
+
+Note about upgrades: Please carefully review the
+https://kafka.apache.org/32/documentation.html#upgrade;>upgrade 
documentation for this release thoroughly
+before upgrading your cluster. The upgrade notes discuss any critical 
information about incompatibilities and breaking
+changes, performance changes, and any other changes that might impact your 
production deployment of Kafka.
+
+The documentation for the most recent release can be found at
+https://kafka.apache.org/documentation.html;>https://kafka.apache.org/documentation.html.
+Improvement
+
+[https://issues.apache.org/jira/browse/KAFKA-14013;>KAFKA-14013] - 
Limit the length of the `reason` field sent on the wire
+
+Bug
+
+[https://issues.apache.org/jira/browse/KAFKA-13474;>KAFKA-13474] - 
Regression in dynamic update of broker certificate
+[https://issues.apache.org/jira/browse/KAFKA-13572;>KAFKA-13572] - 
Negative value for 'Preferred Replica Imbalance' metric
+[https://issues.apache.org/jira/browse/KAFKA-13773;>KAFKA-13773] - 
Data loss after recovery from crash due to full hard disk
+[https://issues.apache.org/jira/browse/KAFKA-13861;>KAFKA-13861] - 
validateOnly request field does not work for CreatePartition requests in Kraft 
mode.
+[https://issues.apache.org/jira/browse/KAFKA-13899;>KAFKA-13899] - 
Inconsistent error codes returned from AlterConfig APIs
+[https://issues.apache.org/jira/browse/KAFKA-13998;>KAFKA-13998] - 
JoinGroupRequestData 'reason' can be too large
+[https://issues.apache.org/jira/browse/KAFKA-14010;>KAFKA-14010] - 
alterISR request won't retry when receiving retriable error
+[https://issues.apache.org/jira/browse/KAFKA-14024;>KAFKA-14024] - 
Consumer stuck during cooperative rebalance for Commit offset in 
onJoinPrepare
+[https://issues.apache.org/jira/browse/KAFKA-14035;>KAFKA-14035] - 
QuorumController handleRenounce throws NPE
+[https://issues.apache.org/jira/browse/KAFKA-14055;>KAFKA-14055] - 
Transaction markers may be lost during cleaning if data keys conflict with 
marker keys
+[https://issues.apache.org/jira/browse/KAFKA-14062;>KAFKA-14062] - 
OAuth client token refresh fails with SASL extensions
+[https://issues.apache.org/jira/browse/KAFKA-14079;>KAFKA-14079] - 
Source task will not commit offsets and develops memory leak if 
"error.tolerance" is set to "all"
+

Added: dev/kafka/3.2.1/RELEASE_NOTES.html.asc
==
--- dev/kafka/3.2.1/RELEASE_NOTES.html.asc (added)
+++ dev/kafka/3.2.1/RELEASE_NOTES.html.asc Fri Jul 29 00:06:21 2022
@@ -0,0 +1,17 @@
+-BEGIN PGP SIGNATURE-
+
+iQJLBAABCAA1FiEEb7DyiDXEjHxW0vH20zYLE5zhn+gFAmLZ8u8XHGRhdmlkYXJ0
+aHVyQGFwYWNoZS5vcmcACgkQ0zYLE5zhn+jkkBAAqgCUpeldpm/9JtHNsel3ujGO
+N2NIJz02jkn2XqdaPGetk3MjQGafgImknlY8arsheaSWcO6zBXP4+j9SZ6F7sz0y

svn commit: r56020 - /dev/kafka/KEYS

2022-07-28 Thread davidarthur
Author: davidarthur
Date: Fri Jul 29 00:03:07 2022
New Revision: 56020

Log:
Release 3.2.1

Modified:
dev/kafka/KEYS

Modified: dev/kafka/KEYS
==
--- dev/kafka/KEYS (original)
+++ dev/kafka/KEYS Fri Jul 29 00:03:07 2022
@@ -1654,3 +1654,62 @@ Dg6U5ERQPV27NsasCD8AX+C+ds99WxNg2gjaShUN
 LL4IRnF8Qae9/v8li+2YykM=
 =TxAz
 -END PGP PUBLIC KEY BLOCK-
+pub   rsa4096 2022-07-13 [SC] [expires: 2023-07-13]
+  6FB0F28835C48C7C56D2F1F6D3360B139CE19FE8
+uid   [ultimate] David Arthur (CODE SIGNING KEY) 

+sig 3D3360B139CE19FE8 2022-07-13  David Arthur (CODE SIGNING KEY) 

+sub   rsa4096 2022-07-13 [E] [expires: 2023-07-13]
+sig  D3360B139CE19FE8 2022-07-13  David Arthur (CODE SIGNING KEY) 

+
+-BEGIN PGP PUBLIC KEY BLOCK-
+
+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
+6XRKFzYl3krMIxHvWcz1WeJ+kZ0EyT0tNyDfh6MZaQartmcuxaeObVi4ycCXfH5m
+/vIGuhIJuOthfeyZQzCvQ/cguhcOb4O02ru8xYkGO10db76yTx/oNmPBzsIHDWqR
+BhnIBKhgUnoaY9YruDyq2+RwqoWfaWm2QjNkyAo/8U+flbRhNFHLSGOJg6MIFKXg
+3NrAAeEf1zKd0icgSiWFDQ0Wd3eFM/Yg+jtPHzRrQLc6rDSjgBkv+pHgNlhptxAg
+CQgql1emv9LLWTpbjXYET7+BuQXODFxG0UHBj6XNLbC0YmC4dG5X8vhE3oQYE6m3
+mdVIWWkv579b+O9ayo37mP9wPgyO+TNP170M/d37d0mj4ZTueSQijW/U86eT/+zM
+ECb/NMyaQOgWrwSzNS/GfMy5h3qrZtMJqEsSswB9xnV8i/0bgL+4W4dw+zRlM8yT
+xDDK0ELpJZkiWJipYF/Tj7qv5LEzTe052qjC2pqt7KwyIV7qN4mmFvu2ueBP3Zwd
+HCVj5EdrMtvz7PlGDwQpbNzSv78Bq8/xEA3l/yzuC54hjDg/UMICMhKR3xg49Jfu
+wATI4tNqbCl0E3n+CC3Jmurt1hplq7QKiAGbrBAn/SM=
+=ViGk
+-END PGP PUBLIC KEY BLOCK-




[kafka] branch trunk updated: MINOR: Update comment on verifyTaskGenerationAndOwnership method in DistributedHerder

2022-07-28 Thread cegerton
This is an automated email from the ASF dual-hosted git repository.

cegerton pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/trunk by this push:
 new 517e4d9278 MINOR: Update comment on verifyTaskGenerationAndOwnership 
method in DistributedHerder
517e4d9278 is described below

commit 517e4d92785d136c4db5aa59af1d4a3eda0c4bfd
Author: Yash Mayya 
AuthorDate: Fri Jul 29 02:48:35 2022 +0530

MINOR: Update comment on verifyTaskGenerationAndOwnership method in 
DistributedHerder

Reviewers: Chris Egerton 
---
 .../kafka/connect/runtime/distributed/DistributedHerder.java  | 8 +++-
 1 file changed, 3 insertions(+), 5 deletions(-)

diff --git 
a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/distributed/DistributedHerder.java
 
b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/distributed/DistributedHerder.java
index ded833da59..388bfa4218 100644
--- 
a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/distributed/DistributedHerder.java
+++ 
b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/distributed/DistributedHerder.java
@@ -1732,9 +1732,7 @@ public class DistributedHerder extends AbstractHerder 
implements Runnable {
 throw ConnectUtils.maybeWrap(cause, 
"Failed to perform round of zombie fencing");
 }
 },
-() -> {
-verifyTaskGenerationAndOwnership(taskId, 
taskGeneration);
-}
+() -> verifyTaskGenerationAndOwnership(taskId, 
taskGeneration)
 );
 } else {
 return worker.startSourceTask(
@@ -1941,8 +1939,8 @@ public class DistributedHerder extends AbstractHerder 
implements Runnable {
 }
 }
 
-// Currently unused, but will be invoked by exactly-once source tasks 
after they have successfully
-// initialized their transactional producer
+// Invoked by exactly-once worker source tasks after they have 
successfully initialized their transactional
+// producer to ensure that it is still safe to bring up the task
 private void verifyTaskGenerationAndOwnership(ConnectorTaskId id, int 
initialTaskGen) {
 log.debug("Reading to end of config topic to ensure it is still safe 
to bring up source task {} with exactly-once support", id);
 if (!refreshConfigSnapshot(Long.MAX_VALUE)) {



[kafka] 01/01: MINOR: Update 3.2 branch to 3.2.2-SNAPSHOT

2022-07-28 Thread davidarthur
This is an automated email from the ASF dual-hosted git repository.

davidarthur pushed a commit to branch 3.2
in repository https://gitbox.apache.org/repos/asf/kafka.git

commit 89b2bf257bba0b561782d115c9f457f81ae278cc
Author: David Arthur 
AuthorDate: Thu Jul 28 16:42:46 2022 -0400

MINOR: Update 3.2 branch to 3.2.2-SNAPSHOT
---
 docs/js/templateData.js| 2 +-
 gradle.properties  | 2 +-
 kafka-merge-pr.py  | 2 +-
 streams/quickstart/java/pom.xml| 2 +-
 streams/quickstart/java/src/main/resources/archetype-resources/pom.xml | 2 +-
 streams/quickstart/pom.xml | 2 +-
 tests/kafkatest/__init__.py| 2 +-
 7 files changed, 7 insertions(+), 7 deletions(-)

diff --git a/docs/js/templateData.js b/docs/js/templateData.js
index a75567d214..1b5c19d22e 100644
--- a/docs/js/templateData.js
+++ b/docs/js/templateData.js
@@ -19,6 +19,6 @@ limitations under the License.
 var context={
 "version": "32",
 "dotVersion": "3.2",
-"fullDotVersion": "3.2.1-SNAPSHOT",
+"fullDotVersion": "3.2.2-SNAPSHOT",
 "scalaVersion": "2.13"
 };
diff --git a/gradle.properties b/gradle.properties
index 351088e45a..6d9a874d75 100644
--- a/gradle.properties
+++ b/gradle.properties
@@ -20,7 +20,7 @@ group=org.apache.kafka
 #  - tests/kafkatest/__init__.py
 #  - tests/kafkatest/version.py (variable DEV_VERSION)
 #  - kafka-merge-pr.py
-version=3.2.1
+version=3.2.2
 scalaVersion=2.13.6
 task=build
 org.gradle.jvmargs=-Xmx2g -Xss4m -XX:+UseParallelGC
diff --git a/kafka-merge-pr.py b/kafka-merge-pr.py
index b6051b173f..24a069d81f 100755
--- a/kafka-merge-pr.py
+++ b/kafka-merge-pr.py
@@ -70,7 +70,7 @@ TEMP_BRANCH_PREFIX = "PR_TOOL"
 
 DEV_BRANCH_NAME = "trunk"
 
-DEFAULT_FIX_VERSION = os.environ.get("DEFAULT_FIX_VERSION", "3.2.1-SNAPSHOT")
+DEFAULT_FIX_VERSION = os.environ.get("DEFAULT_FIX_VERSION", "3.2.2-SNAPSHOT")
 
 ORIGINAL_HEAD = ""
 
diff --git a/streams/quickstart/java/pom.xml b/streams/quickstart/java/pom.xml
index 782821bb3b..4e81f7a5cd 100644
--- a/streams/quickstart/java/pom.xml
+++ b/streams/quickstart/java/pom.xml
@@ -26,7 +26,7 @@
 
 org.apache.kafka
 streams-quickstart
-3.2.1
+3.2.2
 ..
 
 
diff --git 
a/streams/quickstart/java/src/main/resources/archetype-resources/pom.xml 
b/streams/quickstart/java/src/main/resources/archetype-resources/pom.xml
index 77c784a335..cc22a56569 100644
--- a/streams/quickstart/java/src/main/resources/archetype-resources/pom.xml
+++ b/streams/quickstart/java/src/main/resources/archetype-resources/pom.xml
@@ -29,7 +29,7 @@
 
 
 UTF-8
-3.2.1
+3.2.2
 1.7.7
 1.2.17
 
diff --git a/streams/quickstart/pom.xml b/streams/quickstart/pom.xml
index 5835eeb5b4..8111095c90 100644
--- a/streams/quickstart/pom.xml
+++ b/streams/quickstart/pom.xml
@@ -22,7 +22,7 @@
 org.apache.kafka
 streams-quickstart
 pom
-3.2.1
+3.2.2
 
 Kafka Streams :: Quickstart
 
diff --git a/tests/kafkatest/__init__.py b/tests/kafkatest/__init__.py
index 2299e69cc2..512623607d 100644
--- a/tests/kafkatest/__init__.py
+++ b/tests/kafkatest/__init__.py
@@ -22,4 +22,4 @@
 # Instead, in development branches, the version should have a suffix of the 
form ".devN"
 #
 # For example, when Kafka is at version 1.0.0-SNAPSHOT, this should be 
something like "1.0.0.dev0"
-__version__ = '3.2.1'
+__version__ = '3.2.2'



[kafka] branch 3.2 updated (8464e36682 -> 89b2bf257b)

2022-07-28 Thread davidarthur
This is an automated email from the ASF dual-hosted git repository.

davidarthur pushed a change to branch 3.2
in repository https://gitbox.apache.org/repos/asf/kafka.git


from 8464e36682 KAFKA-13917: Avoid calling lookupCoordinator() in tight 
loop (#12417)
 add b172a0a94f Bump version to 3.2.1
 new 89b2bf257b MINOR: Update 3.2 branch to 3.2.2-SNAPSHOT

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 docs/js/templateData.js| 2 +-
 gradle.properties  | 2 +-
 kafka-merge-pr.py  | 2 +-
 streams/quickstart/java/pom.xml| 2 +-
 streams/quickstart/java/src/main/resources/archetype-resources/pom.xml | 2 +-
 streams/quickstart/pom.xml | 2 +-
 tests/kafkatest/__init__.py| 2 +-
 tests/kafkatest/version.py | 2 +-
 8 files changed, 8 insertions(+), 8 deletions(-)



[kafka] branch trunk updated: KAFKA-14012: Add warning to closeQuietly documentation about method references of null objects (#12321)

2022-07-28 Thread cegerton
This is an automated email from the ASF dual-hosted git repository.

cegerton pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/trunk by this push:
 new 3ddb62316f KAFKA-14012: Add warning to closeQuietly documentation 
about method references of null objects (#12321)
3ddb62316f is described below

commit 3ddb62316f287d74b9649e1821c62fe8f68bc6e6
Author: vamossagar12 
AuthorDate: Fri Jul 29 02:14:19 2022 +0530

KAFKA-14012: Add warning to closeQuietly documentation about method 
references of null objects (#12321)

Reviewers: Kvicii <42023367+kvi...@users.noreply.github.com>, Chris Egerton 

---
 .../java/org/apache/kafka/common/utils/Utils.java | 19 +++
 .../connect/runtime/AbstractWorkerSourceTask.java |  3 ++-
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/clients/src/main/java/org/apache/kafka/common/utils/Utils.java 
b/clients/src/main/java/org/apache/kafka/common/utils/Utils.java
index af71e3ecd3..7d84167cf2 100755
--- a/clients/src/main/java/org/apache/kafka/common/utils/Utils.java
+++ b/clients/src/main/java/org/apache/kafka/common/utils/Utils.java
@@ -998,6 +998,14 @@ public final class Utils {
 
 /**
  * Closes {@code closeable} and if an exception is thrown, it is logged at 
the WARN level.
+ * Be cautious when passing method references as an argument. For 
example:
+ * 
+ * {@code closeQuietly(task::stop, "source task");}
+ * 
+ * Although this method gracefully handles null {@link AutoCloseable} 
objects, attempts to take a method
+ * reference from a null object will result in a {@link 
NullPointerException}. In the example code above,
+ * it would be the caller's responsibility to ensure that {@code task} was 
non-null before attempting to
+ * use a method reference from it.
  */
 public static void closeQuietly(AutoCloseable closeable, String name) {
 if (closeable != null) {
@@ -1009,6 +1017,17 @@ public final class Utils {
 }
 }
 
+/**
+* Closes {@code closeable} and if an exception is thrown, it is registered 
to the firstException parameter.
+* Be cautious when passing method references as an argument. For 
example:
+* 
+* {@code closeQuietly(task::stop, "source task");}
+* 
+* Although this method gracefully handles null {@link AutoCloseable} 
objects, attempts to take a method
+* reference from a null object will result in a {@link 
NullPointerException}. In the example code above,
+* it would be the caller's responsibility to ensure that {@code task} was 
non-null before attempting to
+* use a method reference from it.
+*/
 public static void closeQuietly(AutoCloseable closeable, String name, 
AtomicReference firstException) {
 if (closeable != null) {
 try {
diff --git 
a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/AbstractWorkerSourceTask.java
 
b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/AbstractWorkerSourceTask.java
index a2a3fce9fe..693ef510f1 100644
--- 
a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/AbstractWorkerSourceTask.java
+++ 
b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/AbstractWorkerSourceTask.java
@@ -59,6 +59,7 @@ import org.slf4j.LoggerFactory;
 import java.time.Duration;
 import java.util.List;
 import java.util.Map;
+import java.util.Objects;
 import java.util.Optional;
 import java.util.concurrent.CountDownLatch;
 import java.util.concurrent.Executor;
@@ -235,7 +236,7 @@ public abstract class AbstractWorkerSourceTask extends 
WorkerTask {
 this.admin = admin;
 this.offsetReader = offsetReader;
 this.offsetWriter = offsetWriter;
-this.offsetStore = offsetStore;
+this.offsetStore = Objects.requireNonNull(offsetStore, "offset store 
cannot be null for source tasks");
 this.closeExecutor = closeExecutor;
 this.sourceTaskContext = sourceTaskContext;
 



[kafka] annotated tag 3.2.1 updated (b172a0a94f -> 53a6406bc1)

2022-07-28 Thread davidarthur
This is an automated email from the ASF dual-hosted git repository.

davidarthur pushed a change to annotated tag 3.2.1
in repository https://gitbox.apache.org/repos/asf/kafka.git


*** WARNING: tag 3.2.1 was modified! ***

from b172a0a94f (commit)
  to 53a6406bc1 (tag)
 tagging b172a0a94f4ebb9fe638b064d825f0720e7d20ab (commit)
 replaces 3.2.0
  by David Arthur
  on Thu Jul 28 16:37:32 2022 -0400

- Log -
Apache Kafka 3.2.1 release
---


No new revisions were added by this update.

Summary of changes:



[kafka] branch trunk updated: MINOR: Fix static mock usage in ThreadMetricsTest (#12454)

2022-07-28 Thread guozhang
This is an automated email from the ASF dual-hosted git repository.

guozhang pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/trunk by this push:
 new a5d71e1550 MINOR: Fix static mock usage in ThreadMetricsTest (#12454)
a5d71e1550 is described below

commit a5d71e1550c5a2b670347c0c3bafb0b195bf916c
Author: Bruno Cadonna 
AuthorDate: Thu Jul 28 22:32:46 2022 +0200

MINOR: Fix static mock usage in ThreadMetricsTest (#12454)

Before this PR the calls to the static methods on StreamsMetricsImpl were 
just calls and not a verification on the mock. This miss happened during the 
switch from EasyMock to Mockito.

Reviewers: Guozhang Wang 
---
 .../internals/metrics/ThreadMetricsTest.java   | 422 +++--
 1 file changed, 224 insertions(+), 198 deletions(-)

diff --git 
a/streams/src/test/java/org/apache/kafka/streams/processor/internals/metrics/ThreadMetricsTest.java
 
b/streams/src/test/java/org/apache/kafka/streams/processor/internals/metrics/ThreadMetricsTest.java
index 6ed97ebf7c..3d2aaa20c8 100644
--- 
a/streams/src/test/java/org/apache/kafka/streams/processor/internals/metrics/ThreadMetricsTest.java
+++ 
b/streams/src/test/java/org/apache/kafka/streams/processor/internals/metrics/ThreadMetricsTest.java
@@ -24,12 +24,14 @@ import org.junit.Test;
 
 import static org.mockito.ArgumentMatchers.eq;
 import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.mockStatic;
 import static org.mockito.Mockito.verify;
 import static org.mockito.Mockito.when;
 
 import java.util.Collections;
 import java.util.Map;
 import org.mockito.ArgumentCaptor;
+import org.mockito.MockedStatic;
 
 import static 
org.apache.kafka.streams.processor.internals.metrics.StreamsMetricsImpl.LATENCY_SUFFIX;
 import static 
org.apache.kafka.streams.processor.internals.metrics.StreamsMetricsImpl.RATE_SUFFIX;
@@ -54,17 +56,20 @@ public class ThreadMetricsTest {
 final String ratioDescription = "The fraction of time the thread spent 
on processing active tasks";
 when(streamsMetrics.threadLevelSensor(THREAD_ID, operation, 
RecordingLevel.INFO)).thenReturn(expectedSensor);
 when(streamsMetrics.threadLevelTagMap(THREAD_ID)).thenReturn(tagMap);
-StreamsMetricsImpl.addValueMetricToSensor(
-expectedSensor,
-THREAD_LEVEL_GROUP,
-tagMap,
-operation,
-ratioDescription
-);
-
-final Sensor sensor = ThreadMetrics.processRatioSensor(THREAD_ID, 
streamsMetrics);
 
-assertThat(sensor, is(expectedSensor));
+try (final MockedStatic streamsMetricsStaticMock = 
mockStatic(StreamsMetricsImpl.class)) {
+final Sensor sensor = ThreadMetrics.processRatioSensor(THREAD_ID, 
streamsMetrics);
+streamsMetricsStaticMock.verify(
+() -> StreamsMetricsImpl.addValueMetricToSensor(
+expectedSensor,
+THREAD_LEVEL_GROUP,
+tagMap,
+operation,
+ratioDescription
+)
+);
+assertThat(sensor, is(expectedSensor));
+}
 }
 
 @Test
@@ -74,18 +79,21 @@ public class ThreadMetricsTest {
 final String maxDescription = "The maximum number of records processed 
within an iteration";
 when(streamsMetrics.threadLevelSensor(THREAD_ID, operation, 
RecordingLevel.INFO)).thenReturn(expectedSensor);
 when(streamsMetrics.threadLevelTagMap(THREAD_ID)).thenReturn(tagMap);
-StreamsMetricsImpl.addAvgAndMaxToSensor(
-expectedSensor,
-THREAD_LEVEL_GROUP,
-tagMap,
-operation,
-avgDescription,
-maxDescription
-);
 
-final Sensor sensor = ThreadMetrics.processRecordsSensor(THREAD_ID, 
streamsMetrics);
-
-assertThat(sensor, is(expectedSensor));
+try (final MockedStatic streamsMetricsStaticMock = 
mockStatic(StreamsMetricsImpl.class)) {
+final Sensor sensor = 
ThreadMetrics.processRecordsSensor(THREAD_ID, streamsMetrics);
+streamsMetricsStaticMock.verify(
+() -> StreamsMetricsImpl.addAvgAndMaxToSensor(
+expectedSensor,
+THREAD_LEVEL_GROUP,
+tagMap,
+operation,
+avgDescription,
+maxDescription
+)
+);
+assertThat(sensor, is(expectedSensor));
+}
 }
 
 @Test
@@ -95,18 +103,21 @@ public class ThreadMetricsTest {
 final String maxLatencyDescription = "The maximum process latency";
 when(streamsMetrics.threadLevelSensor(THREAD_ID, operationLatency, 
RecordingLevel.INFO)).thenReturn(expectedSensor);
 when(streamsMetrics.threadLevelTagMap(THREAD_ID)).thenReturn(tagMap);
-

[kafka] branch trunk updated (9e74f91e56 -> 2724cc9920)

2022-07-28 Thread guozhang
This is an automated email from the ASF dual-hosted git repository.

guozhang pushed a change to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git


from 9e74f91e56 KAFKA-14089: Only check for committed seqnos after 
disabling exactly-once support in Connect integration test (#12429)
 add 2724cc9920 KAFKA-10199: Bookkeep tasks during assignment for use with 
state updater (#12442)

No new revisions were added by this update.

Summary of changes:
 .../streams/processor/internals/StreamThread.java  |  17 ++-
 .../streams/processor/internals/TaskManager.java   | 155 ++---
 .../kafka/streams/processor/internals/Tasks.java   |  21 +++
 .../processor/internals/StreamThreadTest.java  |   4 +-
 .../processor/internals/TaskManagerTest.java   |  92 
 .../org/apache/kafka/test/StreamsTestUtils.java|  23 ---
 6 files changed, 212 insertions(+), 100 deletions(-)



[kafka] branch 3.3 updated: KAFKA-14089: Only check for committed seqnos after disabling exactly-once support in Connect integration test (#12429)

2022-07-28 Thread mimaison
This is an automated email from the ASF dual-hosted git repository.

mimaison pushed a commit to branch 3.3
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/3.3 by this push:
 new dc0866557c KAFKA-14089: Only check for committed seqnos after 
disabling exactly-once support in Connect integration test (#12429)
dc0866557c is described below

commit dc0866557c5051b8711df67d68621a3306521b10
Author: Chris Egerton 
AuthorDate: Thu Jul 28 11:18:09 2022 -0400

KAFKA-14089: Only check for committed seqnos after disabling exactly-once 
support in Connect integration test (#12429)


Reviewers: Mickael Maison 

, Tom Bentley 

---
 .../runtime/ExactlyOnceWorkerSourceTask.java   |   3 +
 .../org/apache/kafka/connect/runtime/Worker.java   |  13 ++
 .../ExactlyOnceSourceIntegrationTest.java  | 192 +++--
 .../integration/MonitorableSourceConnector.java|   2 +-
 4 files changed, 155 insertions(+), 55 deletions(-)

diff --git 
a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/ExactlyOnceWorkerSourceTask.java
 
b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/ExactlyOnceWorkerSourceTask.java
index de78e592aa..931917b9e1 100644
--- 
a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/ExactlyOnceWorkerSourceTask.java
+++ 
b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/ExactlyOnceWorkerSourceTask.java
@@ -217,6 +217,9 @@ class ExactlyOnceWorkerSourceTask extends 
AbstractWorkerSourceTask {
 if (failed) {
 log.debug("Skipping final offset commit as task has failed");
 return;
+} else if (isCancelled()) {
+log.debug("Skipping final offset commit as task has been 
cancelled");
+return;
 }
 
 // It should be safe to commit here even if we were in the middle of 
retrying on RetriableExceptions in the
diff --git 
a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/Worker.java 
b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/Worker.java
index 16e48d8f17..5bc67693d0 100644
--- a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/Worker.java
+++ b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/Worker.java
@@ -756,6 +756,19 @@ public class Worker {
   
ConnectorClientConfigOverridePolicy connectorClientConfigOverridePolicy,
   String 
clusterId) {
 Map result = baseProducerConfigs(id.connector(), 
"connector-producer-" + id, config, connConfig, connectorClass, 
connectorClientConfigOverridePolicy, clusterId);
+// The base producer properties forcibly disable idempotence; remove 
it from those properties
+// if not explicitly requested by the user
+boolean connectorProducerIdempotenceConfigured = 
connConfig.originals().containsKey(
+ConnectorConfig.CONNECTOR_CLIENT_PRODUCER_OVERRIDES_PREFIX + 
ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG
+);
+if (!connectorProducerIdempotenceConfigured) {
+boolean workerProducerIdempotenceConfigured = 
config.originals().containsKey(
+"producer." + ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG
+);
+if (!workerProducerIdempotenceConfigured) {
+result.remove(ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG);
+}
+}
 ConnectUtils.ensureProperty(
 result, ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG, "true",
 "for connectors when exactly-once source support is enabled",
diff --git 
a/connect/runtime/src/test/java/org/apache/kafka/connect/integration/ExactlyOnceSourceIntegrationTest.java
 
b/connect/runtime/src/test/java/org/apache/kafka/connect/integration/ExactlyOnceSourceIntegrationTest.java
index 90fcaa8a21..bd9bceba06 100644
--- 
a/connect/runtime/src/test/java/org/apache/kafka/connect/integration/ExactlyOnceSourceIntegrationTest.java
+++ 
b/connect/runtime/src/test/java/org/apache/kafka/connect/integration/ExactlyOnceSourceIntegrationTest.java
@@ -407,12 +407,12 @@ public class ExactlyOnceSourceIntegrationTest {
 Map consumerProps = new HashMap<>();
 consumerProps.put(ConsumerConfig.ISOLATION_LEVEL_CONFIG, 
"read_committed");
 // consume all records from the source topic or fail, to ensure that 
they were correctly produced
-ConsumerRecords sourceRecords = connect.kafka()
-.consume(
-recordsProduced,
-TimeUnit.MINUTES.toMillis(1),
-consumerProps,
-"test-topic");
+ConsumerRecords sourceRecords = 
connect.kafka().consumeAll(
+CONSUME_RECORDS_TIMEOUT_MS,
+
Collections.singletonMap(ConsumerConfig.ISOLATION_LEVEL_CONFIG, 

[kafka] branch trunk updated: KAFKA-14089: Only check for committed seqnos after disabling exactly-once support in Connect integration test (#12429)

2022-07-28 Thread mimaison
This is an automated email from the ASF dual-hosted git repository.

mimaison pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/kafka.git


The following commit(s) were added to refs/heads/trunk by this push:
 new 9e74f91e56 KAFKA-14089: Only check for committed seqnos after 
disabling exactly-once support in Connect integration test (#12429)
9e74f91e56 is described below

commit 9e74f91e56dbc06f17c95fe80dd3923f7b713457
Author: Chris Egerton 
AuthorDate: Thu Jul 28 11:18:09 2022 -0400

KAFKA-14089: Only check for committed seqnos after disabling exactly-once 
support in Connect integration test (#12429)


Reviewers: Mickael Maison 

, Tom Bentley 

---
 .../runtime/ExactlyOnceWorkerSourceTask.java   |   3 +
 .../org/apache/kafka/connect/runtime/Worker.java   |  13 ++
 .../ExactlyOnceSourceIntegrationTest.java  | 192 +++--
 .../integration/MonitorableSourceConnector.java|   2 +-
 4 files changed, 155 insertions(+), 55 deletions(-)

diff --git 
a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/ExactlyOnceWorkerSourceTask.java
 
b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/ExactlyOnceWorkerSourceTask.java
index de78e592aa..931917b9e1 100644
--- 
a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/ExactlyOnceWorkerSourceTask.java
+++ 
b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/ExactlyOnceWorkerSourceTask.java
@@ -217,6 +217,9 @@ class ExactlyOnceWorkerSourceTask extends 
AbstractWorkerSourceTask {
 if (failed) {
 log.debug("Skipping final offset commit as task has failed");
 return;
+} else if (isCancelled()) {
+log.debug("Skipping final offset commit as task has been 
cancelled");
+return;
 }
 
 // It should be safe to commit here even if we were in the middle of 
retrying on RetriableExceptions in the
diff --git 
a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/Worker.java 
b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/Worker.java
index 16e48d8f17..5bc67693d0 100644
--- a/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/Worker.java
+++ b/connect/runtime/src/main/java/org/apache/kafka/connect/runtime/Worker.java
@@ -756,6 +756,19 @@ public class Worker {
   
ConnectorClientConfigOverridePolicy connectorClientConfigOverridePolicy,
   String 
clusterId) {
 Map result = baseProducerConfigs(id.connector(), 
"connector-producer-" + id, config, connConfig, connectorClass, 
connectorClientConfigOverridePolicy, clusterId);
+// The base producer properties forcibly disable idempotence; remove 
it from those properties
+// if not explicitly requested by the user
+boolean connectorProducerIdempotenceConfigured = 
connConfig.originals().containsKey(
+ConnectorConfig.CONNECTOR_CLIENT_PRODUCER_OVERRIDES_PREFIX + 
ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG
+);
+if (!connectorProducerIdempotenceConfigured) {
+boolean workerProducerIdempotenceConfigured = 
config.originals().containsKey(
+"producer." + ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG
+);
+if (!workerProducerIdempotenceConfigured) {
+result.remove(ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG);
+}
+}
 ConnectUtils.ensureProperty(
 result, ProducerConfig.ENABLE_IDEMPOTENCE_CONFIG, "true",
 "for connectors when exactly-once source support is enabled",
diff --git 
a/connect/runtime/src/test/java/org/apache/kafka/connect/integration/ExactlyOnceSourceIntegrationTest.java
 
b/connect/runtime/src/test/java/org/apache/kafka/connect/integration/ExactlyOnceSourceIntegrationTest.java
index 90fcaa8a21..bd9bceba06 100644
--- 
a/connect/runtime/src/test/java/org/apache/kafka/connect/integration/ExactlyOnceSourceIntegrationTest.java
+++ 
b/connect/runtime/src/test/java/org/apache/kafka/connect/integration/ExactlyOnceSourceIntegrationTest.java
@@ -407,12 +407,12 @@ public class ExactlyOnceSourceIntegrationTest {
 Map consumerProps = new HashMap<>();
 consumerProps.put(ConsumerConfig.ISOLATION_LEVEL_CONFIG, 
"read_committed");
 // consume all records from the source topic or fail, to ensure that 
they were correctly produced
-ConsumerRecords sourceRecords = connect.kafka()
-.consume(
-recordsProduced,
-TimeUnit.MINUTES.toMillis(1),
-consumerProps,
-"test-topic");
+ConsumerRecords sourceRecords = 
connect.kafka().consumeAll(
+CONSUME_RECORDS_TIMEOUT_MS,
+
Collections.singletonMap(ConsumerConfig.ISOLATION_LEVEL_CONFIG,