This traceback is occasionally produced when sprinter_driver attempts to write to it's serial port.
Traceback (most recent call last):
File "/home/aeva/science/switchprint/switchprint/workers/drivers/sprinter_reprap/monitor.py", line 33, in __trigger
self.__callback()
File "/home/aeva/science/switchprint/switchprint/workers/drivers/sprinter_reprap/monitor.py", line 197, in monitor_event_loop
self.proto.execute_requests()
File "/home/aeva/science/switchprint/switchprint/workers/drivers/sprinter_reprap/protocol.py", line 194, in execute_requests
state = packet.send()
File "/home/aeva/science/switchprint/switchprint/workers/drivers/sprinter_reprap/protocol.py", line 50, in send
self.__serial.write(line+"\n")
File "/home/aeva/science/switchprint/switchprint/workers/drivers/sprinter_reprap/connection.py", line 87, in write
return self.__s.write(data)
File "/usr/lib/python2.7/dist-packages/serial/serialposix.py", line 489, in write
raise SerialException('write failed: %s' % (v,))
serial.serialutil.SerialException: write failed: [Errno 5] Input/output error
This exception should be caught (and likely ignored), but also the driver's internal event loop should be totally halted when the subprocess containing it receives the disconnect event.
From a practical standpoint, the bug as it is doesn't really hurt anything since the event loop is killed and restarted when the device is reconnected.