Bug 754499

Summary: c++ unit test failing - testPeerCompleted (SessionState) and testSendGetReplyList
Product: Red Hat Enterprise MRG Reporter: Petr Matousek <pematous>
Component: qpid-cppAssignee: messaging-bugs <messaging-bugs>
Status: NEW --- QA Contact: MRG Quality Engineering <mrgqe-bugs>
Severity: medium Docs Contact:
Priority: medium    
Version: DevelopmentCC: jross
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: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description Petr Matousek 2011-11-16 17:23:53 UTC
Description of problem:

Unit test testPeerCompleted from SessionState.cpp is failing:

Running 7 test cases...
unit_test_custom: /usr/include/boost/range/iterator_range.hpp:275: IteratorT boost::iterator_range<IteratorT>::begin() const [with IteratorT = __gnu_cxx::__normal_iterator<qpid::framing::AMQFrame*, std::vector<qpid::framing::AMQFrame, std::allocator<qpid::framing::AMQFrame> > >]: Assertion `!is_singular()' failed.
unknown location(0): fatal error in "testPeerConfirmed": signal: SIGABRT (application abort requested)
./SessionState.cpp(173): last checkpoint
unit_test_custom: /usr/include/boost/range/iterator_range.hpp:275: IteratorT boost::iterator_range<IteratorT>::begin() const [with IteratorT = __gnu_cxx::__normal_iterator<qpid::framing::AMQFrame*, std::vector<qpid::framing::AMQFrame, std::allocator<qpid::framing::AMQFrame> > >]: Assertion `!is_singular()' failed.
unknown location(0): fatal error in "testPeerCompleted": signal: SIGABRT (application abort requested)
./SessionState.cpp(203): last checkpoint

*** 2 failures detected in test suite "Master Test Suite"

Version-Release number of selected component (if applicable):
python-qpid-0.12-1.el6.noarch
python-qpid-qmf-0.12-6.el6.i686
qpid-cpp-client-0.12-6.el6.i686
qpid-cpp-client-devel-0.12-6.el6.i686
qpid-cpp-client-rdma-0.12-6.el6.i686
qpid-cpp-client-ssl-0.12-6.el6.i686
qpid-cpp-debuginfo-0.12-6.el6.i686
qpid-cpp-server-0.12-6.el6.i686
qpid-cpp-server-cluster-0.12-6.el6.i686
qpid-cpp-server-devel-0.12-6.el6.i686
qpid-cpp-server-rdma-0.12-6.el6.i686
qpid-cpp-server-ssl-0.12-6.el6.i686
qpid-cpp-server-store-0.12-6.el6.i686
qpid-cpp-server-xml-0.12-6.el6.i686
qpid-java-client-0.10-11.el6.noarch
qpid-java-common-0.10-11.el6.noarch
qpid-java-example-0.10-11.el6.noarch
qpid-java-jca-0.10-11.el6.noarch
qpid-java-jca-zip-0.10-11.el6.noarch
qpid-qmf-0.12-6.el6.i686
qpid-qmf-debuginfo-0.12-6.el6.i686
qpid-qmf-devel-0.12-6.el6.i686
qpid-tests-0.12-1.el6.noarch
qpid-tools-0.12-2.el6.noarch
rh-qpid-cpp-tests-0.12-6.el6.i686
ruby-qpid-qmf-0.12-6.el6.i686

How reproducible:
100%

Steps to Reproduce:
1. SPATH=~/rpmbuild/BUILD/qpid-0.12/cpp/src
2. g++ -Wall -DBOOST_TEST_DYN_LINK -I${SPATH}/tests -I${SPATH} -I/usr/include/qpid-boost ./SessionState.cpp ${SPATH}/tests/unit_test.cpp  -lboost_unit_test_framework -lqpidclient -lqpidmessaging -lqmfconsole -lqpidbroker -o unit_test_custom
3. ./unit_test_custom
  
Actual results:
testPeerCompleted is failing

Expected results:
testPeerCompleted is passing

Additional info:

Comment 1 Petr Matousek 2011-11-16 17:32:15 UTC
reported assertion failures can be reproduced on on  RHEL6.2 i686, on x86_64 architecture I am getting an error:

Running 7 test cases...
unknown location(0): fatal error in "testSendGetReplyList": memory access violation at address: 0xfffffffffffffff8: no mapping at fault address
./SessionState.cpp(137): last checkpoint

*** 1 failure detected in test suite "Master Test Suite"

Comment 2 Frantisek Reznicek 2012-09-13 13:08:36 UTC
Issue is still not fixed as of qpid-cpp*0.14-22:

Entering test case "testPeerCompleted"
unit_test: /usr/include/boost/range/iterator_range.hpp:275: IteratorT boost::iterator_range<IteratorT>::begin() const [with IteratorT = __gnu_cxx::__normal_iterator<qpid::framing::AMQFrame*, std::vector<qpid::framing::AMQFrame, std::allocator<qpid::framing::AMQFrame> > >]: Assertion `!is_singular()' failed.
unknown location(0): fatal error in "testPeerCompleted": signal: SIGABRT (application abort requested)
SessionState.cpp(203): last checkpoint
Leaving test case "testPeerCompleted"

Comment 3 Frantisek Reznicek 2013-01-28 12:30:36 UTC
Both problems persists on 0.18-14:

...
Entering test case "testSendGetReplyList"
unknown location(0): fatal error in "testSendGetReplyList": signal: SIGSEGV, si_code: 0 (memory access violation at address: 0x00000080)
SessionState.cpp(136): last checkpoint
Test is aborted
Leaving test case "testSendGetReplyList"
...

seen on RHEL 6.4 x86_64

...
Entering test case "testPeerConfirmed"
unit_test: /usr/include/boost/range/iterator_range.hpp:275: IteratorT boost::iterator_range<IteratorT>::begin() const [with IteratorT = __gnu_cxx::__normal_iterator<qpid::framing::AMQFrame*, std::vector<qpid::framing::AMQFrame, std::allocator<qpid::framing::AMQFrame> > >]: Assertion `!is_singular()' failed.
unknown location(0): fatal error in "testPeerConfirmed": signal: SIGABRT (application abort requested)
SessionState.cpp(172): last checkpoint
Leaving test case "testPeerConfirmed"
Entering test case "testPeerCompleted"
unit_test: /usr/include/boost/range/iterator_range.hpp:275: IteratorT boost::iterator_range<IteratorT>::begin() const [with IteratorT = __gnu_cxx::__normal_iterator<qpid::framing::AMQFrame*, std::vector<qpid::framing::AMQFrame, std::allocator<qpid::framing::AMQFrame> > >]: Assertion `!is_singular()' failed.
unknown location(0): fatal error in "testPeerCompleted": signal: SIGABRT (application abort requested)
SessionState.cpp(202): last checkpoint
Leaving test case "testPeerCompleted"
...

seen on RHEL 6.4 i386


Packageset:
[root@sgi-xe250-02 qpid_ptest_authentication_krb5]# rpm -qa | grep -E 'qpid-' | sort
MRG-distribution-MRG-Messaging-qpid_test_qpid-config_check_params_bz637751-1.0-3.noarch
python-qpid-0.18-4.el6.noarch
python-qpid-qmf-0.18-14.el6.i686
qpid-cpp-client-0.18-14.el6.i686
qpid-cpp-client-devel-0.18-14.el6.i686
qpid-cpp-client-devel-docs-0.14-22.el6_3.noarch
qpid-cpp-client-rdma-0.18-14.el6.i686
qpid-cpp-client-ssl-0.18-14.el6.i686
qpid-cpp-debuginfo-0.18-14.el6.i686
qpid-cpp-server-0.18-14.el6.i686
qpid-cpp-server-cluster-0.18-14.el6.i686
qpid-cpp-server-devel-0.18-14.el6.i686
qpid-cpp-server-ha-0.18-14.el6.i686
qpid-cpp-server-rdma-0.18-14.el6.i686
qpid-cpp-server-ssl-0.18-14.el6.i686
qpid-cpp-server-store-0.18-14.el6.i686
qpid-cpp-server-xml-0.18-14.el6.i686
qpid-java-client-0.18-7.el6.noarch
qpid-java-common-0.18-7.el6.noarch
qpid-java-example-0.18-7.el6.noarch
qpid-qmf-0.18-14.el6.i686
qpid-qmf-debuginfo-0.18-14.el6.i686
qpid-qmf-devel-0.18-14.el6.i686
qpid-tests-0.18-2.el6.noarch
qpid-tools-0.18-7.el6_3.noarch
rh-qpid-cpp-tests-0.18-14.el6.i686
ruby-qpid-0.7.946106-2.el6.i686
ruby-qpid-qmf-0.18-14.el6.i686