youngkermit8-coder opened a new pull request, #1518:
URL: https://github.com/apache/rocketmq-dashboard/pull/1518

   ## What is the purpose of the change
   
   Closes #1517.
   
   `ClaudeCodeAgentProvider.stream()` previously consumed stdout synchronously 
to EOF before starting its timed `waitFor`. A silent or hung CLI could 
therefore block forever without reaching the advertised timeout. Because stderr 
was not drained concurrently, sufficiently large diagnostics could also fill 
the pipe buffer and deadlock the child process.
   
   This is the remaining Claude streaming portion of the broader problem 
previously described in closed Issue #959. The non-streaming `complete()` path 
was hardened in #1056, while `stream()` retained the unsafe ordering.
   
   ## Brief changelog
   
   - Drain Claude stdout and stderr concurrently on JDK 21 virtual threads.
   - Start the process timeout immediately after launch.
   - Destroy timed-out CLI processes and retain the structured 504 gateway 
error.
   - Bound post-exit stream draining so output-reader failures cannot wait 
indefinitely.
   - Add deterministic tests for a stderr payload larger than the pipe buffer 
and for a silent process exceeding a one-second test timeout.
   
   ## Verification
   
   Validated in an isolated worktree on top of #1502 (`c00a5ef`):
   
   - `ClaudeCodeAgentProviderTest`: 2 tests passed.
   - Checkstyle: 0 violations.
   - Final main and test sources compiled successfully.
   - Spring Boot JAR packaging passed.
   


-- 
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