diff --git a/net_alerter/net_alerter.py b/net_alerter/net_alerter.py index d9eb169..6f79466 100644 --- a/net_alerter/net_alerter.py +++ b/net_alerter/net_alerter.py @@ -151,8 +151,7 @@ def _check_churn(mac: str, ip: str) -> bool: events.append(now) _churn_tracker[mac] = events if len(events) >= CHURN_THRESHOLD: - with known_lock: - infrastructure_ips.add(ip) + infrastructure_ips.add(ip) logging.info(f"Churn suppression: {ip} (MAC:{mac}) cycled {len(events)}x in {CHURN_WINDOW_SEC//60}min — auto-added to infrastructure") return True return False diff --git a/net_alerter/test_net_alerter.py b/net_alerter/test_net_alerter.py index 3d4741e..bebd48f 100644 --- a/net_alerter/test_net_alerter.py +++ b/net_alerter/test_net_alerter.py @@ -39,6 +39,7 @@ def cleanup_after_each_test(): net_alerter.departure_timers.clear() net_alerter.known_devices.clear() net_alerter.last_departed_time.clear() + net_alerter._churn_tracker.clear() cleanup_flap_state() # Force garbage collection to ensure threads are cleaned up import gc