Gordon Sim created QPID-5700:
--------------------------------
Summary: heartbeat interleaved with message frames causes decode
error
Key: QPID-5700
URL: https://issues.apache.org/jira/browse/QPID-5700
Project: Qpid
Issue Type: Bug
Components: Python Client
Affects Versions: 0.26
Reporter: Gordon Sim
Priority: Critical
Heartbeat controls are sent on a separate 'track' from the message transfer
command and accompanying header and content segments.
The OpDecoder is fed the segments as they occur, but does not account for the
possibility of interleaving of assemblies on different tracks.
Example data and exception below:
{noformat}
2014-04-13 04:10:21.866 3963 DEBUG qpid.messaging.io.raw [-] READ[477e7a0]:
'\x0b\x01\x00\x16\x00\x01\x00\x00\x00\x00\x00\x00\x04\x01\x01\x00\x07\x00\x010\x01\x00\x0f\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x01\n\x00\x00\x03\x02\x00\x95\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00K\x04\x03\x10\x01\x08amqp/map\x00\x00\x00:\x00\x00\x00\x01\x0cqpid.subject\x95\x00&reply_9fc61f642ec14f8785ebc4ca7635b4e6\x00\x00\x006\x04\x01\x00\x03\namq.direct&reply_9fc61f642ec14f8785ebc4ca7635b4e6\x07\x03\x01\xcb\x00\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\xbb\x00\x00\x00\x02\x0coslo.message\x95\x01\x94{"_unique_id":
"a4b5b02a187c4313826f647627e82200", "failure": null, "result": {"binary":
"nova-compute", "deleted": 0, "created_at": "2014-03-16T21:22:19.000000",
"updated_at": "2014-04-13T09:10:21.862224", "report_count": 210969, "topic":
"compute", "host": "nova51.rhelpoc.local", "disabled": false, "deleted_at":
null, "disabled_reason": null, "id": 42}, "_msg_id":
"4135f2273eb3459fbc5cba773faac851"}\x0coslo.version\x95\x00\x032.0' readable
/usr/lib/python2.6/site-packages/qpid/messaging/driver.py:434
2014-04-13 04:10:21.879 3963 ERROR root [-] Unexpected exception occurred 1
time(s)... retrying.
2014-04-13 04:10:21.879 3963 TRACE root Traceback (most recent call last):
2014-04-13 04:10:21.879 3963 TRACE root File
"/usr/lib/python2.6/site-packages/nova/openstack/common/excutils.py", line 78,
in inner_func
2014-04-13 04:10:21.879 3963 TRACE root return infunc(*args, **kwargs)
2014-04-13 04:10:21.879 3963 TRACE root File
"/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/impl_qpid.py", line
698, in _consumer_thread
2014-04-13 04:10:21.879 3963 TRACE root self.consume()
2014-04-13 04:10:21.879 3963 TRACE root File
"/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/impl_qpid.py", line
689, in consume
2014-04-13 04:10:21.879 3963 TRACE root it.next()
2014-04-13 04:10:21.879 3963 TRACE root File
"/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/impl_qpid.py", line
606, in iterconsume
2014-04-13 04:10:21.879 3963 TRACE root yield self.ensure(_error_callback,
_consume)
2014-04-13 04:10:21.879 3963 TRACE root File
"/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/impl_qpid.py", line
540, in ensure
2014-04-13 04:10:21.879 3963 TRACE root return method(*args, **kwargs)
2014-04-13 04:10:21.879 3963 TRACE root File
"/usr/lib/python2.6/site-packages/nova/openstack/common/rpc/impl_qpid.py", line
597, in _consume
2014-04-13 04:10:21.879 3963 TRACE root nxt_receiver =
self.session.next_receiver(timeout=timeout)
2014-04-13 04:10:21.879 3963 TRACE root File "<string>", line 6, in
next_receiver
2014-04-13 04:10:21.879 3963 TRACE root File
"/usr/lib/python2.6/site-packages/qpid/messaging/endpoints.py", line 665, in
next_receiver
2014-04-13 04:10:21.879 3963 TRACE root if self._ecwait(lambda:
self.incoming, timeout):
2014-04-13 04:10:21.879 3963 TRACE root File
"/usr/lib/python2.6/site-packages/qpid/messaging/endpoints.py", line 50, in
_ecwait
2014-04-13 04:10:21.879 3963 TRACE root result = self._ewait(lambda:
self.closed or predicate(), timeout)
2014-04-13 04:10:21.879 3963 TRACE root File
"/usr/lib/python2.6/site-packages/qpid/messaging/endpoints.py", line 571, in
_ewait
2014-04-13 04:10:21.879 3963 TRACE root result =
self.connection._ewait(lambda: self.error or predicate(), timeout)
2014-04-13 04:10:21.879 3963 TRACE root File
"/usr/lib/python2.6/site-packages/qpid/messaging/endpoints.py", line 214, in
_ewait
2014-04-13 04:10:21.879 3963 TRACE root self.check_error()
2014-04-13 04:10:21.879 3963 TRACE root File
"/usr/lib/python2.6/site-packages/qpid/messaging/endpoints.py", line 207, in
check_error
2014-04-13 04:10:21.879 3963 TRACE root raise self.error
2014-04-13 04:10:21.879 3963 TRACE root InternalError: Traceback (most recent
call last):
2014-04-13 04:10:21.879 3963 TRACE root File
"/usr/lib/python2.6/site-packages/qpid/messaging/driver.py", line 667, in write
2014-04-13 04:10:21.879 3963 TRACE root
self._op_dec.write(*self._seg_dec.read())
2014-04-13 04:10:21.879 3963 TRACE root File
"/usr/lib/python2.6/site-packages/qpid/framing.py", line 269, in write
2014-04-13 04:10:21.879 3963 TRACE root if self.op.headers is None:
2014-04-13 04:10:21.879 3963 TRACE root AttributeError: 'NoneType' object has
no attribute 'headers'
{noformat}
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]