Hi Jun,

> Regarding the motivation, currently, we never documented that an empty
cleanup.policy implies infinite retention. In fact, if one leaves
cleanup.policy empty, it actually breaks remote storage since it will stop
the cleaning based on local retention size and time too. So, leaving
cleanup.policy empty is probably more like a user mistake than an
intentional choice. Based on this assumption, the idea behind the KIP is to
fail an empty cleanup.policy so that the user is aware of this likely
mistake and provide a new option None for users wanting infinite retention
to opt in explicitly.

While we never documented the empty cleanup.policy implies infinite
retention, we also never documented (or failed) the empty cleanup.policy is
an invalid configuration. My thought is that this behavior has been existed
for years (maybe after "cleanup.policy" was introduced?), there could be
users relying on the empty cleanup.policy for a long time. It is not good
to break the backward compatibility in a minor release version (ex:
v4.1.0). Even though we think we are fixing a long existing bug, it could
be a surprise to users.


> We could also consider supporting an empty cleanup.policy by fixing the
issue in remote storage. But then the user may never realize this if it's a
mistake.

Good point! I agree we need to fix it!


Hi Chia-Ping,

> We can print warnings for empty cleanup.policy in 4.x and in 5.0 we throw
exception directly to make it fail fast

This suggestion looks good to me!

Thank you.
Luke

On Tue, May 13, 2025 at 2:14 PM Chia-Ping Tsai <chia7...@apache.org> wrote:

> hi all,
>
> Given Luke mentioned the existence of use cases, it is worth considering
> the compatibility issue. In fact, I had previously encountered this use
> case but advised customers to utilize retention configurations instead.
>
> > We could also consider supporting an empty cleanup.policy by fixing the
> > issue in remote storage. But then the user may never realize this if
> it's a
> > mistake.
>
> Good catch! The "empty" or "none" wouldn't make sense for remote storage.
> I've opened KAFKA-19273 to ensure topics with tiered storage use a valid
> delete policy.
>
> Best,
> Chia-Ping
>
>
> On 2025/05/12 19:06:10 Jun Rao wrote:
> > Hi, Luke,
> >
> > Regarding the motivation, currently, we never documented that an empty
> > cleanup.policy implies infinite retention. In fact, if one leaves
> > cleanup.policy empty, it actually breaks remote storage since it will
> stop
> > the cleaning based on local retention size and time too. So, leaving
> > cleanup.policy empty is probably more like a user mistake than an
> > intentional choice. Based on this assumption, the idea behind the KIP is
> to
> > fail an empty cleanup.policy so that the user is aware of this likely
> > mistake and provide a new option None for users wanting infinite
> retention
> > to opt in explicitly.
> >
> > We could also consider supporting an empty cleanup.policy by fixing the
> > issue in remote storage. But then the user may never realize this if
> it's a
> > mistake.
> >
> > Thanks,
> >
> > Jun
> >
> >
> > On Sun, May 11, 2025 at 7:53 PM Luke Chen <show...@gmail.com> wrote:
> >
> > > Hi Jiunn-Yang,
> > >
> > > Thanks for the KIP.
> > >
> > > Comments:
> > > 1. "it is acceptable because an empty cleanup.policy is considered
> invalid
> > > in Kafka. Therefore, this trade-off is justified."
> > > Could you explain more about this? Why is this trade-off justified?
> > > If we think the empty cleanup.policy is invalid in kafka, why do we
> provide
> > > an additional "none" option to users in this KIP?
> > > FYI, there are indeed use cases that need to keep all history data
> without
> > > a cleanup policy.
> > >
> > > 2. Following (1), I agree we should fail fast for empty
> > > "group.coordinator.rebalance.protocols" and "process.roles" configs
> since
> > > they are invalid.
> > > But about "cleanup.policy", I don't see a persuasive reason why we
> should
> > > break backward compatibility to change it.
> > > "This provides a clear and direct way to configure Kafka to retain all
> log
> > > segments without any automatic cleanup."
> > > This is the motivation we mentioned in the KIP, but to me, backward
> > > compatibility is much more important than "a clear and direct way to
> config
> > > kafka".
> > > Do we really have to change the "cleanup.policy" config?
> > >
> > > Thanks.
> > > Luke
> > >
> > >
> > > On Wed, May 7, 2025 at 2:17 AM Jun Rao <j...@confluent.io.invalid>
> wrote:
> > >
> > > > Hi, Jiunn-Yang,
> > > >
> > > > Thanks for the updated KIP. It looks good to me.
> > > >
> > > > Jun
> > > >
> > > > On Tue, May 6, 2025 at 4:58 AM 黃竣陽 <s7133...@gmail.com> wrote:
> > > >
> > > > > Hi Jun, chia
> > > > >
> > > > > Thanks for all the comments. They have all been addressed in the
> > > updated
> > > > > KIP.
> > > > >
> > > > > I've removed all deprecated-related sections. Additionally, an
> > > exception
> > > > > will now be thrown if a
> > > > > developer passes an empty validStrings list to the inNonEmpty
> method.
> > > > >
> > > > > Best Regards,
> > > > > Jiunn-Yang
> > > > >
> > > > > > Chia-Ping Tsai <chia7...@gmail.com> 於 2025年5月6日 凌晨12:46 寫道:
> > > > > >
> > > > > > hi Jiunn-Yang
> > > > > >
> > > > > > The `inNonEmpty` is used to prevent users pass empty config, so
> > > should
> > > > it
> > > > > > be non-empty too?
> > > > > >
> > > > > > For example, `inNonEmpty()` should throw exception directly.
> > > > > >
> > > > > > Best,
> > > > > > Chia-Ping
> > > > > >
> > > > > > Jun Rao <j...@confluent.io.invalid> 於 2025年5月6日 週二 上午12:28寫道:
> > > > > >
> > > > > >> Hi, Jiunn-Yang,
> > > > > >>
> > > > > >> Thanks for the reply. There are still references to the
> deprecated
> > > > > method.
> > > > > >>
> > > > > >> "stop relying on the deprecated methods"
> > > > > >> "Finally, the deprecated method will be removed in Kafka 5.0"
> > > > > >>
> > > > > >> Thanks,
> > > > > >>
> > > > > >> Jun
> > > > > >>
> > > > > >> On Sat, May 3, 2025 at 7:42 AM 黃竣陽 <s7133...@gmail.com> wrote:
> > > > > >>
> > > > > >>> Hi Jun, chia,
> > > > > >>>
> > > > > >>> Thanks for all the comments. They have all been addressed in
> the
> > > > > updated
> > > > > >>> KIP.
> > > > > >>>
> > > > > >>> Best Regards,
> > > > > >>> Jiunn-Yang
> > > > > >>>
> > > > > >>>> Chia-Ping Tsai <chia7...@gmail.com> 於 2025年5月3日 凌晨2:03 寫道:
> > > > > >>>>
> > > > > >>>> hi Jiunn-Yang
> > > > > >>>>
> > > > > >>>> in the "Compatibility, Deprecation, and Migration Plan",
> could you
> > > > add
> > > > > >>>> description to remind readers that "clean.policy=" should be
> > > > replaced
> > > > > >> by
> > > > > >>>> "clean.policy=none" if they do want to disable delete and
> compact.
> > > > > >>>>
> > > > > >>>> Best,
> > > > > >>>> Chia-Ping
> > > > > >>>>
> > > > > >>>> Jun Rao <j...@confluent.io.invalid> 於 2025年5月3日 週六 上午1:55寫道:
> > > > > >>>>
> > > > > >>>>> Hi, Jiunn-Yang,
> > > > > >>>>>
> > > > > >>>>> It's fine not to deprecate ValidList#in for now. Could you
> update
> > > > the
> > > > > >>> KIP
> > > > > >>>>> completely? There are still references to deprecation.
> > > > > >>>>>
> > > > > >>>>> Thanks,
> > > > > >>>>>
> > > > > >>>>> Jun
> > > > > >>>>>
> > > > > >>>>> On Fri, May 2, 2025 at 4:59 AM 黃竣陽 <s7133...@gmail.com>
> wrote:
> > > > > >>>>>
> > > > > >>>>>> Hi Jun,
> > > > > >>>>>>
> > > > > >>>>>> I don’t think we should deprecate the ValidList#in method,
> as
> > > > there
> > > > > >> may
> > > > > >>>>> be
> > > > > >>>>>> future scenarios where we want
> > > > > >>>>>> to allow list configs to be empty. It’s useful to have both
> > > > methods:
> > > > > >> in
> > > > > >>>>>> (which allows empty lists)
> > > > > >>>>>> and inNonEmpty (which enforces non-empty lists).
> > > > > >>>>>>
> > > > > >>>>>>> Just a minor comment. It would be useful to document that
> > > during
> > > > > >>>>> upgrade,
> > > > > >>>>>>> if cleanup.policy is empty, the broker will fail to start.
> > > > > >>>>>>
> > > > > >>>>>> I’ve updated the KIP accordingly.
> > > > > >>>>>>
> > > > > >>>>>> Best Regards,
> > > > > >>>>>> Jiunn-Yang
> > > > > >>>>>>
> > > > > >>>>>>> Jun Rao <j...@confluent.io.INVALID> 於 2025年5月2日 凌晨12:50 寫道:
> > > > > >>>>>>>
> > > > > >>>>>>> Hi, Jiunn-Yang,
> > > > > >>>>>>>
> > > > > >>>>>>> Thanks for the reply. Sounds good.
> > > > > >>>>>>>
> > > > > >>>>>>> Just a minor comment. It would be useful to document that
> > > during
> > > > > >>>>> upgrade,
> > > > > >>>>>>> if cleanup.policy is empty, the broker will fail to start.
> > > > > >>>>>>>
> > > > > >>>>>>> Jun
> > > > > >>>>>>>
> > > > > >>>>>>> On Thu, May 1, 2025 at 8:40 AM 黃竣陽 <s7133...@gmail.com>
> wrote:
> > > > > >>>>>>>
> > > > > >>>>>>>> Hello Jun,
> > > > > >>>>>>>>
> > > > > >>>>>>>> Since ValidList is a public API, we need to maintain
> backward
> > > > > >>>>>>>> compatibility. Therefore, the isEmptyAllowed flag is
> > > necessary.
> > > > > >>>>>>>> We can update the signature of isNonEmpty() to remove the
> > > > boolean
> > > > > >>>>>>>> parameter.
> > > > > >>>>>>>>
> > > > > >>>>>>>> Best Regards,
> > > > > >>>>>>>> Jiunn-Yang
> > > > > >>>>>>>>
> > > > > >>>>>>>>> Jun Rao <j...@confluent.io.INVALID> 於 2025年5月1日 凌晨4:17
> 寫道:
> > > > > >>>>>>>>>
> > > > > >>>>>>>>> Hi, Jiunn-Yang,
> > > > > >>>>>>>>>
> > > > > >>>>>>>>> Thanks for the reply.
> > > > > >>>>>>>>>
> > > > > >>>>>>>>> Do we really need isEmptyAllowed? It's awkward since the
> > > method
> > > > > >> name
> > > > > >>>>> is
> > > > > >>>>>>>>> inNonEmpty. Also, it's not clear when it's set to true.
> > > > > >>>>>>>>>
> > > > > >>>>>>>>> Thanks,
> > > > > >>>>>>>>>
> > > > > >>>>>>>>> Jun
> > > > > >>>>>>>>>
> > > > > >>>>>>>>> On Fri, Apr 25, 2025 at 6:26 AM 黃竣陽 <s7133...@gmail.com>
> > > > wrote:
> > > > > >>>>>>>>>
> > > > > >>>>>>>>>> Hi Jun,
> > > > > >>>>>>>>>>
> > > > > >>>>>>>>>> Thank you for pointing that out.
> > > > > >>>>>>>>>>
> > > > > >>>>>>>>>> I have revised the KIP as follows:
> > > > > >>>>>>>>>>
> > > > > >>>>>>>>>> “In this case, the change does not introduce new invalid
> > > > > >>>>>> configurations
> > > > > >>>>>>>> or
> > > > > >>>>>>>>>> prevent any currently valid setup.
> > > > > >>>>>>>>>> The main behavioral difference is that we now explicitly
> > > > throw a
> > > > > >>>>>>>>>> ConfigException  during the storage format validation
> phase
> > > > > >>>>>>>>>> instead of relying on the current behavior.”
> > > > > >>>>>>>>>>
> > > > > >>>>>>>>>> This reflects the correct behavior.
> > > > > >>>>>>>>>>
> > > > > >>>>>>>>>> Best Regards,
> > > > > >>>>>>>>>> Jiunn-Yang
> > > > > >>>>>>>>>>
> > > > > >>>>>>>>>>> Jun Rao <j...@confluent.io.INVALID> 於 2025年4月25日
> 凌晨1:17 寫道:
> > > > > >>>>>>>>>>>
> > > > > >>>>>>>>>>> Hi, Jiunn-Yang,
> > > > > >>>>>>>>>>>
> > > > > >>>>>>>>>>> "The main behavioral difference introduced by this
> change
> > > is
> > > > > >> that
> > > > > >>> a
> > > > > >>>>>>>>>>> ConfigException  will now be thrown during the storage
> > > format
> > > > > >>>>>>>> validation
> > > > > >>>>>>>>>>> phase, rather than during server startup."
> > > > > >>>>>>>>>>>
> > > > > >>>>>>>>>>> It seems that currently formating the storage already
> fails
> > > > if
> > > > > >>>>>>>>>>> group.coordinator.rebalance.protocols and process.roles
> > > are
> > > > > >>> empty.
> > > > > >>>>>> It
> > > > > >>>>>>>>>> just
> > > > > >>>>>>>>>>> gets a different exception.
> > > > > >>>>>>>>>>>
> > > > > >>>>>>>>>>> Thanks,
> > > > > >>>>>>>>>>>
> > > > > >>>>>>>>>>> Jun
> > > > > >>>>>>>>>>>
> > > > > >>>>>>>>>>> On Thu, Apr 24, 2025 at 5:32 AM 黃竣陽 <
> s7133...@gmail.com>
> > > > > wrote:
> > > > > >>>>>>>>>>>
> > > > > >>>>>>>>>>>> Hi Jun, chia,
> > > > > >>>>>>>>>>>>
> > > > > >>>>>>>>>>>> Thanks for your feedback.
> > > > > >>>>>>>>>>>>
> > > > > >>>>>>>>>>>> I add a new section for this change:
> > > > > >>>>>>>>>>>>
> > > > > >>>>>>>>>>>> - Validation for
> group.coordinator.rebalance.protocols and
> > > > > >>>>>>>> process.roles
> > > > > >>>>>>>>>>>> will be
> > > > > >>>>>>>>>>>> moved from the server startup phase to the storage
> format
> > > > > >> phase.
> > > > > >>>>>>>>>>>> - For cleanup.policy, setting an empty list will now
> be
> > > > > >>> considered
> > > > > >>>>>>>>>> invalid
> > > > > >>>>>>>>>>>> and will
> > > > > >>>>>>>>>>>> result in a ConfigException during storage format
> phase.
> > > > > >>>>>>>>>>>>
> > > > > >>>>>>>>>>>> Best Regards,
> > > > > >>>>>>>>>>>> Jiunn-Yang
> > > > > >>>>>>>>>>>>
> > > > > >>>>>>>>>>>>> Jun Rao <j...@confluent.io.INVALID> 於 2025年4月24日
> 凌晨4:44
> > > 寫道:
> > > > > >>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>> Hi, Jiunn-Yang,
> > > > > >>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>> Thanks for the reply.
> > > > > >>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>> Q2. It's true that
> group.coordinator.rebalance.protocols
> > > > and
> > > > > >>>>>>>>>>>> process.roles
> > > > > >>>>>>>>>>>>> configurations can't be empty right now. With this
> KIP,
> > > the
> > > > > >> user
> > > > > >>>>>> will
> > > > > >>>>>>>>>>>>> probably get a different (and more accurate)
> exception.
> > > It
> > > > > >> will
> > > > > >>>>> be
> > > > > >>>>>>>>>> useful
> > > > > >>>>>>>>>>>>> to document that.
> > > > > >>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>> Regarding cleanup.policy, I kind of agree with
> Chia-Ping.
> > > > If
> > > > > a
> > > > > >>>>> user
> > > > > >>>>>>>>>>>> leaves
> > > > > >>>>>>>>>>>>> cleanup.policy empty, it's more likely to be a
> mistake
> > > than
> > > > > an
> > > > > >>>>>>>>>> intention.
> > > > > >>>>>>>>>>>>> If we automatically treat it as None, the user will
> never
> > > > > >>> realize
> > > > > >>>>>> the
> > > > > >>>>>>>>>>>>> mistake. Throwing an exception will let the user
> realize
> > > > > there
> > > > > >>>>> is a
> > > > > >>>>>>>>>>>> mistake.
> > > > > >>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>> Jun
> > > > > >>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>> On Wed, Apr 23, 2025 at 8:26 AM Chia-Ping Tsai <
> > > > > >>>>> chia7...@gmail.com
> > > > > >>>>>>>
> > > > > >>>>>>>>>>>> wrote:
> > > > > >>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>> hi Jiunn-Yang,
> > > > > >>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>> Thanks for the KIP, and I understand that
> maintaining
> > > > > >>>>>> compatibility
> > > > > >>>>>>>> is
> > > > > >>>>>>>>>>>>>> important.
> > > > > >>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>> However, according to the documentation, we don't
> allow
> > > an
> > > > > >>> empty
> > > > > >>>>>>>> value
> > > > > >>>>>>>>>>>> for
> > > > > >>>>>>>>>>>>>> the cleanup.policy. Hence, should we consider
> throwing
> > > an
> > > > > >>>>>> exception
> > > > > >>>>>>>>>> for
> > > > > >>>>>>>>>>>> an
> > > > > >>>>>>>>>>>>>> empty value in version 4.x? This could streamline
> the
> > > code
> > > > > >> and
> > > > > >>>>>> avoid
> > > > > >>>>>>>>>> an
> > > > > >>>>>>>>>>>>>> extra deprecation cycle.
> > > > > >>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>> Best,
> > > > > >>>>>>>>>>>>>> Chia-Ping
> > > > > >>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>> Jun Rao <j...@confluent.io.invalid> 於 2025年4月23日 週三
> > > > > 上午6:33寫道:
> > > > > >>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>> Hi, Jiunn-Yang,
> > > > > >>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>> Regarding "The none policy will not delete or
> compact
> > > any
> > > > > >>>>>>>> segments",
> > > > > >>>>>>>>>> we
> > > > > >>>>>>>>>>>>>>> should be more accurate. We won't delete segments
> based
> > > > on
> > > > > >>>>>>>>>>>>>>> log.retention.bytes/log.retention.ms, but we
> should
> > > > > >> continue
> > > > > >>>>> to
> > > > > >>>>>>>>>> delete
> > > > > >>>>>>>>>>>>>>> segments based on log.local.retention.bytes/
> > > > > >> log.retention.ms.
> > > > > >>>>>>>>>>>> Otherwise,
> > > > > >>>>>>>>>>>>>>> we
> > > > > >>>>>>>>>>>>>>> risk running out of local disk space when remote
> > > storage
> > > > is
> > > > > >>>>>>>> enabled.
> > > > > >>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>> Thanks,
> > > > > >>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>> Jun
> > > > > >>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>> On Tue, Apr 22, 2025 at 9:45 AM Jun Rao <
> > > > j...@confluent.io>
> > > > > >>>>>> wrote:
> > > > > >>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>> Hi, Jiunn-Yang,
> > > > > >>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>> Thanks for the reply.
> > > > > >>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>> Q2. What about existing empty values for
> > > > > >>>>>>>>>>>>>>>> group.coordinator.rebalance.protocols and
> > > process.roles
> > > > > >>> during
> > > > > >>>>>>>>>>>> upgrade?
> > > > > >>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>> Jun
> > > > > >>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>> On Tue, Apr 22, 2025 at 7:29 AM 黃竣陽 <
> > > s7133...@gmail.com
> > > > >
> > > > > >>>>> wrote:
> > > > > >>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>>> Hello Jun,
> > > > > >>>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>>> Thanks for review this KIP.
> > > > > >>>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>>> Q1 & Q3:
> > > > > >>>>>>>>>>>>>>>>> I’ve updated the method name accordingly and
> revised
> > > > the
> > > > > >>>>>>>>>>>>>> cleanup.policy
> > > > > >>>>>>>>>>>>>>>>> documentation
> > > > > >>>>>>>>>>>>>>>>> to clarify that the none policy cannot be used
> with
> > > any
> > > > > >>> other
> > > > > >>>>>>>>>> policy.
> > > > > >>>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>>> Q2:
> > > > > >>>>>>>>>>>>>>>>> For users currently using an empty
> cleanup.policy,
> > > the
> > > > > >>>>> approach
> > > > > >>>>>>>> is
> > > > > >>>>>>>>>> to
> > > > > >>>>>>>>>>>>>>>>> apply the none policy
> > > > > >>>>>>>>>>>>>>>>> during the preProcessParsedConfig step.
> > > Additionally, a
> > > > > >>>>> warning
> > > > > >>>>>>>>>>>>>> message
> > > > > >>>>>>>>>>>>>>>>> will be emitted to inform users
> > > > > >>>>>>>>>>>>>>>>> of the upcoming change.
> > > > > >>>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>>> Best Regards,
> > > > > >>>>>>>>>>>>>>>>> Jiunn-Yang
> > > > > >>>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>>>> Jun Rao <j...@confluent.io.INVALID> 於 2025年4月22日
> > > > 凌晨4:52
> > > > > >> 寫道:
> > > > > >>>>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>>>> Hi, Jiunn-Yang,
> > > > > >>>>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>>>> Thanks for the KIP. A few comments.
> > > > > >>>>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>>>> 1. It's fine to introduce a new value None for
> > > > > >>>>> cleanup.policy.
> > > > > >>>>>>>> But
> > > > > >>>>>>>>>>>>>> now
> > > > > >>>>>>>>>>>>>>>>> not
> > > > > >>>>>>>>>>>>>>>>>> all value combinations are valid. For example,
> None
> > > > > can't
> > > > > >>> be
> > > > > >>>>>>>> used
> > > > > >>>>>>>>>>>>>> with
> > > > > >>>>>>>>>>>>>>>>>> Delete or Compact. It would be useful to
> document
> > > > that.
> > > > > >>>>>>>>>>>>>>>>>> 2. What's the behavior during upgrade when an
> > > existing
> > > > > >>>>> config
> > > > > >>>>>>>> has
> > > > > >>>>>>>>>> an
> > > > > >>>>>>>>>>>>>>>>> empty
> > > > > >>>>>>>>>>>>>>>>>> list.
> > > > > >>>>>>>>>>>>>>>>>> 3. inWithEmptyCheck: It's not clear what the
> empty
> > > > check
> > > > > >>>>> does.
> > > > > >>>>>>>> How
> > > > > >>>>>>>>>>>>>>> about
> > > > > >>>>>>>>>>>>>>>>>> sth like inNonEmpty ?
> > > > > >>>>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>>>> Thanks,
> > > > > >>>>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>>>> Jun
> > > > > >>>>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>>>> On Tue, Apr 15, 2025 at 8:25 AM 黃竣陽 <
> > > > s7133...@gmail.com
> > > > > >
> > > > > >>>>>> wrote:
> > > > > >>>>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>>>>> Hello everyone,
> > > > > >>>>>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>>>>> I would like to start a discussion on KIP-1161:
> > > > > >>>>>> cleanup.policy
> > > > > >>>>>>>>>>>>>>>>> shouldn't
> > > > > >>>>>>>>>>>>>>>>>>> be empty
> > > > > >>>>>>>>>>>>>>>>>>> <https://cwiki.apache.org/confluence/x/HArXF>
> > > > > >>>>>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>>>>> This proposal aims to improve the
> cleanup.policy
> > > > > >>>>>> configuration.
> > > > > >>>>>>>>>>>>>>>>> Currently,
> > > > > >>>>>>>>>>>>>>>>>>> this setting should not be left empty.
> > > > > >>>>>>>>>>>>>>>>>>> Therefore, there are two proposed improvements:
> > > > > >>>>>>>>>>>>>>>>>>> 1. Update ValidList to validate whether an
> empty
> > > list
> > > > > is
> > > > > >>>>>>>> allowed.
> > > > > >>>>>>>>>>>>>>>>>>> 2. Introduce a new 'none' value for
> cleanup.policy.
> > > > > >>>>>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>>>>> Best Regards,
> > > > > >>>>>>>>>>>>>>>>>>> Jiunn-Yang
> > > > > >>>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>>>
> > > > > >>>>>>>>>>>>
> > > > > >>>>>>>>>>>>
> > > > > >>>>>>>>>>
> > > > > >>>>>>>>>>
> > > > > >>>>>>>>
> > > > > >>>>>>>>
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > > >>>
> > > > > >>>
> > > > > >>
> > > > >
> > > > >
> > > >
> > >
> >
>

Reply via email to