Skip to content

Conversation

@LeftHandCold
Copy link
Contributor

What type of PR is this?

  • API-change
  • BUG
  • Improvement
  • Documentation
  • Feature
  • Test and CI
  • Code Refactoring

Which issue(s) this PR fixes:

issue https://github.com/matrixorigin/matrixflow/issues/8069

What this PR does / why we need it:

When all CN servers fail due to handshake timeout (typically caused by too many active transactions), return a more specific error message 'all CN servers are busy, possibly due to too many active transactions' instead of the generic 'no available CN server'.

This helps users understand that CN servers are actually running but overloaded, rather than being down or unreachable.

Changes:

  • Add timeout flag to connectErr to track timeout failures
  • Add newTimeoutConnectErr() for creating timeout-specific errors
  • Add isTimeoutErr() to check if error is timeout-related
  • Track timeout CN servers separately in BuildConnWithServer()
  • Return allCNServersBusyErr when all failures are due to timeout
  • Add test case for timeout error handling

When all CN servers fail due to handshake timeout (typically caused by
too many active transactions), return a more specific error message
'all CN servers are busy, possibly due to too many active transactions'
instead of the generic 'no available CN server'.

This helps users understand that CN servers are actually running but
overloaded, rather than being down or unreachable.

Changes:
- Add timeout flag to connectErr to track timeout failures
- Add newTimeoutConnectErr() for creating timeout-specific errors
- Add isTimeoutErr() to check if error is timeout-related
- Track timeout CN servers separately in BuildConnWithServer()
- Return allCNServersBusyErr when all failures are due to timeout
- Add test case for timeout error handling
@matrix-meow matrix-meow added size/L Denotes a PR that changes [500,999] lines and removed size/M Denotes a PR that changes [100,499] lines labels Jan 29, 2026
This reverts commit c8c91f5.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

kind/enhancement size/M Denotes a PR that changes [100,499] lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants