diff --git a/IPython/parallel/engine/streamkernel.py b/IPython/parallel/engine/streamkernel.py index 8bf6ac3..abdbfe6 100755 --- a/IPython/parallel/engine/streamkernel.py +++ b/IPython/parallel/engine/streamkernel.py @@ -204,10 +204,11 @@ class Kernel(SessionFactory): header = msg['header'] msg_id = header['msg_id'] - - handler = self.control_handlers.get(msg['header']['msg_type'], None) + msg_type = header['msg_type'] + + handler = self.control_handlers.get(msg_type, None) if handler is None: - self.log.error("UNKNOWN CONTROL MESSAGE TYPE: %r"%msg['header']['msg_type']) + self.log.error("UNKNOWN CONTROL MESSAGE TYPE: %r"%msg_type) else: handler(self.control_stream, idents, msg) @@ -383,17 +384,18 @@ class Kernel(SessionFactory): header = msg['header'] msg_id = header['msg_id'] + msg['header']['msg_type'] if self.check_aborted(msg_id): self.aborted.remove(msg_id) # is it safe to assume a msg_id will not be resubmitted? - reply_type = msg['header']['msg_type'].split('_')[0] + '_reply' + reply_type = msg_type.split('_')[0] + '_reply' status = {'status' : 'aborted'} reply_msg = self.session.send(stream, reply_type, subheader=status, content=status, parent=msg, ident=idents) return - handler = self.shell_handlers.get(msg['header']['msg_type'], None) + handler = self.shell_handlers.get(msg_type, None) if handler is None: - self.log.error("UNKNOWN MESSAGE TYPE: %r"%msg['header']['msg_type']) + self.log.error("UNKNOWN MESSAGE TYPE: %r"%msg_type) else: handler(stream, idents, msg) diff --git a/IPython/parallel/tests/test_db.py b/IPython/parallel/tests/test_db.py index f9c08d5..4711d9a 100644 --- a/IPython/parallel/tests/test_db.py +++ b/IPython/parallel/tests/test_db.py @@ -56,8 +56,9 @@ class TestDictBackend(TestCase): msg = self.session.msg('apply_request', content=dict(a=5)) msg['buffers'] = [] rec = init_record(msg) - msg_ids.append(msg['header']['msg_id']) - self.db.add_record(msg['header']['msg_id'], rec) + msg_id = msg['header']['msg_id'] + msg_ids.append(msg_id) + self.db.add_record(msg_id, rec) return msg_ids def test_add_record(self): diff --git a/IPython/zmq/ipkernel.py b/IPython/zmq/ipkernel.py index fb58d29..627e539 100755 --- a/IPython/zmq/ipkernel.py +++ b/IPython/zmq/ipkernel.py @@ -122,6 +122,7 @@ class Kernel(Configurable): """Do one iteration of the kernel's evaluation loop. """ ident,msg = self.session.recv(self.shell_socket, zmq.NOBLOCK) + msg_type = msg['header']['msg_type'] if msg is None: return @@ -133,11 +134,11 @@ class Kernel(Configurable): # Print some info about this message and leave a '--->' marker, so it's # easier to trace visually the message chain when debugging. Each # handler prints its message at the end. - self.log.debug('\n*** MESSAGE TYPE:'+str(msg['header']['msg_type'])+'***') + self.log.debug('\n*** MESSAGE TYPE:'+str(msg_type)+'***') self.log.debug(' Content: '+str(msg['content'])+'\n --->\n ') # Find and call actual handler for message - handler = self.handlers.get(msg['header']['msg_type'], None) + handler = self.handlers.get(msg_type, None) if handler is None: self.log.error("UNKNOWN MESSAGE TYPE:" +str(msg)) else: