svn commit: r56021 - /dev/kafka/3.2.1/
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
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
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
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)
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)
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)
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)
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)
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)
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)
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,