zmuxuny opened a new issue, #7111: URL: https://github.com/apache/rocketmq-dashboard/issues/7111
### 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 rocketmq-studio@127c47b06a268cc74224d5f34c56ec7c36ac0d55 ### Runtime Environment Go 1.27.1 / Linux amd64. Deterministic local tests with an injected HTTP RoundTripper; no real Studio server contacted. ### Connected RocketMQ Cluster Not cluster-dependent; no RocketMQ cluster was contacted. ### Build Toolchain Official Go 1.27.1 toolchain; unchanged module dependencies. ### Describe the Bug The CLI recognizes context.DeadlineExceeded but classifies every remaining net.Error as UNAVAILABLE. Socket and DNS deadline errors can report Timeout() == true without wrapping context.DeadlineExceeded, so actual network timeouts get the wrong machine-readable code. ### Steps to Reproduce 1. Run topic list against an injected local RoundTripper returning &net.OpError{Op: "read", Net: "tcp", Err: os.ErrDeadlineExceeded}. 2. Inspect --output table, json, and yaml diagnostics. 3. Separately normalize &net.DNSError{Err: "i/o timeout", Name: "studio.example", IsTimeout: true}. ### What Did You Expect to See? Report TIMEOUT when net.Error.Timeout() is true, preserving the cause. Non-timeout transport failures should remain UNAVAILABLE; context cancellation must remain CANCELED. ### What Did You See Instead? All three actual App.Execute output formats report UNAVAILABLE for i/o timeout. Three new normalization cases (socket, DNS, and wrapped socket timeout) fail for the same reason. Existing normalization cases pass on unchanged production code. ### Additional Context Searched all-state issues/PRs for rmqctl + net.Error/network timeout/i/o timeout/classification. #4944 covers Ctrl-C cancellation, and #5656 preserves the original stdio failure cause. Neither handles this timeout classification. Only failing regression tests have been added locally so far; production code is unchanged. ### 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]
