mirror of
https://github.com/craigerl/aprsd.git
synced 2026-10-09 16:50:31 -04:00
Stability fixes for the critical unhandled-exception findings: * APRSDThread.run() now catches exceptions raised by loop() and keeps the thread alive instead of silently killing it on the first transient error (with a 1s backoff to avoid a hot loop). * Collector.collect() and KeepAliveCollector.check()/log() no longer re-raise producer exceptions. A single failing stats or keepalive producer previously killed the KeepAliveThread, which is the very thread that reports dead threads. * APRSDProcessPacketThread.process_packet() no longer calls .lower() on a None addresse/to_call, which raised AttributeError and silently killed the ProcessPKT thread on malformed or third-party packets. The to_call None-guard now matches the existing guard in the MessagePacket branch.