zjncs opened a new issue, #5596:
URL: https://github.com/apache/rocketmq-dashboard/issues/5596

   `SystemTopicFilter.isSystem` 
(`server/src/main/java/org/apache/rocketmq/studio/common/util/SystemTopicFilter.java:46-59`,
 the create-path/non-paged guard) matches case-SENSITIVELY 
(`TopicValidator.isSystemTopic` + `startsWith("%RETRY%"/"%DLQ%")`; verified 
against rocketmq-common 5.5.0 bytecode: set-contains + 
`startsWith("rmq_sys_")`, both cs).
   
   `RocketMQMetadataProvider.listTopicsPage` (`:186-189`, the paged path) 
filters in SQL: `notIn(name, TopicValidator.getSystemTopicSet())` + 
`notLikeRight(name, "rmq_sys_"/"%RETRY%"/"%DLQ%")`; `rmq_instance_topic.name` 
is `CHARSET=utf8mb4` with no explicit collation (schema.sql:122-140) → 
case-INSENSITIVE comparison on production MySQL.
   
   **Trigger:** create a topic named with a case variant of a system pattern — 
`RMQ_SYS_foo`, `tbw102`, `%retry%grp`. Creation succeeds (guard is cs; the 
broker's own check is also cs), the row is stored.
   
   **Wrong behavior:** on production MySQL the console topic list 
(`/api/topics/page`, `web/src/pages/instance/topic.tsx`) silently hides the row 
(`NOT LIKE 'rmq_sys_%'` matches `RMQ_SYS_foo` under ci collation), while the 
non-paged list (`/api/topics`, CSV export, `findTopic`, AI tools) shows it. The 
user creates a topic that never appears in the list; retrying yields "already 
exists" confusion.
   
   The H2 dev harness (MODE=MySQL) compares LIKE case-sensitively — which is 
exactly why this slipped through CI.
   
   Expected: all paths agree on the same set of system names — case-insensitive 
matching in `isSystem` plus explicit `LOWER(name)` predicates in the paged 
filter (collation-independent).
   
   main @ rocketmq-studio tip.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to