Root cause of setup failure: Reticulum.__init__ calls signal.signal() with no main-thread guard, but we (correctly) initialise off the event loop in an executor thread, where signal.signal() raises ValueError. It failed after setting the __instance singleton, which both broke setup and caused the "Attempt to reinitialise Reticulum" error on every retry. - Temporarily neutralise signal.signal during RNS init so init completes in the executor, and so RNS does not hijack HA's SIGINT/SIGTERM (needed for clean shutdown under Kubernetes). - Unregister RNS's and LXMF's atexit exit handlers, which otherwise persist state with blocking file I/O on the event-loop thread and detach HA's stdout/stderr at interpreter exit (the loop-blocking warnings seen in logs). - Persist RNS/LXMF state ourselves off-loop on the homeassistant_stop event. Documents the remaining non-daemon RNS worker threads as a known shutdown note. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
17 lines
477 B
JSON
17 lines
477 B
JSON
{
|
|
"domain": "reticulum",
|
|
"name": "Reticulum",
|
|
"codeowners": [],
|
|
"config_flow": true,
|
|
"dependencies": [],
|
|
"after_dependencies": ["conversation"],
|
|
"documentation": "https://github.com/tewris/ha-reticulum",
|
|
"integration_type": "hub",
|
|
"iot_class": "local_push",
|
|
"issue_tracker": "https://github.com/tewris/ha-reticulum/issues",
|
|
"loggers": ["RNS", "LXMF"],
|
|
"requirements": ["rns>=0.9.0", "lxmf>=0.6.0"],
|
|
"single_config_entry": true,
|
|
"version": "1.0.2"
|
|
}
|