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