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]
