brent.edwards
a0c6ecd3ad
fix(di): get_container() permanently caches failed audit subscriber in Singleton provider
...
Introduced a module-level flag _audit_subscriber_initialized to track
whether audit_event_subscriber() has been successfully called. When
get_container() is invoked and the flag is False, the subscriber
initialization is reattempted regardless of whether _container already
exists. On success the flag is set to True so no further attempts
are made; on failure the warning is logged and the flag remains False
so the next get_container() call retries.
Previously, a failed audit subscriber init during the first
get_container() call was permanently cached: _container was set but
the subscriber was never retried. In CLI mode this is masked because
each invocation is a new process, but in long-lived server processes
the audit subscriber would remain unregistered for the process
lifetime.
Also brings in the TDD regression test from issue #1096 (branch
tdd/m6-di-audit-cache-failure) with the @tdd_expected_fail tag
removed, converting it to a normal passing regression guard. Added
an ASV benchmark measuring retry-path performance.
ISSUES CLOSED : #992
Reviewed-by: reviewer-pool-1
Closes #992
Co-authored-by: Brent E. Edwards <brent.edwards@cleverthis.com >
Co-committed-by: Brent E. Edwards <brent.edwards@cleverthis.com >
2026-04-02 16:51:29 +00:00
..
2025-10-31 16:18:53 -04:00
2026-03-11 02:42:13 +00:00
2026-03-12 14:38:57 +00:00
2026-03-03 03:29:31 +00:00
2026-03-10 15:09:03 +00:00
2026-03-05 01:28:50 +00:00
2026-03-05 15:13:19 +00:00
2026-03-08 21:53:21 -04:00
2026-03-08 21:53:21 -04:00
2026-02-14 12:16:39 -05:00
2026-02-13 19:01:55 +05:30
2026-03-30 18:27:59 +00:00
2026-02-24 17:57:18 +00:00
2026-02-18 10:49:26 +00:00
2026-02-25 10:30:42 +00:00
2026-03-17 13:14:37 -04:00
2026-02-19 11:29:34 +00:00
2026-02-22 14:18:24 -05:00
2026-02-22 14:18:24 -05:00
2026-02-17 13:54:27 +00:00
2026-02-26 09:10:35 +00:00
2026-02-25 10:48:05 -05:00
2026-02-25 10:01:57 +00:00
2026-03-08 21:53:21 -04:00
2026-02-20 15:57:21 +00:00
2026-03-30 13:18:07 +01:00
2026-03-30 13:18:07 +01:00
2026-02-20 15:57:21 +00:00
2026-02-28 22:06:57 +00:00
2026-03-12 23:32:48 +00:00
2026-04-02 16:51:29 +00:00
2026-03-10 14:18:04 -04:00
2026-03-25 17:49:06 +00:00
2026-03-03 17:01:57 +00:00
2026-03-17 13:14:37 -04:00
2026-03-26 11:52:52 +00:00
2026-03-24 22:01:48 +00:00
2026-03-17 13:14:37 -04:00
2026-03-17 13:14:37 -04:00
2026-03-17 13:14:37 -04:00
2026-03-03 17:01:57 +00:00
2026-03-31 21:47:12 +00:00
2026-03-03 17:01:57 +00:00
2026-02-22 14:18:24 -05:00
2026-02-21 16:27:40 +00:00
2026-02-18 03:27:00 +00:00
2026-02-26 02:47:14 +00:00
2026-03-21 05:30:01 +00:00
2026-02-12 22:01:51 +00:00
2026-02-22 14:18:24 -05:00
2025-12-11 13:55:55 -05:00
2026-02-18 12:18:03 +00:00
2026-02-25 19:38:43 -05:00
2026-02-24 20:11:42 +00:00
2026-02-20 15:57:21 +00:00
2026-03-06 20:28:37 +00:00
2026-03-26 07:50:09 +00:00
2026-03-17 13:14:37 -04:00
2026-03-08 21:53:21 -04:00
2026-02-25 10:48:05 -05:00
2026-03-01 04:38:30 +00:00
2026-03-02 15:05:20 +00:00
2026-03-01 04:38:30 +00:00
2026-03-12 10:31:37 +00:00
2026-03-21 04:46:45 +00:00
2026-03-05 14:11:23 +00:00
2026-03-30 10:18:19 +00:00
2026-03-05 12:58:57 +00:00
2026-03-05 22:00:15 +00:00
2026-03-03 17:01:57 +00:00
2026-02-25 12:08:01 -05:00
2026-02-16 21:35:54 +00:00
2026-03-08 21:53:21 -04:00
2026-03-02 14:32:31 +00:00
2026-02-13 13:05:20 -05:00
2026-02-13 13:05:20 -05:00
2026-02-20 15:57:21 +00:00
2026-03-17 13:14:37 -04:00
2026-02-22 16:40:06 +00:00
2026-03-26 21:42:37 +00:00
2026-03-26 21:42:37 +00:00
2026-02-23 22:19:19 +00:00
2026-02-26 16:13:44 +00:00
2026-02-26 16:13:44 +00:00
2026-03-03 12:18:27 +00:00
2026-03-05 15:42:20 +00:00
2026-03-08 21:53:21 -04:00
2026-03-17 13:14:37 -04:00
2026-02-25 10:02:38 +00:00
2026-02-20 20:38:53 +00:00
2026-02-25 10:04:31 +00:00
2026-02-25 10:48:05 -05:00
2026-03-02 11:54:53 +00:00
2026-03-08 21:53:21 -04:00
2026-03-21 04:46:45 +00:00
2026-03-30 13:19:08 +00:00
2026-02-21 10:18:26 -05:00
2026-02-21 18:11:31 +00:00
2026-03-04 15:36:34 +00:00
2026-02-20 08:50:08 -05:00
2026-02-22 14:18:24 -05:00
2026-03-08 21:53:21 -04:00
2026-03-27 23:53:22 +00:00
2026-03-03 21:44:20 +00:00
2026-03-21 04:46:45 +00:00
2026-02-20 15:57:21 +00:00
2026-03-08 21:53:21 -04:00
2026-02-22 10:15:25 +00:00
2026-03-06 18:16:47 +00:00
2026-03-26 07:50:09 +00:00
2026-02-25 19:38:43 -05:00
2026-02-25 21:26:19 +00:00
2026-02-26 02:01:47 +00:00
2026-02-27 20:20:13 +00:00
2026-03-12 14:38:57 +00:00
2026-02-25 13:17:26 +00:00
2026-03-03 14:55:58 -05:00
2026-03-19 08:46:46 +00:00
2026-03-08 21:53:21 -04:00
2026-02-20 21:46:46 +00:00
2026-02-20 15:57:21 +00:00
2026-03-31 21:47:12 +00:00
2026-02-21 10:18:26 -05:00
2026-02-20 15:57:21 +00:00
2026-03-26 07:50:09 +00:00
2026-03-08 21:53:21 -04:00
2026-02-22 00:43:08 -05:00
2026-02-22 15:13:43 +00:00
2026-03-21 04:46:45 +00:00
2026-02-27 09:47:10 -05:00
2026-02-17 02:24:35 +00:00
2026-02-17 02:24:35 +00:00
2026-02-22 14:18:24 -05:00
2026-03-30 23:40:36 +01:00
2026-03-08 22:31:40 +00:00
2026-02-20 15:57:21 +00:00
2026-02-25 14:00:04 -05:00
2026-03-08 21:53:21 -04:00
2026-02-16 23:56:55 -05:00
2026-02-18 03:27:00 +00:00
2026-02-18 03:27:00 +00:00
2026-03-09 06:59:15 +00:00
2026-02-17 02:35:20 +00:00
2026-02-22 00:43:08 -05:00
2026-03-09 07:56:38 +00:00
2026-03-08 22:19:40 +00:00
2026-02-27 09:47:10 -05:00
2026-02-23 03:11:12 +00:00
2026-02-16 16:46:54 -05:00
2026-03-26 21:42:37 +00:00
2026-02-22 14:18:24 -05:00
2026-02-23 22:20:44 +00:00
2026-02-23 22:20:44 +00:00
2026-02-17 02:35:20 +00:00
2026-02-18 00:10:15 +00:00
2026-02-16 16:46:54 -05:00
2026-02-15 10:44:14 -05:00
2026-03-19 14:03:17 +00:00
2026-03-18 02:30:00 +00:00
2026-02-18 03:27:00 +00:00
2026-03-10 03:39:32 +00:00
2026-02-15 15:19:09 +00:00
2026-02-15 15:19:09 +00:00
2026-03-18 01:45:25 +00:00
2026-03-11 17:42:13 +00:00
2026-03-03 22:21:14 +00:00
2026-03-02 17:44:18 +00:00
2026-03-04 15:59:15 +00:00
2026-02-27 23:08:55 +00:00
2026-02-20 03:31:43 +00:00
2026-03-06 00:49:33 +00:00
2026-02-21 10:18:26 -05:00
2026-03-21 04:46:45 +00:00
2026-02-22 00:43:08 -05:00
2026-02-21 16:32:03 +00:00
2026-02-25 10:05:57 +00:00
2026-02-26 20:33:20 +00:00
2026-02-13 19:24:24 +00:00
2026-02-19 11:15:18 +00:00
2026-02-25 10:06:27 +00:00
2026-03-30 13:18:07 +01:00
2026-03-08 21:53:21 -04:00
2026-03-02 22:05:53 +00:00
2026-03-12 14:38:57 +00:00
2026-02-20 01:10:19 +00:00
2026-03-10 21:39:31 +00:00
2026-03-26 21:42:37 +00:00
2026-02-14 03:50:40 +00:00
2026-02-22 14:18:24 -05:00
2026-03-05 21:38:55 +00:00
2026-03-08 02:57:44 +00:00
2026-03-20 21:22:10 +00:00
2026-02-22 14:18:24 -05:00
2026-02-24 17:57:18 +00:00
2026-02-20 08:50:08 -05:00
2026-02-26 12:29:49 +00:00
2026-02-21 16:30:40 +00:00
2026-02-27 20:09:26 +00:00
2026-02-14 03:54:14 +00:00
2026-02-17 10:13:19 +00:00
2026-02-27 08:02:48 +00:00
2026-03-31 23:57:39 +00:00
2026-02-19 22:07:56 +00:00
2026-03-02 09:41:25 -05:00
2026-03-27 05:58:35 +00:00
2026-04-01 00:40:46 +00:00
2026-03-27 05:58:35 +00:00
2026-03-27 05:58:35 +00:00
2026-03-11 01:36:06 +00:00
2026-03-08 22:11:49 +00:00
2026-02-16 21:35:54 +00:00
2026-02-20 08:49:30 -05:00
2026-02-14 18:55:48 +00:00
2026-02-22 14:18:24 -05:00
2026-02-17 20:28:20 +00:00
2026-02-21 10:23:31 -05:00
2026-02-22 14:18:24 -05:00
2026-03-04 18:21:19 +00:00
2026-03-05 19:20:39 +00:00
2026-03-11 00:40:07 +00:00
2026-03-04 22:40:34 +00:00
2026-03-26 21:42:37 +00:00
2026-02-20 15:57:21 +00:00
2026-02-25 10:03:21 +00:00
2026-02-20 02:54:08 +00:00
2026-02-25 10:48:05 -05:00