From 593eeaf9eaeea534ee699bf8becff390f1e2150b Mon Sep 17 00:00:00 2001 From: Kovid Goyal Date: Tue, 8 Dec 2020 10:24:09 +0530 Subject: [PATCH] Retry on broken pipe when writing to control --- src/calibre/srv/loop.py | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/calibre/srv/loop.py b/src/calibre/srv/loop.py index a237244902..8005dc1c7c 100644 --- a/src/calibre/srv/loop.py +++ b/src/calibre/srv/loop.py @@ -648,8 +648,13 @@ class ServerLoop(object): if iswindows: self.control_in.sendall(what) else: - self.control_in.write(what) - self.control_in.flush() + try: + self.control_in.write(what) + self.control_in.flush() + except BrokenPipeError: + self.create_control_connection() + self.control_in.write(what) + self.control_in.flush() def wakeup(self): self.write_to_control(WAKEUP)