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

   ### Description
   `AgentCapabilityProbe.binaries()` caches a completed probe round for 60 
seconds, but the cache lookup and refresh are not coordinated. Concurrent 
requests against a cold or expired cache each launch their own three CLI 
lookups. The `AtomicReference` only makes publication atomic, so a burst of 
page loads can still multiply subprocess creation and occupy request workers.
   
   ### Reproduction
   Hold the first `CliBinaryProbe.isAvailable` call open with a latch, then 
issue a second `binaries()` call before releasing it. Both requests enter the 
binary probe before either has populated the cache. The same race recurs when 
the TTL expires.
   
   ### Expected behavior
   Only one caller refreshes a probe round; concurrent callers reuse that 
result. The existing TTL and availability flags remain unchanged.
   
   ### Version
   `rocketmq-studio` at c34535db0819d02f68e50a856cb3d2614f0dc5dd.
   
   The existing #5671 adds sequential cache/flag tests and does not change this 
concurrent refresh behavior. I plan a focused concurrency fix and a separate 
regression test class to avoid conflicting with that test addition.
   


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