fix: detect worker task_done() crash + broaden DB CUCM fallback - #32
Merged
Conversation
…lback The detect worker's "invalid length" and "no CUCM" branches called queue.task_done() and then hit the finally: task_done() as well, since a continue inside the try still runs the finally. With an unreachable SEP phone and no -H this raised "task_done() called too many times" and killed the worker thread. Drop the explicit calls and let the finally own it. Also broaden the no-H CUCM resolution the user asked for: after the exact-MAC lookup misses, fall back to a CUCM host already known in the database (union of credentials/phone_cucm/cluster_servers and mac_prefixes) when exactly one is recorded; if several are, list them and ask for -H rather than guessing. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Follow-up to the SEP-name support in v0.13.0.
Crash fix
--brute-mac -p SEP<MAC>against an unreachable phone with no -H raised:The detect worker's "invalid length" and "no CUCM" branches called
queue.task_done()explicitly and then also hitfinally: task_done()— acontinueinside thetrystill runs thefinally, so the item was acked twice and the worker thread died. Fixed by letting thefinallyown the singletask_done().Broaden DB CUCM fallback (requested)
When
-His absent and the phone is unreachable, after the exact-MAC lookup (get_cucm_for_mac_from_db) misses, fall back to a CUCM host already known in the database (union ofcredentials/phone_cucm/cluster_serversandmac_prefixes):-Hrather than guessing.Testing
threading.excepthookproves the worker no longer raises.🤖 Generated with Claude Code