- 7月 06, 2022
-
-
由 dengziming 创作于
When brokers are co-resident with controllers using kraft, we incorrectly determine the supported API versions on the controller using `NodeApiVersions.create()`. The patch fixes the problem by using the versions from the sent `ApiVersions` request even when connecting to the local node. The patch also improves integration tests by adding support for co-resident mode. Reviewers: Justine Olshan <jolshan@confluent.io>, Jason Gustafson <jason@confluent.io>
-
- 7月 05, 2022
-
-
由 Viktor Somogyi-Vass 创作于
Reviewers: Manikumar Reddy
-
由 Chris Egerton 创作于
Reviewers: Mickael Maison <mickael.maison@gmail.com> , Tom Bentley <tbentley@redhat.com>
-
由 Thomas Cooper 创作于
Reviewers: Luke Chen <showuon@gmail.com>
-
由 Matthew de Detrich 创作于
Currently the tests fail because there is a missing predicate in the retrievableException which causes the test to fail, i.e. the current predicates containsString("Cannot get state store source-table because the stream thread is PARTITIONS_ASSIGNED, not RUNNING"), containsString("The state store, source-table, may have migrated to another instance"), containsString("Cannot get state store source-table because the stream thread is STARTING, not RUNNING") wasn't complete. Another one needed to be added, namely "The specified partition 1 for store source-table does not exist.". This is because its possible for assertThat(getStore(kafkaStreams2, storeQueryParam2).get(key), is(nullValue())); or assertThat(getStore(kafkaStreams1, storeQueryParam2).get(key), is(nullValue())); (depending on which branch) to be thrown, i.e. see org.apache.kafka.streams.errors.InvalidStateStorePartitionException: The specified partition 1 for store source-table does not exist. at org.apache.kafka.streams.state.internals.WrappingStoreProvider.stores(WrappingStoreProvider.java:63) at org.apache.kafka.streams.state.internals.CompositeReadOnlyKeyValueStore.get(CompositeReadOnlyKeyValueStore.java:53) at org.apache.kafka.streams.integration.StoreQueryIntegrationTest.lambda$shouldQuerySpecificActivePartitionStores$5(StoreQueryIntegrationTest.java:223) at org.apache.kafka.streams.integration.StoreQueryIntegrationTest.retryUntil(StoreQueryIntegrationTest.java:579) at org.apache.kafka.streams.integration.StoreQueryIntegrationTest.shouldQuerySpecificActivePartitionStores(StoreQueryIntegrationTest.java:186) This happens when the stream hasn't been initialized yet. I have run the test around 12k times using Intellij's JUnit testing framework without any flaky failures. The PR also does some minor refactoring regarding moving the list of predicates into their own functions. Co-authored-by:
Bruno Cadonna <cadonna@apache.org> Reviewer: Bruno Cadonna <cadonna@apache.org>
-
- 7月 04, 2022
-
-
由 Guozhang Wang 创作于
1. As titled, fix the right constructor param ordering. 2. Also added a few more loglines. Reviewers: Matthias J. Sax <matthias@confluent.io>, Sagar Rao <sagarmeansocean@gmail.com>, Hao Li <1127478+lihaosky@users.noreply.github.com>
-
- 7月 03, 2022
-
-
由 Bruno Cadonna 创作于
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 <wangguoz@gmail.com>
-
- 7月 02, 2022
-
-
由 RivenSun 创作于
Reviewers: Kvicii <42023367+Kvicii@users.noreply.github.com>, Divij Vaidya <divijvaidya13@gmail.com>, Jason Gustafson <jason@confluent.io>
-
由 Nikolay 创作于
Removes unused methods from `BrokerEndPoint`: * `createBrokerEndPoint(Int, String)` * `readFrom(buffer: ByteBuffer)` * `connectionString(): String` * `writeTo(buffer: ByteBuffer)` * `sizeInBytes: Int` Reviewers: dengziming <dengziming1993@gmail.com>, Luke Chen <showuon@gmail.com>, Jason Gustafson <jason@confluent.io>
-
- 7月 01, 2022
-
-
由 Jason Gustafson 创作于
In `ControllerApis`, we are missing the logic to set the local processing end time after `handle` returns. As a consequence of this, the remote time ends up reported as the local time in the request level metrics. The patch adds the same logic we have in `KafkaApis` to set `apiLocalCompleteTimeNanos`. Reviewers: José Armando García Sancio <jsancio@gmail.com>
-
由 Niket 创作于
The NPE causes the kraft controller to be in an inconsistent state. Reviewers: Jason Gustafson <jason@confluent.io>
-
由 Prashanth Joseph Babu 创作于
Reviewers: Matthias J. Sax <matthias@confluent.io>
-
- 6月 30, 2022
-
-
由 Guozhang Wang 创作于
For most tests we would need an auto-ticking mock timer to work with draining-with-timeout functions. For tests that check for never checkpoint we need no auto-ticking timer to control exactly how much time elapsed. Reviewers: Bruno Cadonna <cadonna@apache.org>
-
由 Guozhang Wang 创作于
* Add a new API for session windows to range query session window by end time (KIP related). * Augment session window aggregator with emit strategy. * Minor: consolidated some dup classes. * Test: unit test on session window aggregator. Reviewers: Guozhang Wang <wangguoz@gmail.com>
-
- 6月 29, 2022
-
-
由 Luke Chen 创作于
When submitting the AlterIsr request, we register a future listener to handle the response. When receiving retriable error, we expected the AlterIsr request will get retried. And then, we'll re-submit the request again. However, before the future listener got called, we didn't clear the `unsentIsrUpdates`, which causes we failed to "enqueue" the request because we thought there's an in-flight request. We use "try/finally" to make sure the unsentIsrUpdates got cleared, but it happened "after" we retry the request Reviewers: David Jacot <djacot@confluent.io>, dengziming <dengziming1993@gmail.com>
-
由 CHUN-HAO TANG 创作于
https://issues.apache.org/jira/browse/KAFKA-13821 Reviewers: Jorge Esteban Quilcate Otoya <quilcate.jorge@gmail.com>, Bill Bejeck <bbejeck@apache.org>
-
- 6月 28, 2022
-
-
由 Tom Kaszuba 创作于
Reviewers: Matthias J. Sax <matthias@confluent.io>
-
由 Jason Gustafson 创作于
Support KRaft in `GroupAuthorizerIntegrationTest`. Reviewers: David Arthur <mumrah@gmail.com>
-
- 6月 26, 2022
-
-
由 Alyssa Huang 创作于
Reviewers: Kvicii <42023367+Kvicii@users.noreply.github.com>, Jason Gustafson <jason@confluent.io>
-
- 6月 25, 2022
-
-
由 Bruno Cadonna 创作于
This PR exposes the tasks managed by the state updater. The state updater manages all tasks that were added to the state updater and that have not yet been removed from it by draining one of the output queues. Reviewers: Guozhang Wang <wangguoz@gmail.com>
-
- 6月 24, 2022
-
-
由 Bruno Cadonna 创作于
The mocks were not setup correctly in StreamTask#shouldCheckpointState which caused a null pointer exception during test execution.
-
由 David Jacot 创作于
Reviewers: Kvicii <42023367+Kvicii@users.noreply.github.com>, Luke Chen <showuon@gmail.com>
-
由 Guozhang Wang 创作于
During restoring, we should always commit a.k.a. write checkpoint file regardless of EOS or ALOS, since if there's a failure we would just over-restore them upon recovery so no EOS violations happened. Also when we complete restore or remove task, we should enforce a checkpoint as well; for failing cases though, we should not write a new one. Reviewers: Bruno Cadonna <cadonna@apache.org>
-
- 6月 23, 2022
-
-
由 David Arthur 创作于
Also fixes flaky QuorumControllerTest#testInvalidBootstrapMetadata Reviewers: Jason Gustafson <jason@confluent.io>
-
由 Chris Egerton 创作于
This causes the artificial reductions in the Connect REST request timeout to be more isolated. Specifically, they now only take place in the tests that need them (instead of any tests that happen to be running after the reduction has taken place and before it has been reset), and they are only performed for the requests that are expected to time out, before being immediately reset. This should help reduce spurious test failures (especially in slow environments like Jenkins) for all Connect integration tests that interact with the REST API, not just the BlockingConnectorTest test suite. Reviewers: Bruno Cadonna <cadonna@apache.org>
-
由 Bruno Cadonna 创作于
Before this PR the call to `StreamsMetricsImpl.addAvgAndMinAndMaxToSensor()` was just a call and not a verification on the mock. This miss happened during the switch from EasyMock to Mockito. Reviewers: John Roesler <vvcephei@apache.org>, Guozhang Wang <wangguoz@gmail.com>
-
由 Bruno Cadonna 创作于
Before this PR the calls to StreamsMetricsImpl.addInvocationRateAndCountToSensor() were just calls and not a verification on the mock. This miss happened during the switch from EasyMock to Mockito. Reviewers: John Roesler <vvcephei@apache.org>, Guozhang Wang <wangguoz@gmail.com>
-
由 Bruno Cadonna 创作于
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: John Roesler <vvcephei@apache.org>, Guozhang Wang <wangguoz@gmail.com>
-
由 Jason Gustafson 创作于
It's useful if the message about ineligible replicas explains the reason the replica is ineligible. Reviewers: David Jacot <djacot@confluent.io>
-
- 6月 22, 2022
-
-
由 David Jacot 创作于
https://github.com/apache/kafka/commit/f83d95d9a28267f7ef7a7b1e584dcdb4aa842210 introduced topic ids in the AlterPartitionRequest/Response and we just found a bug in the request handling logic. The issue is the following. When the `AlterPartitionManager` receives the response, it builds the `partitionResponses` mapping `TopicIdPartition` to its result. `TopicIdPartition` is built from the response. Therefore if version < 2 is used, `TopicIdPartition` will have the `ZERO` topic id. Then the `AlterPartitionManager` iterates over the item sent to find their response. If an item has a topic id in its `TopicIdPartition` and version < 2 was used, it cannot find it because one has it and the other one has not. This patch fixes the issue by using `TopicPartition` as a key in the `partitionResponses` map. This ensures that the result can be found regardless of the topic id being set or not. Note that the case where version 2 is used is handled correctly because we already have logic to get back the topic name from the topic id in order to construct the `TopicPartition`. `testPartialTopicIds` test was supposed to catch this but it didn't due to the ignorable topic id field being present. This patch fixes the test as well. Reviewers: Kvicii <42023367+Kvicii@users.noreply.github.com>, Jason Gustafson <jason@confluent.io>
-
- 6月 21, 2022
-
-
由 Bruno Cadonna 创作于
* KAFKA-13930: Add 3.2.0 Streams upgrade system tests Apache Kafka 3.2.0 was recently released. Now we need to test upgrades from 3.2 to trunk in our system tests. Reviewer: Bill Bejeck <bbejeck@apache.org>
-
由 A. Sophie Blee-Goldman 创作于
Changes the tag name from topic-name to just topic to conform to the way this tag is named elsewhere (ie in the clients) Also: - fixes a comment about dynamic topic routing - fixes some indentation in MockRecordCollector - Undoes the changes to KStreamSplitTest.scala and TestTopicsTest which are no longer necessary after this hotfix Reviewers: Bruno Cadonna <cadonna@apache.org>
-
由 Chris Egerton 创作于
Implements support for per-connector offsets topics as described in KIP-618. Reviewers: Luke Chen <showuon@gmail.com>, Tom Bentley <tbentley@redhat.com>
-
由 Viktor Somogyi-Vass 创作于
Reviewers: Manikumar Reddy <manikumar.reddy@gmail.com>
-
- 6月 20, 2022
-
-
由 James Hughes 创作于
The `reason` field cannot contain more than 32767 chars. We did not expect to ever reach this but it turns out that it is possible if the the message provided in the `Throwable` somehow contains the entire stack trace. This patch ensure that the reason crafted based on exceptions remain small. Co-authored-by:
David Jacot <djacot@confluent.io> Reviewers: Bruno Cadonna <cadonna@apache.org>, A. Sophie Blee-Goldman <ableegoldman@apache.org>, David Jacot <djacot@confluent.io>
-
由 RivenSun 创作于
Reviewers: Luke Chen <showuon@gmail.com>
-
- 6月 18, 2022
-
-
由 Guozhang Wang 创作于
There are some considerata embedded in this seemingly straight-forward PR that I'd like to explain here. The StreamPartitioner is used to send records to three types of topics: 1) repartition topics, where key should never be null. 2) changelog topics, where key should never be null. 3) sink topics, where only non-windowed key could be null and windowed key should still never be null. Also, the StreamPartitioner is used as part of the IQ to determine which host contains a certain key, as determined by the case 2) above. This PR's main goal is to remove the deprecated producer's default partitioner, while with those things in mind such that: We want to make sure for not-null keys, the default murmur2 hash behavior of the streams' partitioner stays consistent with producer's new built-in partitioner. For null-keys (which is only possible for non-window default stream partition, and is never used for IQ), we would fix the issue that we may never rotate to a new partitioner by setting the partition as null hence relying on the newly introduced built-in partitioner. Reviewers: Artem Livshits <84364232+artemlivshits@users.noreply.github.com>, Matthias J. Sax <matthias@confluent.io>
-
- 6月 17, 2022
-
-
由 RivenSun 创作于
Reviewers: Mickael Maison <mickael.maison@gmail.com> , David Jacot <djacot@confluent.io>, Kvicii <kvicii.yu@gmail.com>
-
由 Divij Vaidya 创作于
There are a bunch of tests which do not clean up after themselves. This leads to accumulation of files in the tmp directory of the system on which the tests are running. This code change fixes some of the main culprit tests which leak the files in the temporary directory. Reviewers: Ismael Juma <ismael@juma.me.uk>, Kvicii <kvicii.yu@gmail.com>
-
由 jnewhouse 创作于
InMemoryTimeOrderedKeyValueBuffer keeps a Set of keys that have been seen in order to log them for durability. This set is never used nor cleared if logging is not enabled. Having it be populated creates a memory leak. This change stops populating the set if logging is not enabled. Reviewers: Divij Vaidya <diviv@amazon.com>, Kvicii <42023367+Kvicii@users.noreply.github.com>, Guozhang Wang <wangguoz@gmail.com>
-