summaryrefslogtreecommitdiff
path: root/extras
diff options
context:
space:
mode:
authorKenneth Anthony Giusti <kgiusti@apache.org>2010-06-08 16:42:35 +0000
committerKenneth Anthony Giusti <kgiusti@apache.org>2010-06-08 16:42:35 +0000
commit7bc7343d693ac6538635ed4e55ada5722b2070a1 (patch)
treeaa3ef63e018b1bdb0df7a7282d8ba61d82d09fa9 /extras
parentbdc299df1de6ca9dcd093040f00ff965692efeb0 (diff)
downloadqpid-python-7bc7343d693ac6538635ed4e55ada5722b2070a1.tar.gz
QMF: ignore errors when servicing messages over a closed session.
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@952731 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'extras')
-rw-r--r--extras/qmf/src/py/qmf/console.py36
1 files changed, 26 insertions, 10 deletions
diff --git a/extras/qmf/src/py/qmf/console.py b/extras/qmf/src/py/qmf/console.py
index d6b0ef0931..6cfcdc9e31 100644
--- a/extras/qmf/src/py/qmf/console.py
+++ b/extras/qmf/src/py/qmf/console.py
@@ -2390,8 +2390,12 @@ class Broker:
elif agent:
agent._handleQmfV1Message(opcode, seq, mp, ah, codec)
- self.amqpSession.receiver._completed.add(msg.id)
- self.amqpSession.channel.session_completed(self.amqpSession.receiver._completed)
+ # ignore failures as the session may be shutting down...
+ try:
+ self.amqpSession.receiver._completed.add(msg.id)
+ self.amqpSession.channel.session_completed(self.amqpSession.receiver._completed)
+ except:
+ pass
def _v2Cb(self, msg):
"""
@@ -2404,13 +2408,21 @@ class Broker:
if 'qmf.opcode' in ah:
opcode = ah['qmf.opcode']
if mp.content_type == "amqp/list":
- content = codec.read_list()
- if not content:
- content = []
+ try:
+ content = codec.read_list()
+ if not content:
+ content = []
+ except:
+ # malformed list - ignore
+ content = None
elif mp.content_type == "amqp/map":
- content = codec.read_map()
- if not content:
- content = {}
+ try:
+ content = codec.read_map()
+ if not content:
+ content = {}
+ except:
+ # malformed map - ignore
+ content = None
else:
content = None
@@ -2433,8 +2445,12 @@ class Broker:
agent = self.agents[agent_addr]
agent._handleQmfV2Message(opcode, mp, ah, content)
- self.amqpSession.receiver._completed.add(msg.id)
- self.amqpSession.channel.session_completed(self.amqpSession.receiver._completed)
+ # ignore failures as the session may be shutting down...
+ try:
+ self.amqpSession.receiver._completed.add(msg.id)
+ self.amqpSession.channel.session_completed(self.amqpSession.receiver._completed)
+ except:
+ pass
def _exceptionCb(self, data):
self.connected = False