##// END OF EJS Templates
gracefully handle bad messages in ipkernel...
MinRK -
Show More
@@ -121,7 +121,11 b' class Kernel(Configurable):'
121 def do_one_iteration(self):
121 def do_one_iteration(self):
122 """Do one iteration of the kernel's evaluation loop.
122 """Do one iteration of the kernel's evaluation loop.
123 """
123 """
124 ident,msg = self.session.recv(self.shell_socket, zmq.NOBLOCK)
124 try:
125 ident,msg = self.session.recv(self.shell_socket, zmq.NOBLOCK)
126 except Exception:
127 self.log.warn("Invalid Message:", exc_info=True)
128 return
125 if msg is None:
129 if msg is None:
126 return
130 return
127
131
@@ -369,7 +373,11 b' class Kernel(Configurable):'
369
373
370 def _abort_queue(self):
374 def _abort_queue(self):
371 while True:
375 while True:
372 ident,msg = self.session.recv(self.shell_socket, zmq.NOBLOCK)
376 try:
377 ident,msg = self.session.recv(self.shell_socket, zmq.NOBLOCK)
378 except Exception:
379 self.log.warn("Invalid Message:", exc_info=True)
380 continue
373 if msg is None:
381 if msg is None:
374 break
382 break
375 else:
383 else:
@@ -396,7 +404,13 b' class Kernel(Configurable):'
396 msg = self.session.send(self.stdin_socket, u'input_request', content, parent)
404 msg = self.session.send(self.stdin_socket, u'input_request', content, parent)
397
405
398 # Await a response.
406 # Await a response.
399 ident, reply = self.session.recv(self.stdin_socket, 0)
407 while True:
408 try:
409 ident, reply = self.session.recv(self.stdin_socket, 0)
410 except Exception:
411 self.log.warn("Invalid Message:", exc_info=True)
412 else:
413 break
400 try:
414 try:
401 value = reply['content']['value']
415 value = reply['content']['value']
402 except:
416 except:
General Comments 0
You need to be logged in to leave comments. Login now