Traceback (most recent call last):
File "/usr/local/lib/python3.8/dist-packages/OpenRTM_aist/DataFlowComponentBase.py", line 123, in on_execute
ret = self.onExecute(ec_id)
File "/usr/local/share/openrtm-2.0/components/python3/SimpleIO/ConsoleIn.py", line 101, in onExecute
self._outport.write()
File "/usr/local/lib/python3.8/dist-packages/OpenRTM_aist/OutPort.py", line 195, in write
ret = con.write(value)
File "/usr/local/lib/python3.8/dist-packages/OpenRTM_aist/OutPortPushConnector.py", line 283, in write
return self._publisher.write(cdr_data, -1, 0)
File "/usr/local/lib/python3.8/dist-packages/OpenRTM_aist/PublisherFlush.py", line 288, in write
self._retcode = self._consumer.put(data)
File "/home/n-miyamoto2/rtcrostest/./ext/ROSTransport/ROSOutPort.py", line 324, in put
self._topicmgr.removeSubscriberLink(connector.getConnection())
File "/home/n-miyamoto2/rtcrostest/./ext/ROSTransport/ROSTopicManager.py", line 835, in removeSubscriberLink
con.exit()
File "/home/n-miyamoto2/rtcrostest/./ext/ROSTransport/ROSTopicManager.py", line 1336, in exit
self._conn.shutdown(socket.SHUT_RDWR)
OSError: [Errno 107] Transport endpoint is not connected
Identify the Bug
ConsoleInとConsoleOutを起動して、ROSTransportで接続する。 ConsoleOutをkillコマンドで終了させた後、ConsoleInでデータを送信しようとすると、ConsoleInがエラー状態になる。
Description of the Change
ROSTransportで例外が発生する箇所について、ROSTransportの中で例外処理するように修正した。
Verification