iloveeyjafjalla opened a new issue, #6725: URL: https://github.com/apache/rocketmq-dashboard/issues/6725
### 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 `master` branch, or I have stated the exact version I am running below. ### Studio Version branch: rocketmq-studio git commit id: e2f815fbf6ee8c9b90e32ce59d6e74f27b0c4ad4 deployed as: built from source (server/ + web/ dev server); rmqctl built from rmqctl/ with go build ### Runtime Environment OS: Windows 11 24H2 MySQL: 8.x container (host port 13306) browser: not applicable (CLI issue); the same Studio server also served the console ### Connected RocketMQ Cluster RocketMQ version: 5.3.2 access mode: Direct to NameServer/Broker (namesrv 127.0.0.1:9876) deployment: docker (apache/rocketmq:5.3.2, single broker-a), Studio instance local-broker ### Build Toolchain Go 1.27.1 (go build / go test from rmqctl/), JDK 21, Maven 3.9, Node.js 20.19.5 ### Describe the Bug The default (table) output of a paged rmqctl listing prints one page and never says that more rows exist, although the tool's payload always carries page, pageSize and total. "rmqctl audit list" renders the server's default 20 rows and nothing else, so a reader - or "rmqctl audit list | wc -l" - takes them for the whole audit log. The server also caps pageSize at 100 ("pageSize must be between 1 and 100"), so a log of 186 rows can never be shown in one page. The tools whose output carries a page envelope are rmq.audit.list, rmq.acl.list and rmq.message.query_dlq. --output json / --output yaml print the envelope (total included), so only the default output hides it. ### Steps to Reproduce 1. Build the CLI: cd rmqctl && go build -o rmqctl.exe . 2. Point a context at a Studio server and sign in with the instance credential behind studio.cluster.admin.credentials.<ref>. 3. Run: rmqctl --instance-id <instance> audit list --page-size 5 4. Compare with the structured format: rmqctl --instance-id <instance> audit list --page-size 5 --output json ### What Did You Expect to See? The table naming the page it printed and how to reach the rest - the way the message tools already warn when their results are bounded by resultMayBeTruncated. ### What Did You See Instead? 5 rows (20 by default) and nothing else: stdout carried the rows and only the rows, stderr stayed empty, and the other 181 records were invisible. ### Additional Context Reproduced on e2f815fbf6ee8c9b90e32ce59d6e74f27b0c4ad4 against the instance above with 186 audit rows: $ rmqctl --instance-id local-broker audit list --page-size 5 CLUSTERID DETAIL ERRORMESSAGE ID OPERATIONTYPE OPERATOR RESOURCETYPE RESULT TARGET TIMESTAMP local-broker 181 LIST_TOPIC ... SUCCESS rmq.topic.list 2026-10-15T18:25:39 (4 more rows) $ rmqctl --instance-id local-broker audit list --page-size 5 --output json | python -c "import json,sys; d=json.load(sys.stdin); print({k: v for k, v in d.items() if k != 'items'})" {'page': 1, 'pageSize': 5, 'total': 186} $ rmqctl --instance-id local-broker audit list --page-size 200 error [TOOL_EXECUTION_FAILED]: pageSize must be between 1 and 100 The table renderer is rmqctl/cmd/catalog_renderers.go. It already writes a truncation warning to stderr for rmq.message.query / rmq.message.query_by_topic (the disclosure added in #4779), but the paged tools get no such line, so the incompleteness is only visible in the structured formats. ### 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]
