[fix][broker][branch-2.9] Fix system topic schema not compatible bug #17986
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.

Fixes #17979
Motivation
While upgrading broker version from 2.8.2 to 2.9.3, broker log shows lots of
Unable to read schemaerror, which should not happen.#12598 has tried to fix the same bug but not completely.
schemaCompatibilityStrategyinorg.apache.pulsar.broker.service.AbstractTopicisSchemaCompatibilityStrategy.FULLdefaultly and only be updated inorg.apache.pulsar.broker.service.AbstractTopic#setSchemaCompatibilityStrategy.pulsar/pulsar-broker/src/main/java/org/apache/pulsar/broker/service/AbstractTopic.java
Lines 552 to 567 in 4abd4d2
Once
org.apache.pulsar.broker.service.AbstractTopic#setSchemaCompatibilityStrategynot called, theschemaCompatibilityStrategyof system topics will always beSchemaCompatibilityStrategy.FULL, which should bebrokerService.pulsar().getConfig().getSystemTopicSchemaCompatibilityStrategy()(defaultSchemaCompatibilityStrategy.ALWAYS_COMPATIBLE) instead.This bug only exists in branch 2.9 after #13557 meged. The master code is fine.
Modifications
Add
schemaCompatibilityStrategyupdate logic if the topic is system topic, as #12598 did, in constructor ofAbstractTopic.Verifying this change
This change added tests and can be verified as follows:
org.apache.pulsar.broker.systopic.NamespaceEventsSystemTopicServiceTest#testSystemTopicSchemaCompatibilityDoes this pull request potentially affect one of the following parts:
If the box was checked, please highlight the changes
Documentation
docdoc-requireddoc-not-neededdoc-completeMatching PR in forked repository
PR in forked repository: dragonls#1