The GitHub Actions job "CI" on rocketmq-dashboard.git/fix/topic-name-bounds has failed. Run started by GitHub user unbridled-41 (triggered by unbridled-41).
Head commit for run: 0ff437ac0269826318d0dced3f50099accca7274 / unbridled-41 <[email protected]> fix(topic): validate topic and group names before the ownership write The write paths only trimmed the name (ResourceOwnershipGuard.requireText) and let the broker decide, but the broker's own validation (TopicValidator.validateTopic) runs at the RPC - after this code has already inserted the ownership row: // createTopic -> executeResourceWrite -> ownershipGuard.write(...) -> the RPC Two failure modes followed. A name longer than the 255-character storage column makes that insert throw DataIntegrityViolationException, which no handler maps, so the API answers 500 Internal Server Error with no reason. A name that fits the column but not the broker (128..255 characters, or any name outside ^[%|a-zA-Z0-9_-]+$) leaves the claim behind as a PENDING row: the topic/group list filters by instance only, so the never-created resource shows up in the console with 0 queues and blocks the name for every other instance until someone deletes the phantom. Validate with the broker's own rules in createTopic/updateTopic and the group limit in createConsumerGroup/updateConsumerGroup, before any write, so the caller gets the broker's message as a 400 and nothing is persisted. The console already enforces the same bounds client-side (resourceCsvImport: topic 127, group 120), so this only closes the server side and the AI-tool/import paths that bypass it. Tests (server/): mvn -o -B -ntp test -Dtest='RocketMQAdminClientImplTest' -> Tests run: 83, Failures: 0, Errors: 0. - new createTopicRejectsAnIllegalNameBeforeWritingAnythingTest and createConsumerGroupRejectsANameLongerThanTheBrokerLimitTest fail before this change (no 400, the broker call is reached) and pass after it; the first also asserts no ownership write happens. - new createTopicKeepsTheBrokerCompatibleNamesItAcceptsTest guards the bounds (127 characters and a name with underscores still reach the broker). - mvn -o -B -ntp test -Dtest='MetadataServiceTest,TopicControllerTest,ConsumerGroupControllerTest' -> Tests run: 100, Failures: 0, Errors: 0; checkstyle passes. Report URL: https://github.com/apache/rocketmq-dashboard/actions/runs/37975600190 With regards, GitHub Actions via GitBox
