install(): apply trace-capture patches even on reinstall
The previous install() short-circuited at the top when _prepare_headers_and_auth was already wrapped, which left the newly added _patch_send_request / _patch_session_call_tool / _patch_execute_on_server helpers unexecuted on any reinstall. That explained why the trace-capture INFO lines never appeared in pallas.log despite the installed _fastagent_patch.py carrying the new code. Restructure install() so the bearer-forwarding block owns its own idempotency guard inline, while the three _patch_* helpers are always invoked — each already has its own 'already patched' guard on the target method, so redundant calls are free and harmless.
This commit is contained in:
@@ -464,17 +464,25 @@ def _patch_execute_on_server() -> None:
|
|||||||
|
|
||||||
|
|
||||||
def install() -> None:
|
def install() -> None:
|
||||||
if getattr(_mcm._prepare_headers_and_auth, "_pallas_forward_patched", False):
|
# NOTE: we do NOT short-circuit on "already patched" at the top of this
|
||||||
return
|
# function — each individual ``_patch_*`` helper owns its own idempotency
|
||||||
|
# guard, and we want all three trace-capture patches to be applied even
|
||||||
|
# when the bearer-forwarding patch was installed in a previous reload.
|
||||||
|
# Previously a top-level guard on ``_prepare_headers_and_auth`` would
|
||||||
|
# return immediately on a reinstall, leaving the trace wrappers missing
|
||||||
|
# silently — which is exactly the failure we chased.
|
||||||
|
if not getattr(
|
||||||
|
_mcm._prepare_headers_and_auth, "_pallas_forward_patched", False
|
||||||
|
):
|
||||||
_refresh_forward_servers()
|
_refresh_forward_servers()
|
||||||
_prepare_headers_and_auth_with_forward._pallas_forward_patched = True # type: ignore[attr-defined]
|
_prepare_headers_and_auth_with_forward._pallas_forward_patched = True # type: ignore[attr-defined]
|
||||||
_mcm._prepare_headers_and_auth = _prepare_headers_and_auth_with_forward
|
_mcm._prepare_headers_and_auth = _prepare_headers_and_auth_with_forward
|
||||||
_patch_send_request()
|
|
||||||
_patch_session_call_tool()
|
|
||||||
_patch_execute_on_server()
|
|
||||||
# INFO so it always appears in the journal at boot — greppable proof
|
# INFO so it always appears in the journal at boot — greppable proof
|
||||||
# that the patch ran before any agent started.
|
# that the patch ran before any agent started.
|
||||||
logger.info(
|
logger.info(
|
||||||
"bearer-forwarding patch installed "
|
"bearer-forwarding patch installed "
|
||||||
"(forward_inbound_auth-aware _prepare_headers_and_auth)"
|
"(forward_inbound_auth-aware _prepare_headers_and_auth)"
|
||||||
)
|
)
|
||||||
|
_patch_send_request()
|
||||||
|
_patch_session_call_tool()
|
||||||
|
_patch_execute_on_server()
|
||||||
|
|||||||
Reference in New Issue
Block a user