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]

Reply via email to