Interrupting a SIMULATE query using ctrl+c causes an IOError: [Errno 32] Broken pipe, presumably due to the cached server breaking as a result of the interrupt.
The IOError can be repaired by removing the offending query server from the cache:
del bdb.backends['loom']._cache[bdb][1]
We should wrap the line server._predict(reader, num_samples, writer, False) in the stack trace below around a try-except block which captures the IOError and resets the server in the event that the pipe is broken.
Interrupting a
SIMULATE
query usingctrl+c
causes anIOError: [Errno 32] Broken pipe
, presumably due to the cached server breaking as a result of the interrupt.The
IOError
can be repaired by removing the offending query server from the cache:We should wrap the line
server._predict(reader, num_samples, writer, False)
in the stack trace below around atry-except
block which captures the IOError and resets the server in the event that the pipe is broken.============ Full stack trace