FrankChen021 opened a new pull request, #19810:
URL: https://github.com/apache/druid/pull/19810

   ## What changed
   
   - move executor file-lock retry sleeps outside the lifecycle monitor while 
keeping channel creation, lock attempts, and lock publication synchronized
   - move GCE compute-service retry sleeps outside the autoscaler monitor
   - make the cached GCE service visible across threads and retain single 
initialization with a synchronized double check
   
   ## Why
   
   Both retry loops called `Thread.sleep` while holding an object monitor. A 
slow file-lock acquisition or delayed GCE service creation could therefore 
block unrelated lifecycle or autoscaler operations and triggered CodeQL's 
`java/sleep-with-lock-held` rule.
   
   ## Impact
   
   Retry timing and timeout behavior remain unchanged, but other threads no 
longer wait behind sleeping retry loops. Concurrent executor starts are still 
rejected, and the GCE compute service is still initialized at most once.
   
   ## Validation
   
   - `ExecutorLifecycleConfigTest` (1 test)
   - `GceAutoScalerTest` (12 tests)
   - Maven `validate` / Checkstyle for `indexing-service` and 
`extensions-contrib/gce-extensions`
   - `git diff --check`
   
   Fixes CodeQL alerts 2886 and 2887.
   


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


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to