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

   ## What changed
   
   - stop holding the `LlmConfigService` monitor while an external provider 
model catalog is fetched
   - keep the existing synchronized `getConfig()` snapshot and synchronized 
`saveConfig()` update boundaries
   - add a deterministic concurrency regression covering both configuration 
reads and writes during blocked provider I/O
   - verify the in-flight model request continues using the configuration 
snapshot captured before a concurrent save
   
   ## Why
   
   `listModels()` was synchronized and called the provider while holding the 
same monitor used by `getConfig()` and `saveConfig()`. A slow or stalled 
model-discovery request could therefore block AI chat configuration reads and 
administrator configuration saves for up to the provider timeout, even though 
the network operation no longer accesses mutable service state after obtaining 
its snapshot.
   
   Removing the outer method lock preserves the existing snapshot semantics 
while allowing unrelated configuration operations to proceed.
   
   Closes #1729
   
   ## Validation
   
   - baseline concurrency regression timed out on exact upstream while 
`getConfig()` waited for blocked provider I/O
   - focused read/write/snapshot concurrency regression passed after the change
   - `LlmConfigServiceTest` — 22/22 passed
   - related AI regression suite — 61/61 passed
   - `mvn -DskipTests package` — passed
   - Checkstyle — 0 violations
   - `git diff --check` — 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