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
> >
>

Reply via email to