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]

Reply via email to