solution_challenge_backend / fixes /applied_changes_backend.md
github-actions
Deploy to Hugging Face
c794b6b
|
Raw
History Blame Contribute Delete
1.13 kB

Applied Backend Fixes

  1. WebSocket Concurrency Error Fix:

    • Location: backend/main.py -> ConnectionManager.broadcast and ConnectionManager.broadcast_to_agents.
    • Change: Updated the iterator from self.active_connections (and self.agent_connections) to list(self.active_connections).
    • Reason: In an async environment, yielding execution via await while iterating a list leaves the list open to modification (e.g., another coroutine closing the socket and removing it). Iterating over a copy prevents iteration issues like missing elements or RuntimeError.
  2. Detections History Memory Leak Fix:

    • Location: backend/main.py -> _upsert_detection_sighting.
    • Change: Added _trim_memory_list(detections_history, 500) immediately after appending a new record to detections_history.
    • Reason: Most history arrays in the project use _trim_memory_list to enforce a maximum cap. detections_history was appending arbitrarily, representing an unbounded memory leak if there's a constant influx of unique/unknown person detections over prolonged uptime.