[ 
https://issues.apache.org/jira/browse/ZOOKEEPER-4733?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Kezhu Wang reassigned ZOOKEEPER-4733:
-------------------------------------

    Assignee: whyer

>  non-return function error and asan error in CPPUNIT TESTs
> ----------------------------------------------------------
>
>                 Key: ZOOKEEPER-4733
>                 URL: https://issues.apache.org/jira/browse/ZOOKEEPER-4733
>             Project: ZooKeeper
>          Issue Type: Bug
>          Components: c client, tests
>    Affects Versions: 3.8.2
>         Environment: gcc (Debian 6.3.0-18+deb9u1) 6.3.0 20170516
>            Reporter: whyer
>            Assignee: whyer
>            Priority: Major
>              Labels: pull-request-available
>             Fix For: 3.10.0, 3.9.3
>
>          Time Spent: 1h 50m
>  Remaining Estimate: 0h
>
> when enable Werror=return-type check in gcc, the following error occurs:
> {quote}zookeeper/zookeeper-client/zookeeper-client-c/tests/ZooKeeperQuorumServer.cc:
>  In static member function ‘static std::vector<ZooKeeperQuorumServer*> 
> ZooKeeperQuorumServer::getCluster(uint32_t, 
> ZooKeeperQuorumServer::tConfigPairs, std::__cxx11::string)’:
> zookeeper/zookeeper-client/zookeeper-client-c/tests/ZooKeeperQuorumServer.cc:230:1:
>  error: control reaches end of non-void function [-Werror=return-type]
>  }{quote}
> when enable asan option on cppunit test, the following error occurs:
> {quote}1: 
> Zookeeper_reconfig::testMigrationCycle=================================================================
> 1: ==415554==ERROR: AddressSanitizer: heap-buffer-overflow on address 
> 0x60d00000cf6f at pc 0x560905cbbd12 bp 0x7ffe32d10af0 sp 0x7ffe32d10ae8
> 1: READ of size 1 at 0x60d00000cf6f thread T0
> 1:     #0 0x560905cbbd11 in Zookeeper_reconfig::testMigrationCycle() 
> zookeeper/zookeeper-client/zookeeper-client-c/tests/TestReconfig.cc:502
> 1:     #1 0x560905cc21a1 in 
> CppUnit::TestCaller<Zookeeper_reconfig>::runTest() 
> /usr/include/cppunit/TestCaller.h:166
> 1:     #2 0x7fb8248815b1 in CppUnit::TestCaseMethodFunctor::operator()() 
> const (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x235b1)
> 1:     #3 0x7fb824877eb2 in 
> CppUnit::DefaultProtector::protect(CppUnit::Functor const&, 
> CppUnit::ProtectorContext const&) 
> (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x19eb2)
> 1:     #4 0x7fb82487e7e1 in CppUnit::ProtectorChain::protect(CppUnit::Functor 
> const&, CppUnit::ProtectorContext const&) 
> (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x207e1)
> 1:     #5 0x7fb824886e4f in CppUnit::TestResult::protect(CppUnit::Functor 
> const&, CppUnit::Test*, std::__cxx11::basic_string<char, 
> std::char_traits<char>, std::allocator<char> > const&) 
> (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x28e4f)
> 1:     #6 0x7fb82488138f in CppUnit::TestCase::run(CppUnit::TestResult*) 
> (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x2338f)
> 1:     #7 0x7fb8248818e2 in 
> CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) 
> (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x238e2)
> 1:     #8 0x7fb8248817fd in CppUnit::TestComposite::run(CppUnit::TestResult*) 
> (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x237fd)
> 1:     #9 0x7fb8248818e2 in 
> CppUnit::TestComposite::doRunChildTests(CppUnit::TestResult*) 
> (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x238e2)
> 1:     #10 0x7fb8248817fd in 
> CppUnit::TestComposite::run(CppUnit::TestResult*) 
> (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x237fd)
> 1:     #11 0x7fb824886d71 in CppUnit::TestResult::runTest(CppUnit::Test*) 
> (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x28d71)
> 1:     #12 0x7fb82488947d in CppUnit::TestRunner::run(CppUnit::TestResult&, 
> std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> 
> > const&) (/usr/lib/x86_64-linux-gnu/libcppunit-1.13.so.0+0x2b47d)
> 1:     #13 0x560905c918a5 in main 
> zookeeper/zookeeper-client/zookeeper-client-c/tests/TestDriver.cc:152
> 1:     #14 0x7fb8230b42e0 in __libc_start_main 
> (/lib/x86_64-linux-gnu/libc.so.6+0x202e0)
> 1:     #15 0x560905c914c9 in _start 
> (build/zookeeper/zookeeper-client/zookeeper-client-c/zktest+0x154c9)
> 1: 
> 1: 0x60d00000cf6f is located 1 bytes to the left of 138-byte region 
> [0x60d00000cf70,0x60d00000cffa)
> 1: allocated by thread T0 here:
> 1:     #0 0x7fb824b5fbf0 in operator new(unsigned long) 
> (/usr/lib/x86_64-linux-gnu/libasan.so.3+0xc2bf0)
> 1:     #1 0x7fb823a5f1f6  (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x1111f6)
> 1:     #2 0x7fb823a5bcb9 in std::ostream& std::ostream::_M_insert<unsigned 
> long>(unsigned long) (/usr/lib/x86_64-linux-gnu/libstdc++.so.6+0x10dcb9)
> 1:     #3 0x7ffe32d1090f  (<unknown module>)
> 1: 
> 1: SUMMARY: AddressSanitizer: heap-buffer-overflow 
> zookeeper/zookeeper-client/zookeeper-client-c/tests/TestReconfig.cc:502 in 
> Zookeeper_reconfig::testMigrationCycle()
> 1: Shadow bytes around the buggy address:
> 1:   0x0c1a7fff9990: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
> 1:   0x0c1a7fff99a0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
> 1:   0x0c1a7fff99b0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
> 1:   0x0c1a7fff99c0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
> 1:   0x0c1a7fff99d0: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
> 1: =>0x0c1a7fff99e0: fa fa fa fa fa fa fa fa fa fa fa fa fa[fa]00 00
> 1:   0x0c1a7fff99f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 02
> 1:   0x0c1a7fff9a00: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
> 1:   0x0c1a7fff9a10: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
> 1:   0x0c1a7fff9a20: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
> 1:   0x0c1a7fff9a30: fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa fa
> 1: Shadow byte legend (one shadow byte represents 8 application bytes):
> 1:   Addressable:           00
> 1:   Partially addressable: 01 02 03 04 05 06 07 
> 1:   Heap left redzone:       fa
> 1:   Heap right redzone:      fb
> 1:   Freed heap region:       fd
> 1:   Stack left redzone:      f1
> 1:   Stack mid redzone:       f2
> 1:   Stack right redzone:     f3
> 1:   Stack partial redzone:   f4
> 1:   Stack after return:      f5
> 1:   Stack use after scope:   f8
> 1:   Global redzone:          f9
> 1:   Global init order:       f6
> 1:   Poisoned by user:        f7
> 1:   Container overflow:      fc
> 1:   Array cookie:            ac
> 1:   Intra object redzone:    bb
> 1:   ASan internal:           fe
> 1:   Left alloca redzone:     ca
> 1:   Right alloca redzone:    cb
> 1: ==415554==ABORTING
> 1/1 Test #1: zktest_runner ....................***Failed    1.42 sec{quote}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to