JR34. Hmm, it seems that the code in taskConfigs() could return an empty list for a task if knownSourceTopicPartitions is less than maxTasks, Chia-Ping?
Yes, `MirrorSourceConnector#taskConfigs` could return an empty list, which means no `MirrorSourceTask` can be created. By contrast, if any `MirrorSourceTask` is created, the configs used by `MirrorSourceTask` must contain `task.assigned.partitions` with a non-empty value. Jun Rao <j...@confluent.io.invalid> 於 2025年7月22日 週二 上午5:14寫道: > Hi, Jiunn-Yang and Chia-Ping, > > Thanks for the reply. > > JR34. Hmm, it seems that the code in taskConfigs() could return an empty > list for a task if knownSourceTopicPartitions is less than maxTasks, > Chia-Ping? > > JR36. Sounds good. Could you update the KIP? Also, should we do the same > for ssl.cipher.suites and sasl.oauthbearer.expected.audience? > > JR37. Is it true that MirrorClientConfig.bootstrap.servers returns > ClassCastException for null? It seems that null could be casted to any > class. > > JR38. "If the configuration is optional, we will reject any duplicate > values in the list." Could you clarify this? For example, plugin.path is > optional, but with a default value. We reject duplicates as well as empty > lists. > > JR39. isEmptyAllowed and isNullAllowed are not public fields, right? They > are only public in the anyNonDuplicateValues() method. > > JR40. It would be useful to mention that if cleanup.policy is empty and > remote.storage.enable is true, the local log segments will be cleaned based > on log.local.retention.bytes and log.local.retention.ms. > > Jun > > On Fri, Jul 18, 2025 at 9:52 AM Chia-Ping Tsai <chia7...@gmail.com> wrote: > > > > > > > JR34: For these two configurations, setting an empty list feels a bit > > > unintuitive. If an empty list is > > > provided, the consumer will call the unsubscribe method, which doesn't > > > seem appropriate given > > > the documentation states: "Topic-partitions assigned to this task to > > > replicate." > > > > > > > agreed. Additionally, the source code [0] shows that it is not intended > to > > generate empty tps for the source task > > > > [0] > > > > > https://github.com/apache/kafka/blob/9b542b6ea21e84677a9292f250fc25f8b4162e6f/connect/mirror/src/main/java/org/apache/kafka/connect/mirror/MirrorSourceConnector.java#L202 > > >