Closed nuriozalp closed 9 years ago
hello nuriozalp, can you explain when the synchronization die? Can you post an error message? Normally the master_sync subscribes to the local master_discovery (topic: changes). On changes a connection to remote master_discovery will be created (each time) using pythons XML-RPC.
hello, Problem is based on TCP timeout. Your process is getting die. Because of this never subscribe or connect to anything. Now i dont have error message but i controlled before this error in your code.
sorry, I cannot reproduce this issue :-( does it die while starting? I need an error message or a position in code...
when sycn has fail the last called function is at below. And error like TCP timeout.
def stop(self): ''' Stops running thread. ''' rospy.logdebug(" SyncThread[%s]: stop request", self.name) with self.__lock_intern: if not self._update_timer is None: self._update_timer.cancel() self._unreg_on_finish() rospy.logdebug(" SyncThread[%s]: stop exit", self.name)
this method is called, if the master was removed by master_discovery or at the end. The master_discovery removes the remote masters if 300 sec no messages are received from them. Also the master is added, if a message is then received. You can disable this by setting the remove_after
parameter of master_discovery to zero.
Actually, connection errors are printed to std output, but the node should not die...
Can you reproduce this behavior?
Do you have still problems with synchronization?
When conneciton time out your master synchronization kill itself. But Master Discovery continue to wkorking. Can you restart your master synchronization when it take a message from master discovery. Maybe you can write a subscribe to discovery node or when it restart to take any message from discovery it can restart master synchronization again. We use your project at our project. İf ı know phyton well i would do it myself.