Bug 1178669

Summary: custom_py_units.queue.HLAPITests.test_message_groups_key_values triggers qpid.messaging internal error via CodecException
Product: Red Hat Enterprise MRG Reporter: Frantisek Reznicek <freznice>
Component: python-qpidAssignee: messaging-bugs <messaging-bugs>
Status: NEW --- QA Contact: Messaging QE <messaging-qe-bugs>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 2.5CC: jross, pematous
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Frantisek Reznicek 2015-01-05 09:43:28 UTC
Description of problem:

custom_py_units.queue.HLAPITests.test_message_groups_key_values triggers qpid.messaging internal error via CodecException.

The test is trying multiple message group key values:

    keys = [ ''.join([random.choice(string.ascii_letters + string.digits) 
                                 for i in range(random.randint(1,128))]),
             str(random.randint(1000,9999))*random.randint(1,64),
             'key containing white spaces', '`!:;~!@#$^&*()_+\"', '""' ]

Sometimes when enqueing test ends with Internal Error / CodecException: Cannot encode 256 as uint8, see details below.


Version-Release number of selected component (if applicable):
2.5.9
python-qpid-0.18-13.el5_10 qpid-cpp*-0.18-36.el5_10 qpid-qmf*-0.18-29.el5_10


How reproducible:
>50%

Steps to Reproduce:
1. start broker
2. run custom QE message groups unit tests
3. custom_py_units.queue.HLAPITests.test_message_groups_key_values likely 

Actual results:
  custom_py_units.queue.HLAPITests.test_message_groups_key_values sometimes fails

Expected results:
  custom_py_units.queue.HLAPITests.test_message_groups_key_values consistently PASS.

Additional info:


[14:01:38] ...Executing: custom_py_units.HLAPITests.test_message_groups
custom_py_units.queue.HLAPITests.test_message_groups_bz786875 ........... pass
custom_py_units.queue.HLAPITests. \
    test_message_groups_clients_exclusivity .............................
MARK-LWD-LOOP -- 2014-11-19 14:01:58 --
 pass
custom_py_units.queue.HLAPITests.test_message_groups_key_values .........
MARK-LWD-LOOP -- 2014-11-19 14:06:57 --
 fail
Error during test:  Traceback (most recent call last):
    File "/usr/bin/qpid-python-test", line 340, in run
      phase()
    File "/mnt/tests/distribution/MRG/Messaging/qpid_ptest_unit_tests/custom_py_units/queue.py", line 2444, in test_message_groups_key_values
      msg_cnt = self.enqueue(count=1, group_id="A", key=key)
    File "/mnt/tests/distribution/MRG/Messaging/qpid_ptest_unit_tests/custom_py_units/testlib.py", line 414, in enqueue
      sender.send(msg)
    File "<string>", line 6, in send
    File "/usr/lib/python2.4/site-packages/qpid/messaging/endpoints.py", line 879, in send
      self.sync(timeout=timeout)
    File "<string>", line 6, in sync
    File "/usr/lib/python2.4/site-packages/qpid/messaging/endpoints.py", line 890, in sync
      if not self._ewait(lambda: self.acked >= mno, timeout=timeout):
    File "/usr/lib/python2.4/site-packages/qpid/messaging/endpoints.py", line 804, in _ewait
      result = self.session._ewait(lambda: self.error or predicate(), timeout)
    File "/usr/lib/python2.4/site-packages/qpid/messaging/endpoints.py", line 571, in _ewait
      result = self.connection._ewait(lambda: self.error or predicate(), timeout)
    File "/usr/lib/python2.4/site-packages/qpid/messaging/endpoints.py", line 214, in _ewait
      self.check_error()
    File "/usr/lib/python2.4/site-packages/qpid/messaging/endpoints.py", line 207, in check_error
      raise self.error
  InternalError: Traceback (most recent call last):
    File "/usr/lib/python2.4/site-packages/qpid/messaging/driver.py", line 532, in dispatch
      self.engine.dispatch()
    File "/usr/lib/python2.4/site-packages/qpid/messaging/driver.py", line 834, in dispatch
      self.process(ssn)
    File "/usr/lib/python2.4/site-packages/qpid/messaging/driver.py", line 1082, in process
      self.send(snd, msg)
    File "/usr/lib/python2.4/site-packages/qpid/messaging/driver.py", line 1310, in send
      sst.write_cmd(xfr, msg_acked, sync=msg._sync)
    File "/usr/lib/python2.4/site-packages/qpid/messaging/driver.py", line 158, in write_cmd
      self.write_op(cmd)
    File "/usr/lib/python2.4/site-packages/qpid/messaging/driver.py", line 171, in write_op
      self.driver.write_op(op)
    File "/usr/lib/python2.4/site-packages/qpid/messaging/driver.py", line 703, in write_op
      self._op_enc.write(op)
    File "/usr/lib/python2.4/site-packages/qpid/framing.py", line 226, in write
      hdrs += self.encode_compound(h)
    File "/usr/lib/python2.4/site-packages/qpid/framing.py", line 244, in encode_compound
      sc.write_compound(op)
    File "/usr/lib/python2.4/site-packages/qpid/codec010.py", line 327, in write_compound
      sc.write_fields(op)
    File "/usr/lib/python2.4/site-packages/qpid/codec010.py", line 365, in write_fields
      enc(value)
    File "/usr/lib/python2.4/site-packages/qpid/codec010.py", line 257, in write_map
      sc.write(string.joinfields(map(self._write_map_elem, m.keys(), m.values()), ""))
    File "/usr/lib/python2.4/site-packages/qpid/codec010.py", line 248, in _write_map_elem
      sc.write_str8(k)
    File "/usr/lib/python2.4/site-packages/qpid/codec010.py", line 185, in write_str8
      self.write_vbin8(s.encode("utf8"))
    File "/usr/lib/python2.4/site-packages/qpid/codec010.py", line 179, in write_vbin8
      self.write_uint8(len(b))
    File "/usr/lib/python2.4/site-packages/qpid/codec010.py", line 89, in write_uint8
      raise CodecException("Cannot encode %d as uint8" % n)
  CodecException: Cannot encode 256 as uint8
custom_py_units.queue.HLAPITests.test_message_groups_move ............... pass
custom_py_units.queue.HLAPITests.test_message_groups_move_m ............. pass
custom_py_units.queue.HLAPITests.test_message_groups_purge .............. pass
custom_py_units.queue.HLAPITests.test_message_groups_purge_m ............ pass
custom_py_units.queue.HLAPITests. \
    test_message_groups_query_and_timestamps ............................ pass
custom_py_units.queue.HLAPITests. \
    test_message_groups_query_and_timestamps_m .......................... pass
custom_py_units.queue.HLAPITests.test_message_groups_reroute ............ pass
custom_py_units.queue.HLAPITests.test_message_groups_reroute_m .......... pass
custom_py_units.queue.HLAPITests. \
    test_message_groups_sequenced_consumers_auto_ack .................... pass
custom_py_units.queue.HLAPITests. \
    test_message_groups_sequenced_consumers_auto_ack_m .................. pass
custom_py_units.queue.HLAPITests. \
    test_message_groups_sequenced_consumers_common ...................... pass
custom_py_units.queue.HLAPITests. \
    test_message_groups_sequenced_consumers_common_m .................... pass
custom_py_units.queue.HLAPITests. \
    test_message_groups_sequenced_consumers_simple ...................... pass
custom_py_units.queue.HLAPITests. \
    test_message_groups_sequenced_consumers_simple_m .................... pass
custom_py_units.queue.HLAPITests.test_message_groups_sticky_consumes .... pass
custom_py_units.queue.HLAPITests.test_message_groups_transactions ....... pass
custom_py_units.queue.HLAPITests.test_message_groups_ungrouped .......... pass
custom_py_units.queue.HLAPITests.test_message_groups_ungrouped_m ........
MARK-LWD-LOOP -- 2014-11-19 14:16:58 --
 pass
Totals: 23 tests, 20 passed, 0 skipped, 2 ignored, 1 failed
[14:17:33] ..exited with ecode:1