Pipe: Never clear the exceptions for user information & Only record the last exception & Add suggested actions for exceptions#16233
Pipe: Never clear the exceptions for user information & Only record the last exception & Add suggested actions for exceptions#16233Caideyipi wants to merge 18 commits into
Conversation
luoluoyuyu
left a comment
There was a problem hiding this comment.
Review summary
Keeps only the latest pipe exception for display, avoids clearing it automatically, and adds suggested actions. trackException clears then adds a single entry; coordinator meta sync clears exceptions on the agent to avoid stale overwrites.
Please fix failing CI before merge. See inline notes.
| // Here we still keep the map form to allow compatibility with legacy versions | ||
| exceptionMessages.clear(); | ||
| exceptionMessages.add(exceptionMessage); | ||
| lastException.clear(); |
There was a problem hiding this comment.
clear then add enforces a single last exception. If SHOW PIPES now exposes last_exception as a structured column, consider whether getExceptionMessage() (Set toString) should be updated or deprecated for user-facing output.
| .getRuntimeMeta() | ||
| .getConsensusGroupId2TaskMetaMap() | ||
| .values() | ||
| .forEach(PipeTaskMeta::clearExceptionMessages); |
There was a problem hiding this comment.
Clearing exceptions when applying meta from the coordinator prevents old CN-reported errors from overwriting the true last error on the DataNode after restart. Matches the do-not-auto-clear behavior for operators.
Description
As the title said.
Test
This PR has:
for an unfamiliar reader.
for code coverage.
Key changed/added classes (or packages if there are too many classes) in this PR