Aias00 opened a new issue, #7017:
URL: https://github.com/apache/rocketmq-dashboard/issues/7017

   ## Evidence
   On rocketmq-studio c34535db0, AgentRunRegistry.publish synchronously calls 
deliver for every observer. AgentStreamSession.sendAgent invokes blocking 
SseEmitter.send on that caller thread. A latch-controlled emitter with two real 
sessions confirmed that while the first emitter blocks, the healthy observer 
receives zero frames and publish cannot return; releasing it resumes both. No 
production-network latency claim is made.
   
   ## Design and implementation
   Isolate each observer transport behind an ordered sender with a bounded 
pending-frame budget. Producer and shared heartbeat/flush scheduler must only 
enqueue. Preserve replay ordering/dedup and drain queued frames before done. An 
overloaded or failed observer is detached explicitly without stopping the run 
or other observers. Sender tasks, admission, byte/frame limits and terminal 
cleanup must be bounded; do not introduce an unbounded executor or unbounded 
per-frame allocation. Keep the current SSE wire protocol and add deterministic 
blocked-emitter, ordering, overflow and lifecycle regressions.
   
   ## Validation
   Java21 transport/registry/service/executor tests, Checkstyle and a real 
blocked-write transport check if supported locally. No new dependencies.


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