hermes-agent/tests/plugins/memory
koshaji d3520944c7 fix(openviking): join runtime-autostart thread on shutdown (SIGABRT-at-exit)
`OpenVikingMemoryProvider.shutdown()` joins in-flight writers, deferred-commit
threads, and prefetch threads, but not `_runtime_start_thread` — the tracked
`daemon=True` waiter that runs `_finish_runtime_openviking_start`, which blocks
on network health probes (`_wait_for_openviking_health` polling + a
`_VikingClient.health()` request).

If the local OpenViking runtime is slow or unreachable, that waiter can still
be blocked in network I/O at interpreter exit. CPython then forcibly kills it
during `Py_FinalizeEx` (`PyThread_exit_thread` -> `__pthread_unwind` ->
`abort()`), producing SIGABRT (exit 134) with no traceback — the same daemon-
thread-at-exit failure class fixed for the Honcho provider.

Fix:
- `shutdown()` now joins `_runtime_start_thread` (timeout-bounded) alongside the
  other tracked threads.
- `_wait_for_openviking_health()` gains a `should_stop` callback; the waiter
  passes `lambda: self._shutting_down` so the poll loop bails out promptly once
  `shutdown()` flips the flag, instead of lingering up to the 60s autostart
  timeout and timing out the join (which would leave the thread alive).
- Add tests/plugins/memory/test_openviking_shutdown.py covering the short-circuit
  and the shutdown-joins-runtime-thread behaviour.

(cherry picked from commit 5471ec70210b35462450aa52f0cd483439fffba7)
2026-07-24 13:00:53 +05:30
..
__init__.py
test_byterover_provider.py
test_config_schema.py revert(memory): drop the provider actions extension point 2026-07-10 15:41:52 -04:00
test_hindsight_config_schema.py
test_hindsight_provider.py
test_holographic_auto_extract.py fix(memory): preserve genuine pre-delimiter content in merged compaction rows 2026-07-22 06:59:14 -07:00
test_holographic_retrieval.py
test_holographic_shutdown_closes_db.py
test_holographic_store.py fix(memory): resolve() the shared-connection registry key; symlink test 2026-07-09 18:17:40 -07:00
test_honcho_config_schema.py
test_mem0_backend.py fix(mem0): migrate legacy OSS base URL aliases 2026-07-17 13:49:29 -07:00
test_mem0_providers.py
test_mem0_setup.py fix(mem0): migrate legacy OSS base URL aliases 2026-07-17 13:49:29 -07:00
test_mem0_v3.py fix(mem0): prune dead get_all, wire rerank config default, warn on MEM0_HOST env override 2026-07-08 01:57:11 +05:30
test_memory_lazy_install.py
test_openviking_provider.py fix(openviking): join runtime-autostart thread on shutdown (SIGABRT-at-exit) 2026-07-24 13:00:53 +05:30
test_openviking_shutdown.py fix(openviking): join runtime-autostart thread on shutdown (SIGABRT-at-exit) 2026-07-24 13:00:53 +05:30
test_retaindb_provider.py fix(memory): guard local uploads against credential reads 2026-07-05 03:14:49 -07:00
test_supermemory_provider.py fix(supermemory): complete self-hosted endpoint routing 2026-07-20 00:40:40 -07:00