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

   ### Before Creating the Bug Report
   
   - [x] I have searched the [open 
issues](https://github.com/apache/rocketmq-dashboard/issues) of this repository 
and believe that this is not a duplicate.
   - [x] This is a defect in RocketMQ Studio, not a usage question and not a 
defect in another Apache RocketMQ repository.
   - [x] I can reproduce this on the current `rocketmq-studio` branch, or I 
have stated the exact version I am running below.
   
   ### Studio Version
   
   branch: `rocketmq-studio`
   git commit id: `5e4c39b0`
   deployed as: reproduced by a unit test against that commit (the affected 
code is the web client)
   
   ### Runtime Environment
   
   OS: Ubuntu on WSL2
   MySQL: not applicable — the defect is in the web client's table filtering
   browser: not applicable — reproduced in a jsdom unit test (vitest + Testing 
Library)
   
   ### Connected RocketMQ Cluster
   
   RocketMQ version: not applicable — reproduced with a stubbed 
client-connection response in a unit test
   access mode: not applicable
   deployment: not applicable
   
   ### Describe the Bug
   
   The clients table reports a client whose broker-reported language has no 
known counterpart as "unknown" and
   counts it in the language/version distribution, but the language column's 
filter cannot select those rows.
   
   - the distribution bucket is built with the `UNKNOWN_LANGUAGE` sentinel
     (`web/src/pages/cluster/clients.tsx:310`) and rendered as "未知 <version>: 
N";
   - the tag for such a row falls back to the localized "unknown" label
     (`renderLanguageTag`, `:390-397`);
   - the language column's filter, however, lists only the eight languages of 
`languageConfig`
     (`:495-498`) and matches `record.language === value`, so a row with 
`language: null` matches no option;
   - the CSV export has the same gap: `matches('language', connection.language 
?? '')` (`:374`).
   
   The protocol column already got the matching treatment when its null case 
appeared (the merge commit for
   #5453 added an unknown protocol option and made the export use the same 
sentinel, precisely so the rows
   behind the `-: N` statistic could be filtered); the language column was not 
updated the same way.
   
   ### Steps to Reproduce
   
   Reproduced by a unit test rather than against a cluster; the connection stub 
is the only setup needed:
   
   1. Render `ClientsPage` with `listConnections` returning one row with 
`language: null` (the broker reported
      a `LanguageCode` with no `ClientLanguage` counterpart) and one Java row.
   2. Look at the language filter: it offers Java, Go, … but nothing that 
selects the "未知 5.0.7: 1" bucket the
      distribution just displayed.
   3. Export with such a filter — there is no filter to select in the first 
place.
   
   ### What Did You Expect to See?
   
   The same option the protocol column has, so the rows the distribution counts 
as "unknown" can be filtered and
   exported like any other language.
   
   ### What Did You See Instead?
   
   A language filter that cannot select the rows the page itself labels as 
unknown.
   
   ### Additional Context
   
   - A fix with a regression test follows in a pull request.
   - The case is pinned by a unit test that fails on `5e4c39b0` (`Unable to 
find an element with the text: 未知`
     in the filter dropdown) and passes with the fix.
   - The version column has no filter at all, so the per-version split inside 
the unknown bucket stays
     unselectable; that is out of scope here.
   
   ### Are You Willing to Submit a Pull Request?
   
   - [x] Yes, I am willing to submit a pull request.
   


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