# HG changeset patch # User cmlenz # Date 1139831856 0 # Node ID 5c06259571858664a29b8f30e818005e723fa1d7 # Parent 5d2f3e25feaa092d3808ebea75918eb954a39df3 Fix for #106. Thanks to Walter Bell for the report and patch. diff --git a/bitten/master.py b/bitten/master.py --- a/bitten/master.py +++ b/bitten/master.py @@ -78,6 +78,13 @@ self.queues.append(self.queues.pop(idx)) # Round robin def register(self, handler): + if handler.name in self.handlers: + # The slave is for some reason still registered... this shouldn't + # happen in theory, but apparently it does in the real world (see + # #106). We simply unregister it before trying to register it + # again. + self.unregister(handler) + any_match = False for queue in self.queues: if queue.register_slave(handler.name, handler.info):