docs: update CHANGELOG.md and CONTRIBUTORS.md for A2aEventQueue thread-safety fix (#7604)
CI / benchmark-publish (pull_request) Has been skipped
CI / push-validation (pull_request) Successful in 35s
CI / helm (pull_request) Successful in 42s
CI / build (pull_request) Successful in 59s
CI / lint (pull_request) Successful in 1m6s
CI / quality (pull_request) Successful in 1m40s
CI / security (pull_request) Successful in 1m41s
CI / typecheck (pull_request) Successful in 1m48s
CI / e2e_tests (pull_request) Successful in 5m3s
CI / integration_tests (pull_request) Successful in 5m23s
CI / unit_tests (pull_request) Failing after 6m56s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Successful in 11m29s
CI / status-check (pull_request) Failing after 5s
CI / benchmark-regression (pull_request) Successful in 57m46s
CI / benchmark-publish (pull_request) Has been skipped
CI / push-validation (pull_request) Successful in 35s
CI / helm (pull_request) Successful in 42s
CI / build (pull_request) Successful in 59s
CI / lint (pull_request) Successful in 1m6s
CI / quality (pull_request) Successful in 1m40s
CI / security (pull_request) Successful in 1m41s
CI / typecheck (pull_request) Successful in 1m48s
CI / e2e_tests (pull_request) Successful in 5m3s
CI / integration_tests (pull_request) Successful in 5m23s
CI / unit_tests (pull_request) Failing after 6m56s
CI / docker (pull_request) Has been skipped
CI / coverage (pull_request) Successful in 11m29s
CI / status-check (pull_request) Failing after 5s
CI / benchmark-regression (pull_request) Successful in 57m46s
- Added CHANGELOG.md entry under [Unreleased] > Fixed for the A2aEventQueue threading.Lock guard that prevents RuntimeError on concurrent publish/subscribe - Updated CONTRIBUTORS.md Details section to note HAL 9000's contribution to thread-safety improvements and concurrency hardening Refs: #7604
This commit is contained in:
@@ -133,6 +133,14 @@ The format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
|
||||||
|
- **A2aEventQueue thread-safety** (#7604): Guarded `_subscriptions` and `_events` with a
|
||||||
|
`threading.Lock` to prevent `RuntimeError: dictionary changed size during iteration` when
|
||||||
|
`publish()`, `subscribe_local()`, and `unsubscribe()` are called concurrently from multiple
|
||||||
|
threads. The `publish()` method snapshots the subscriber dict inside the lock and invokes
|
||||||
|
callbacks outside the lock to prevent deadlocks. The `_is_closed` check in `publish()` is
|
||||||
|
performed inside the lock to eliminate a TOCTOU race with concurrent `close()` calls. The
|
||||||
|
`is_closed` property also reads `_is_closed` under the lock for memory-visibility guarantees.
|
||||||
|
|
||||||
- **Validation Gate Empty-Run Guard** (#7508): Fixed `ApplyValidationSummary.all_required_passed`
|
- **Validation Gate Empty-Run Guard** (#7508): Fixed `ApplyValidationSummary.all_required_passed`
|
||||||
returning `True` when zero validations were run, silently bypassing the apply gate. The property
|
returning `True` when zero validations were run, silently bypassing the apply gate. The property
|
||||||
now returns `False` when the validation result set is empty (`is_empty` is `True`), ensuring
|
now returns `False` when the validation result set is empty (`is_empty` is `True`), ensuring
|
||||||
|
|||||||
@@ -14,4 +14,5 @@ Below are some of the specific details of various contributions.
|
|||||||
|
|
||||||
* Jeffrey Phillips Freeman has acted as Lead Developer, daily contributor, and Project Owner.
|
* Jeffrey Phillips Freeman has acted as Lead Developer, daily contributor, and Project Owner.
|
||||||
* Brent E. Edwards has contributed quality assurance, test coverage, and CI pipeline improvements.
|
* Brent E. Edwards has contributed quality assurance, test coverage, and CI pipeline improvements.
|
||||||
|
* HAL 9000 has contributed automated bug fixes, thread-safety improvements, and concurrency hardening including the A2aEventQueue threading.Lock guard (#7604).
|
||||||
* This project was made possible thanks to considerable donation of time, money, and resources by CleverThis, Inc.
|
* This project was made possible thanks to considerable donation of time, money, and resources by CleverThis, Inc.
|
||||||
|
|||||||
Reference in New Issue
Block a user