Commit Graph

16385 Commits

Author SHA1 Message Date
Shashank b043ca2074
KAFKA-19683: Remove dead tests and modify tests in TaskManagerTest [1/N] (#20501)
This is the first part of cleaning up of the tests in `TaskManagerTest`
- Removed dead tests
- Added new tests as suggested earlier

Reviewers: Lucas Brutschy <lbrutschy@confluent.io>
2025-09-16 20:46:20 +02:00
Lianet Magrans 9f657abf3a
MINOR: Improve consumer rebalance callbacks docs (#20528)
Clarify rebalance callbacks behaviour (got some questions for
onPartitionsAssigned, docs where indeed confusing about the partitions
received in params).   Reviewed all rebalance callbacks with it.

Reviewers: Bill Bejeck<bbejeck@apache.org>
2025-09-16 11:12:19 -04:00
Lucas Brutschy 2c347380b7
KAFKA-19694: Trigger StreamsRebalanceListener in Consumer.close (#20511)
In the consumer, we invoke the consumer rebalance onPartitionRevoked or
onPartitionLost callbacks, when the consumer closes. The point is that
the application may want to commit, or wipe the state if we are closing
unsuccessfully.

In the StreamsRebalanceListener, we did not implement this behavior,
which means when closing the consumer we may lose some progress, and in
the worst case also miss that we have to wipe our local state state
since we got fenced.

In this PR we implement StreamsRebalanceListenerInvoker, very similarly
to ConsumerRebalanceListenerInvoker and invoke it in Consumer.close.

Reviewers: Lianet Magrans <lmagrans@confluent.io>, Matthias J. Sax
 <matthias@confluent.io>, TengYao Chi <frankvicky@apache.org>,
 Uladzislau Blok <123193120+UladzislauBlok@users.noreply.github.com>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-16 16:32:47 +02:00
Lan Ding daa7aae0c1
KAFKA-19604 Document controller.quorum.auto.join.enable config in upgrade.html (#20409)
Document controller.quorum.auto.join.enable config in upgrade.html

Reviewers: Chia-Ping Tsai <chia7712@gmail.com>
2025-09-16 16:34:14 +08:00
Jhen-Yung Hsu dddb619177
MINOR: Move RaftManager interface to raft module (#20366)
- Move the `RaftManager` interface to raft module, and remove the
`register` and `leaderAndEpoch` methods since they are already part of
the RaftClient APIs.
- Rename RaftManager.scala to KafkaRaftManager.scala.

Reviewers: Ken Huang <s7133700@gmail.com>, TengYao Chi
 <kitingiao@gmail.com>, Chia-Ping Tsai <chia7712@gmail.com>
2025-09-16 16:19:42 +08:00
Mickael Maison 3cbb2a0aaf
MINOR: Small cleanups in clients (#20530)
- Fix non-constant calls to logging
- Fix assertEquals order
- Fix javadoc

Reviewers: TengYao Chi <kitingiao@gmail.com>, Chia-Ping Tsai
<chia7712@gmail.com>
2025-09-16 03:56:11 +08:00
Lianet Magrans caeca090b8
MINOR: Improve producer docs and add tests around timeout behaviour on missing topic/partition (#20533)
Clarify timeout errors received on send if the case is topic not in
metadata vs partition not in metadata.  Add integration tests showcases
the difference  Follow-up from 4.1 fix for misleading timeout error
message (https://issues.apache.org/jira/browse/KAFKA-8862)

Reviewers: TengYao Chi <frankvicky@apache.org>, Kuan-Po Tseng
 <brandboat@gmail.com>
2025-09-15 13:28:27 -04:00
Alex 3fcc0c2877
MINOR: Fix an off-by-one issue in ValuesTest (#20520)
This test case ensures that the parser can convert ISO8601 correctly.
However, when the local time falls on a different day than the UTC time,
there will be an off-by-one issue.

I changed the test to convert the local time and then compare it with
the expected local time. This should fix the off-by-one issue.

[Reference
link](https://github.com/apache/kafka/pull/18611#discussion_r2318146619)

Reviewers: Andrew Schofield <aschofield@confluent.io>

---------

Signed-off-by: Alex <wenhsuan.alexyu@gmail.com>
2025-09-15 18:26:47 +01:00
Lucas Brutschy 8628d74c49
KAFKA-19661 [6/N]: Use heaps also on the process-level (#20523)
In the current solution, we only use a heap to select the right process,
but resort to linear search for selecting a member within a process.
This means use cases where a lot of threads run within the same process
can yield slow assignment. The number of threads in a process shouldn’t
scale arbitrarily (our assumed case for benchmarking of 50 threads in a
single process seems quite extreme already), however, we can optimize
for this case to reduce the runtime further.

Other assignment algorithms assign directly on the member-level, but we
cannot do this in Kafka Streams, since we cannot assign tasks to
processes that already own the task. Defining a heap directly on members
would mean that we may have to skip through 10s of member before finding
one that does not belong to a process that does not yet own the member.

Instead, we can define a separate heap for each process, which keeps the
members of the process by load. We can only keep the heap as long as we
are only changing the load of the top-most member (which we usually do).
This means we keep track of a lot of heaps, but since heaps are backed
by arrays in Java, this should not result in extreme memory
inefficiencies.

In our worst-performing benchmark, this improves the runtime by ~2x on
top of the optimization above.

Also piggybacked are some minor optimizations / clean-ups:   -
initialize HashMaps and ArrayLists with the right capacity   - fix some
comments   - improve logging output

Note that this is a pure performance change, so there are no changes to
the unit tests.

Reviewers: Bill Bejeck<bbejeck@apache.org>
2025-09-15 17:19:53 +02:00
Hong-Yi Chen 749c2d91d5
KAFKA-19609 Move TransactionLogTest to transaction-coordinator module (#20460)
This PR migrates the `TransactionLogTest` from Scala to Java for better
consistency with the rest of the test suite and to simplify future
maintenance.

Reviewers: Chia-Ping Tsai <chia7712@gmail.com>
2025-09-15 11:25:54 +08:00
Yunchi Pang e1b7699975
MINOR: Bump versions in CI (#20497)
**Summary**

This PR bumps several GitHub Actions and dependencies used in CI
workflows to their latest stable versions. This ensures our CI
environment remains consistent, secure, and aligned with upstream
improvements.

**Changes**

- requests: 2.32.3 → 2.32.4
- actions/checkout: v4 → v5
- actions/setup-python: v5 → v6
- actions/setup-java: v4 → v5
- actions/download-artifact: v4 → v5
- actions/labeler: v5 → v6

related: https://github.com/apache/kafka/pull/19940/files#r2328391161

Reviewers: Ken Huang <s7133700@gmail.com>, TengYao Chi
 <kitingiao@gmail.com>, Chia-Ping Tsai <chia7712@gmail.com>
2025-09-15 10:35:42 +08:00
keemsisi 2fd54837f0
MINOR: Update on fixing tag description missing in javadoc (#20380)
* Added tag description to @throws in method javadoc
* Added explicit throws IndexOffsetOverflowException to method signature

Reviewers: Chia-Ping Tsai <chia7712@gmail.com>
2025-09-15 10:13:49 +08:00
NICOLAS GUYOMAR a9e529236f
MINOR: increase Config change throwable log info to error (#14380)
The ApiError.fromThrowable(t) is going to return a generic
Errors.UNKNOWN_SERVER_ERROR back to the calling client (CLI for
instance) (eg if the broker has an authZ issue with ZK)  and such
UnknownServerException should have a matching ERROR level log in the
broker logs IHMO to make it easier to troubleshoot

Reviewers: Chia-Ping Tsai <chia7712@gmail.com>
2025-09-15 10:04:06 +08:00
Mickael Maison 374bc469c7
MINOR: Cleanups in ops docs (#20532)
- Fix typo in `process.role`
- Fix formatting of quorum description commands

Reviewers: Lan Ding <isDing_L@163.com>, Ken Huang <s7133700@gmail.com>,
TengYao Chi <frankvicky@apache.org>
2025-09-14 20:25:12 +08:00
Chang-Chi Hsu 962f4ada75
KAFKA-19203 Replace `ApiError#exception` by `Error#exception` for KafkaAdminClient (#19623)
This pull request addresses KAFKA-19203 by replacing
`ApiError#exception` with `Error#exception` in `KafkaAdminClient`. The
previous use of `ApiError#exception` was redundant, as we only need the
exception without the additional wrapping of `ApiError`.

## Changes

- Replaced some usages of `ApiError#exception` with `Error#exception` in
`KafkaAdminClient`.
- Simplified exception handling logic to reduce unnecessary layers.

Reviewers: Chia-Ping Tsai <chia7712@gmail.com>
2025-09-14 07:20:01 +08:00
Logan Zhu 026710cbb4
MINOR: Update ClusterTestExtensions Javadoc example (#20525)
The previous Javadoc example used the deprecated ClusterType.   It is
now updated to use `types = {Type.KRAFT, Type.CO_KRAFT}`

Reviewers: Chia-Ping Tsai <chia7712@gmail.com>
2025-09-13 06:01:00 +08:00
Chang-Chi Hsu af2a8db3c6
KAFKA-18105 Fix flaky PlaintextAdminIntegrationTest#testElectPreferredLeaders (#20068)
## Changes
This PR improves the stability of the
PlaintextAdminIntegrationTest.testElectPreferredLeaders test by
introducing short Thread.sleep( ) delays before invoking:

- changePreferredLeader( )

- waitForBrokersOutOfIsr( )

## Reasons

- Metadata propagation for partition2 :
Kafka requires time to propagate the updated leader metadata across all
brokers. Without waiting,  metadataCache may return outdated leader
information for partition2.

- Eviction of broker1 from the ISR :
To simulate a scenario where broker1 is no longer eligible as leader,
the test relies on broker1 being removed from the ISR (e.g., due to
intentional shutdown). This eviction is not instantaneous and requires a
brief delay before Kafka reflects the change.

Reviewers: PoAn Yang <payang@apache.org>, TengYao Chi
 <kitingiao@gmail.com>, TaiJuWu <tjwu1217@gmail.com>, Ken Huang
 <s7133700@gmail.com>, Chia-Ping Tsai <chia7712@gmail.com>
2025-09-13 05:44:17 +08:00
Maros Orsak 54b88f6721
MINOR: Refactor on FeaturesPublisher and ScramPublisher (#20522)
This PR is a follow-up from https://github.com/apache/kafka/pull/20468.
Basically makes two things:
1. Moves the variable to the catch block as it is used only there.
2. Refactor FeaturesPublisher to handle exceptions the same as
ScramPublisher or other publishers :)

Reviewers: Chia-Ping Tsai <chia7712@gmail.com>

---------

Signed-off-by: see-quick <maros.orsak159@gmail.com>
2025-09-13 05:24:40 +08:00
Lucas Brutschy 20268330d5
MINOR: Deflake and improve SmokeTestDriverIntegrationTest (#20509)
This improves the SmokeTestDriverIntegrationTest in three ways:

1) If a SmokeTestClient fails (enters a terminal ERROR state), the
SmokeTestDriverIntegrationTest currently times out, because it keeps
waiting for state NOT_RUNNING. This makes debugging quite difficult.
This minor  change makes sure to just fail the test immediately, if a
SmokeTestClient enters the ERROR state.

2) If a test times out or fails prematurely, because a SmokeTestClient
crashed, the SmokeTestClients aren't shut down correctly, which will
affect the following test runs. Therefore, I am adding clean-up logic
that running SmokeTestClients in `@AfterAll`.

3) Finally, I found that the processingThread variation of this thread
triggers a subtle race condition. Since this features is currently not
actively developed, I disabled those variations and created a ticket to
reactivate the test.

Reviewers: Matthias J. Sax <matthias@confluent.io>, Chia-Ping Tsai
 <chia7712@gmail.com>, Bill Bejeck <bill@confluent.io>

---------

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-09-12 10:31:19 +02:00
Shashank dd824a2e74
KAFKA-19666: Remove old restoration codepath from RestoreIntegrationTest [4/N] (#20498)
Clean up `RestoreIntegrationTest.java`

Reviewers: Lucas Brutschy <lbrutschy@confluent.io>
2025-09-11 16:06:25 +02:00
jimmy 8a79ea2e5b
KAFKA-19676 EpochState should override close to avoid throwing IOException (#20508)
Jira: [KAFKA-19676](https://issues.apache.org/jira/browse/KAFKA-19676)
All subclasses of EpochState do not throw an IOException when closing,
so catching it is unnecessary. We could override close to remove the
IOException declaration.

Reviewers: Jhen-Yung Hsu <jhenyunghsu@gmail.com>, TaiJuWu
 <tjwu1217@gmail.com>, Chia-Ping Tsai <chia7712@gmail.com>
2025-09-11 18:21:35 +08:00
Mickael Maison 865beb6ede
MINOR: Remove explicit version list from upgrade.from docs (#20518)
That config has a `Validator` so we already automatically print the
valid values in the generated docs:
https://kafka.apache.org/documentation/#streamsconfigs_upgrade.from

That will be one less place to upgrade each time we make a new release.

Reviewers: Chia-Ping Tsai <chia7712@gmail.com>
2025-09-10 20:47:11 +02:00
Sushant Mahajan ff5025a21c
KAFKA-19695: Fix bug in redundant offset calculation. (#20516)
* The `ShareCoordinatorShard` maintains the the record offset
information for `SharePartitionKey`s in the
`ShareCoordinatorOffsetsManager` class.
* Replay of `ShareSnapshot`s in the shards are reflected in the offsets
manager including records created due to delete state.
* However, if the share partition delete is due to topic delete, no
record will ever be written for the same  `SharePartitionKey` post the
delete tombstone (as topic id will not repeat).
As a result the offset manager will always consider the deleted share
partition's offset as the last redundant one.
* The fix is to make the offset manager aware of the tombstone records
and remove them from the redundant offset calculation.
* Unit tests have been updated for the same.

Reviewers: Andrew Schofield <aschofield@confluent.io>, Apoorv Mittal
 <apoorvmittal10@gmail.com>
2025-09-10 11:38:34 -05:00
Lucas Brutschy 351203873d
KAFKA-19661 [5/N]: Use below-quota as a condition for standby task assignment (#20458)
In the original algorithm, standby tasks are assigned to a  process that
previously owned the task only if it is  “load-balanced”, meaning the
process has fewer tasks that  members, or it is the least loaded
process. This is strong  requirement, and will cause standby tasks to
often not get  assigned to process that previously owned it.
Furthermore,  the condition “is the least loaded process” is hard to
evaluate efficiently in this context.

We propose to instead use the same “below-quota” condition  as in active
task assignment.

We compute a quota for active and standby tasks, by definiing numOfTasks
= numberOfActiveTasks+numberOfStandbyTasks and  defining the quota as
numOfTasks/numberOfMembers rounded up.  Whenever a member becomes “full”
(its assigned number of tasks  is equal to numOfTasks) we deduct its
tasks from numOfTasks and  decrement numberOfMembers and recompute the
quota, which means  that the quota may be reduced by one during the
assignment  process, to avoid uneven assignments.

A standby task can be assigned to a process that previously  owned it,
whenever the process has fewer than  numOfMembersOfProcess*quota.

This condition will, again, prioritize standby stickyness,  and can be
evaluated in constant time.

In our worst-performing benchmark, this improves the runtime  by 2.5x on
top of the previous optimizations, but 5x on the  more important
incremental assignment case.

Reviewers: Bill Bejeck <bbejeck@apache.org>
2025-09-10 17:55:51 +02:00
Shashank 709c5fab22
KAFKA-19666: Remove old restoration codepath from EosIntegrationTest [5/N] (#20499)
clean up `EosIntegrationTest.java`

Reviewers: Lucas Brutschy <lucasbru@apache.org>
2025-09-10 17:10:46 +02:00
Maros Orsak a244565ed2
KAFKA-18708: Move ScramPublisher to metadata module (#20468)
Reviewers: Mickael Maison <mickael.maison@gmail.com>
2025-09-10 16:50:08 +02:00
Mickael Maison 32b8e326da
MINOR: Add 4.1.0 to streams system tests (#20480)
This PR updates all the streams system tests to include 4.1.0.

Reviewers: Lucas Brutschy <lucasbru@apache.org>
2025-09-10 16:23:55 +02:00
Mickael Maison 1ea221c5e9
MINOR: Add 4.1.0 to core system tests (#20477)
This PR updates all the core system tests to include 4.1.0.

Reviewers: Chia-Ping Tsai <chia7712@gmail.com>
2025-09-10 10:15:33 +02:00
PoAn Yang 675552a724
KAFKA-19490: Remove usages of distutils in docker scripts (#20178)
The
[distutils](https://docs.python.org/3.13/whatsnew/3.12.html#distutils)
package is removed from Python 3.12.

Change `distutils` usage to `shutil`.

Reviewers: Mickael Maison <mimaison@apache.org>

---------

Signed-off-by: PoAn Yang <payang@apache.org>
2025-09-10 13:02:03 +08:00
Nikita Shupletsov 8015c87390
KAFKA-19679: Fix NoSuchElementException in oldest open iterator metric (#20512)
Querying the oldest-open-iterator metric can result in a
NoSuchElementException when the last open iterator gets removed, due to
a race condition between the query and the metric update.

To avoid this race condition, this PR caches the metric result, to avoid
accessing the list of open iterator directly.  We don't need to clear
this cache, because the entire metric is removed when the last iterator
gets removed.

Reviewers: Matthias J. Sax <matthias@confluent.io>
2025-09-09 21:18:00 -07:00
Genseric Ghiro 8065d5cb1d
MINOR: Making sure log appender is closed in ShareConsumerImplTest.java::testFailConstructor (#20514)
Similarly to what was done for
AsyncKafkaConsumerTest::testFailConstructor,
[here](https://github.com/apache/kafka/pull/20491)

Reviewers: Lianet Magrans <lmagrans@confluent.io>, Chia-Ping Tsai
 <chia7712@gmail.com>
2025-09-10 07:03:19 +08:00
Lan Ding 45b96cb3a7
MINOR: add the explanation of `null` for DeleteAclsRequest#ResourceNameFilter (#20502)
Add the explanation of `null`  for DeleteAclsRequest#ResourceNameFilter

Reviewers: Ken Huang <s7133700@gmail.com>, TengYao Chi
 <kitingiao@gmail.com>, Chia-Ping Tsai <chia7712@gmail.com>
2025-09-10 06:59:32 +08:00
lucliu1108 0bc2c6e699
MINOR: Move topic creation before consumer creation in testListGroups integration test (#20496)
This PR moves the topic creation before consumer creations in
`PlaintextAdminIntegrationTest.testListGroups`, to avoid potential
errors if consumer creates topic due to metadata update.

See discussion
https://github.com/apache/kafka/pull/20244#discussion_r2325557949

Reviewers: @chia7712, bbejeck@apache.org
2025-09-09 18:05:45 -04:00
Mickael Maison 93512704da
MINOR: Add 4.1.0 to system tests (#20476)
Adding 4.1.0 to system tests as per

https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=34840886#ReleaseProcess-Afterrelease

Reviewers: Chia-Ping Tsai <chia7712@gmail.com>
2025-09-09 18:14:57 +02:00
Chirag Wadhwa d5e624e918
KAFKA-19693: Added PersisterBatch record in Share Partition which includes updatedState and stateBatch (#20507)
The method rollbackOrProcessStateUpdates in SharePartition received 2
separate lists of updatedStates (InFlightState) and stateBatches
(PersisterStateBatch). This PR introduces a new subclass called
`PersisterBatch` which encompasses both these objects.

Reviewers: Apoorv Mittal <apoorvmittal10@gmail.com>
2025-09-09 11:21:42 +01:00
Lucas Brutschy 620a01b74b
KAFKA-19661 [4/N]: Prefer range-style assignment (#20486)
This is actually fixing a difference between the old and the new
assignor. Given the assignment ordering, the legacy assignor has a
preference for range-style assignments built in, that is, assigning

C1: 0_0, 1_0  C2: 0_1, 1_1

instead of

C1: 0_0, 0_1  C2: 1_0, 1_1

We add tests to both assignors to check for this behavior, and improve
the new assingor by enforcing corresponding orderings.

Reviewers: Bill Bejeck <bill@confluent.io>
2025-09-09 10:44:37 +02:00
lucliu1108 f6f5b4cb27
KAFKA-19565: Integration test for Streams-related Admin APIs [2/N] (#20266)
Integration tests for Stream Admin related API

Previous PR: https://github.com/apache/kafka/pull/20244

This one adds:
- Integration test for Admin#listStreamsGroupOffsets API
- Integration test for Admin#deleteStreamsGroupOffsets API
- Integration test for Admin#alterStreamsGroupOffsets API

Reviewers: Alieh Saeedi <asaeedi@confluent.io>, Lucas Brutschy
 <lucasbru@apache.org>
2025-09-09 10:30:39 +02:00
Linsiyuan9 9c9f1446a1
KAFKA-18061 AddRaftVoter responds with error message "NONE" instead of null (#17930)
In `RaftUtil.addVoterResponse` and `RaftUtil.removeVoterResponse`
methods, when the input `errorMessage` is `null`, the returned string is
not actually null but `NONE`.

This introduces an inconsistency: semantically, `null` should represent
“no error message,” while `NONE` looks like a real string value and may
confuse clients.

Reviewers: Alyssa Huang <ahuang@confluent.io>, José Armando García
 Sancio <jsancio@apache.org>, Anton Agestam <anton.agestam@aiven.io>,
 Chia-Ping Tsai <chia7712@gmail.com>
2025-09-09 13:58:10 +08:00
Jonah Hooper 1debe64e8c
MINOR: Rename RecordSnapshotWriter.Builder.setMaxBatchSize to setMaxBatchSizeBytes (#20446)
The original name is confusing which could cause engineers to make a
mistake and confuse the `batchSize` with some other unit like number of
records.

Reviewers: Chia-Ping Tsai <chia7712@gmail.com>
2025-09-09 13:11:45 +08:00
Shashank 639492cc0a
KAFKA-15307: Kafka Streams configuration docs outdated (#20408)
Added new section for window serdes and update Streams configuration
page accordingly.

Reviewers: Matthias J. Sax <matthias@confluent.io>
2025-09-08 17:35:12 -07:00
Matthias J. Sax aa3a64e92c KAFKA-19668: update upgrade docs (#20484)
Docs change for KAFKA-19668 bug fix.

Reviewers: Bill Bejeck <bill@confluent.io>, Lucas Brutschy
<lbrutschy@confluent.io>
2025-09-08 13:36:03 -07:00
Genseric Ghiro 872647fe06
KAFKA-19585: Avoid noisy NPE logs when closing consumer after constructor failures (#20491)
If there's a failure in the kafka consumer constructor, we attempt to
close it

2329def2ff/clients/src/main/java/org/apache/kafka/clients/consumer/internals/AsyncKafkaConsumer.java (L540)
In that case, it could be the case that some components may have not
been created, so we should consider some null checks to avoid noisy logs
about NPE.

This noisy logs have been reported with the console share consumer in a
similar scenario, so this task is to review and do a similar fix for the
Async if needed.

The fix is to check if handlers/invokers are null before trying to close
them. Similar to what was done here
https://github.com/apache/kafka/pull/20290

Reviewers: TengYao Chi <frankvicky@apache.org>, Lianet Magrans
 <lmagrans@confluent.io>
2025-09-08 13:51:57 -04:00
Shashank f7593db287
KAFKA-19666: Remove old restoration codepath from SmokeTestDriverIntegrationTest [3/N] (#20465)
clean up `SmokeTestDriverIntegrationTest`

Reviewers: Lucas Brutschy <lucasbru@apache.org>
2025-09-08 17:48:37 +02:00
Jinhe Zhang b3eed51023
KAFKA-19660: JoinWithIncompleteMetadataIntegrationTest fails in isolated run of one parameter (#20483)
The original test timeout when using new protocol, because it use
`ConsumerConfig.MAX_POLL_INTERVAL_MS_CONFIG` as the exception's timeout,
which is 300s. Also the test for new protocol and old protocol use the
same group ID, so the failure will be hidden.
What I do:
1. Set the timeout as 5 secs so it can be captured within 10s
2. Use new appId for new protocol

Reviewers: Lucas Brutschy <lucasbru@apache.org>
2025-09-08 17:02:11 +02:00
Shashank 24ea7e0b00
KAFKA-19666: Remove old restoration codepath from PauseResumeIntegrationTest [2/N] (#20463)
Clean up `PauseResumeIntegrationTest`

Reviewers: Lucas Brutschy <lucasbru@apache.org>
2025-09-08 09:18:12 +02:00
Sanskar Jhajharia 3c7f99ad31
MINOR: Cleanup Server Module (#20180)
As the PR title suggests, this PR is an attempt to perform some cleanups
in the server module. The changes are mostly around the use of Record
type for some classes, changes to use enhanced switch, etc.

Reviewers: Ken Huang <s7133700@gmail.com>, Chia-Ping Tsai
 <chia7712@gmail.com>
2025-09-08 07:01:09 +08:00
Chang-Yu Huang d6688f869c
KAFKA-15983 Kafka-acls should return authorization already done if repeating work is issued (#20482)
# Description
`kafka-acls.sh` doesn't print message about duplicate authorization.

# Changes 
Now the cli searches for existing AclBinding, prints duplicate bindings,
and removes them from the adding list.

Reviewers: Chia-Ping Tsai <chia7712@gmail.com>
2025-09-07 06:22:02 +08:00
jimmy 350577d0ae
MINOR: Add doc for external schemas in JSONConverter (#20429)
This is a follow-up to #19449, which do the following things:

1. Add document to explain `schema.content` only work for sink connector
when  `schemas.enable` set to true.
2. Handle the case that while jsonValue contains the `schema` and
`payload` fields, we should use the corresponding value.

Reviewers: Priyanka K U <priyanka.ku@gmail.com>, Chia-Ping Tsai
 <chia7712@gmail.com>
2025-09-06 23:51:59 +08:00
Chang-Chi Hsu f6f6172bd1
MINOR: update gradle from 8.14.1 to 8.14.3 (#20495)
**This upgrade includes:**
- Dependency configurations are now realized only when necessary, which
helps improve configuration performance and memory usage.
- The configuration cache improves build time by caching the result of
the configuration phase and reusing it for subsequent builds. This
feature can significantly improve build performance.

reference: [Gradle 8.14.3 Release

Notes](https://docs.gradle.org/8.14.3/release-notes.html#build-authoring-improvements)

Reviewers: Chia-Ping Tsai <chia7712@gmail.com>
2025-09-06 23:40:49 +08:00
Matthias J. Sax 655cfaa7b6
MINOR: remove System.out in test (#20494)
This PR removes two System.out.println(...) statements from
StreamsGraphTest. These outputs were left over from debugging and are
not needed in the test logic.

Reviewers: Ken Huang <s7133700@gmail.com>, TengYao Chi
 <kitingiao@gmail.com>, Chia-Ping Tsai <chia7712@gmail.com>
2025-09-06 23:24:54 +08:00