The changes to broker configs can be shown by the following command:

```
git log --pretty=oneline
pulsar-broker-common/src/main/java/org/apache/pulsar/broker/ServiceConfiguration.java
```

Then I found some other PRs.

https://github.com/apache/pulsar/pull/23709 adds an
`allowAclChangesOnNonExistentTopics` config. However, from the comment
https://github.com/apache/pulsar/pull/23709#issuecomment-2533780608,
it's addressing a breaking change in
https://github.com/apache/pulsar/pull/22547. Yeah, it happens again
that 22547 is treated as a "bug fix" so the breaking change is
acceptable for LTS releases.

https://github.com/apache/pulsar/pull/22792 adds a new config
`managedLedgerCursorResetLedgerCloseTimestampMaxClockSkewMillis`. It's
cherry-picked to branch-4.0

https://github.com/apache/pulsar/pull/20147 adds a new config. It's
not cherry-picked to branch-3.0 but only as a part of the new 4.0 LTS
release.

----

A solution I can think of is to have an "unstable" config in addition
to the existing config. The standard for which configuration change
requires a PIP is really ambiguous. Pulsar's configuration now becomes
really big and complicated, with many `xxxNumThreads`, `xxxTimeoutMs`
configs that I cannot think of a reason in which case they should be
configured.

Thanks,
Yunze


On Wed, Feb 26, 2025 at 12:42 PM Yunze Xu <x...@apache.org> wrote:
>
> Hi all,
>
> I noticed two PRs were merged recently and cherry-picked into
> branch-3.0 and branch-4.0, where 3.0 and 4.0 are LTS releases.
>
> https://github.com/apache/pulsar/pull/24012 fixes a bug for the
> implementation of PIP-322. However, it adds a new configuration
> without a new PIP or change on the existing PIP. It definitely
> violates "When is a PIP required" [1]. (Any change to the
> configuration)
>
> https://github.com/apache/pulsar/pull/23697 fixes a message loss issue
> caused by geo-replication by introducing a new feature flag
> `supports_repl_dedup_by_lid_and_eid`. It also violates [1] (Any new
> feature for Pulsar brokers or client)
>
> I also noticed https://github.com/apache/pulsar/pull/24025, which adds
> a new config `managedLedgerOffloadReadThreads` as well. Though it's
> only cherry-picked into branch-3.3 but not for LTS releases (3.0 and
> 4.0)
>
> I found the definition of "bug-fixes" ambiguous. It seems like a
> silver bullet that if we want a PR to be included in the LTS release,
> we only need to say, "it's a bug fix", no matter if it changes
> anything that requires a PIP.
>
> Based on the fact that the PIP rule is not widely followed, should we
> update and loose the requirement?
>
> [1] https://github.com/apache/pulsar/tree/master/pip#when-is-a-pip-required
>
> Thanks,
> Yunze

Reply via email to