Commit 1235897
authored
fix: make agentcore-worker-loop compatible with OTEL threading instrumentation (#405)
* fix: make agentcore-worker-loop compatible with OTEL threading instrumentation
When opentelemetry-instrumentation-threading is active (e.g. via
opentelemetry-instrument in Dockerfile CMD), Thread.run() is wrapped to
propagate trace context from the parent thread. This leaks the parent's
running event loop state into the worker thread, causing run_forever()
to raise "RuntimeError: Cannot run the event loop while another loop is
running".
Three changes to _run_worker_loop / _ensure_worker_loop:
1. Clear leaked running-loop state with asyncio._set_running_loop(None)
at the top of the worker thread — this is the critical fix.
2. Create the event loop inside the worker thread (not the parent) to
follow the canonical asyncio pattern and eliminate cross-thread state
leakage.
3. Use threading.Event + loop.call_soon(ready.set) so the parent waits
until the loop is truly running before returning a reference, fixing
a pre-existing race condition.
* style: fix ruff formatting in test file1 parent 180a7c5 commit 1235897
2 files changed
Lines changed: 58 additions & 5 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
530 | 530 | | |
531 | 531 | | |
532 | 532 | | |
533 | | - | |
| 533 | + | |
534 | 534 | | |
535 | 535 | | |
| 536 | + | |
536 | 537 | | |
537 | 538 | | |
538 | 539 | | |
539 | 540 | | |
| 541 | + | |
| 542 | + | |
540 | 543 | | |
541 | 544 | | |
542 | | - | |
543 | | - | |
544 | | - | |
545 | | - | |
| 545 | + | |
| 546 | + | |
| 547 | + | |
| 548 | + | |
| 549 | + | |
| 550 | + | |
| 551 | + | |
| 552 | + | |
| 553 | + | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
| 558 | + | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
| 562 | + | |
| 563 | + | |
546 | 564 | | |
547 | 565 | | |
548 | 566 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2715 | 2715 | | |
2716 | 2716 | | |
2717 | 2717 | | |
| 2718 | + | |
| 2719 | + | |
| 2720 | + | |
| 2721 | + | |
| 2722 | + | |
| 2723 | + | |
| 2724 | + | |
| 2725 | + | |
| 2726 | + | |
| 2727 | + | |
| 2728 | + | |
| 2729 | + | |
| 2730 | + | |
| 2731 | + | |
| 2732 | + | |
| 2733 | + | |
| 2734 | + | |
| 2735 | + | |
| 2736 | + | |
| 2737 | + | |
| 2738 | + | |
| 2739 | + | |
| 2740 | + | |
| 2741 | + | |
| 2742 | + | |
| 2743 | + | |
| 2744 | + | |
| 2745 | + | |
| 2746 | + | |
| 2747 | + | |
| 2748 | + | |
| 2749 | + | |
| 2750 | + | |
| 2751 | + | |
| 2752 | + | |
0 commit comments