Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Testsuite failures on master/VEX for 32 bit platform #104

Closed
jdetter opened this issue Jun 22, 2016 · 7 comments
Closed

Testsuite failures on master/VEX for 32 bit platform #104

jdetter opened this issue Jun 22, 2016 · 7 comments
Labels
Milestone

Comments

@jdetter
Copy link
Contributor

jdetter commented Jun 22, 2016

We have quite a few failures on master and VEX on 32 bit Ubuntu 16.04 Server. There appears to be at least one issue in proccontrol. I am still investigating the other crashes (series 1, 2 and 5).

Master gist: https://gist.github.com/jdetter/5b48a09ef827ad90e07a499c304750ee

environment:

Ubuntu 16.04 Server (32 bit)
Linux 4.4.0

# ls $DYNINSTAPI_RT_LIB
/usr/lib/libdyninstAPI_RT.so
# echo $LD_LIBRARY_PATH
/usr/lib:/usr/bin/testsuite

libboost: 1.58
libdwarf: dwarf-20160613 (latest stable)
libelf:   0.165
binutils: 2.26
@jdetter
Copy link
Contributor Author

jdetter commented Jun 22, 2016

@mxz297 Are you seeing these failures on Windows?

@jdetter jdetter added this to the 9.2 Release milestone Jun 22, 2016
@jdetter jdetter changed the title Testsuite failures on master/VEX for 32 bit binaries Testsuite failures on master/VEX for 32 bit platform Jun 22, 2016
@jdetter
Copy link
Contributor Author

jdetter commented Jun 22, 2016

Series 5 tests failures fail pretty quick:

Commencing test(s) ...
Wed Jun 22 17:32:06 CDT 2016
Linux ubuntu-16 4.4.0-24-generic #43-Ubuntu SMP Wed Jun 8 19:25:16 UTC 2016 i686 i686 i686 GNU/Linux
TESTDIR=/usr/bin/testsuite
[Tests with dyninst_cxx_group_test.dyn_g++_32_none_none]
-rwxr-xr-x 1 root root 128428 Jun 22 14:40 dyninst_cxx_group_test.dyn_g++_32_none_none*
        linux-gate.so.1 =>  (0xb77e9000)
        libstdc++.so.6 => /usr/lib/i386-linux-gnu/libstdc++.so.6 (0xb7663000)
        libgcc_s.so.1 => /lib/i386-linux-gnu/libgcc_s.so.1 (0xb7646000)
        libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xb748f000)
        libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xb743a000)
        /lib/ld-linux.so.2 (0x80072000)

Mutatee dyninst_cxx_group_test.dyn_g++_32_none_none [C++]:""
mutatee 1951: Waiting for mutator to attach...
test_driver: /home/ubuntu/dyninst/proccontrol/src/irpc.C:1050: virtual Dyninst::ProcControlAPI::Handler::handler_ret_t iRPCHandler::handleEvent(Dyninst::ProcControlAPI::Event::ptr): Assertion `0' failed.
#0  0xb7fdac31 in __kernel_vsyscall ()
#1  0xb7727e89 in __GI_raise (sig=6) at ../sysdeps/unix/sysv/linux/raise.c:54
#2  0xb77293e7 in __GI_abort () at abort.c:89
#3  0xb7720d07 in __assert_fail_base (
    fmt=0xb785b258 "%s%s%s:%u: %s%sAssertion `%s' failed.\n%n", assertion=0xb71ea62f "0",
    file=0xb71f7674 "/home/ubuntu/dyninst/proccontrol/src/irpc.C", line=1050,
    function=0xb71f8a20 <iRPCHandler::handleEvent(boost::shared_ptr<Dyninst::ProcControlAPI::Event>)::__PRETTY_FUNCTION__> "virtual Dyninst::ProcControlAPI::Handler::handler_ret_t iRPCHandler::handleEvent(Dyninst::ProcControlAPI::Event::ptr)") at assert.c:92
#4  0xb7720d8b in __GI___assert_fail (assertion=0xb71ea62f "0",
    file=0xb71f7674 "/home/ubuntu/dyninst/proccontrol/src/irpc.C", line=1050,
    function=0xb71f8a20 <iRPCHandler::handleEvent(boost::shared_ptr<Dyninst::ProcControlAPI::Event>)::__PRETTY_FUNCTION__> "virtual Dyninst::ProcControlAPI::Handler::handler_ret_t iRPCHandler::handleEvent(Dyninst::ProcControlAPI::Event::ptr)") at assert.c:101
#5  0xb716a995 in iRPCHandler::handleEvent (this=0x8850a60, ev=...)
    at /home/ubuntu/dyninst/proccontrol/src/irpc.C:1050
#6  0xb711d23f in HandlerPool::handleEvent (this=0x88520a0, orig_ev=...)
    at /home/ubuntu/dyninst/proccontrol/src/handler.C:438
#7  0xb7150ce9 in int_process::waitAndHandleEvents (block=false)
    at /home/ubuntu/dyninst/proccontrol/src/process.C:1106
#8  0xb7151f76 in int_process::infMalloc (size=284, aset=0xbfffec44, use_addr=false)
    at /home/ubuntu/dyninst/proccontrol/src/process.C:1682
#9  0xb71522bb in int_process::infMalloc (this=0x88532c8, size=284, use_addr=false, addr=0)
    at /home/ubuntu/dyninst/proccontrol/src/process.C:1623
#10 0xb71addef in Dyninst::ProcControlAPI::Codegen::generate (this=0xbfffed3c)
    at /home/ubuntu/dyninst/proccontrol/src/loadLibrary/codegen.C:29
#11 0xb71ace8b in Dyninst::ProcControlAPI::Injector::inject (this=0xbfffede0,
    libname="/usr/lib/libdyninstAPI_RT.so")
    at /home/ubuntu/dyninst/proccontrol/src/loadLibrary/injector.C:39
#12 0xb7139c5d in Dyninst::ProcControlAPI::Process::addLibrary (this=0x8850860,
    library="/usr/lib/libdyninstAPI_RT.so")
    at /home/ubuntu/dyninst/proccontrol/src/process.C:6389
#13 0xb753f2a9 in PCProcess::loadRTLib (this=0x89e5788)
    at /home/ubuntu/dyninst/dyninstAPI/src/dynProcess.C:802
#14 0xb75465d4 in PCProcess::bootstrapProcess (this=0x89e5788)
    at /home/ubuntu/dyninst/dyninstAPI/src/dynProcess.C:430
#15 0xb7548504 in PCProcess::attachProcess (
    progpath="dyninst_cxx_group_test.dyn_g++_32_none_none", pid=2414,
    analysisMode=BPatch_normalMode) at /home/ubuntu/dyninst/dyninstAPI/src/dynProcess.C:159
#16 0xb7496839 in BPatch_process::BPatch_process (this=0x8852648,
    path=0x8363440 "dyninst_cxx_group_test.dyn_g++_32_none_none", pid=2414,
    mode=BPatch_normalMode) at /home/ubuntu/dyninst/dyninstAPI/src/BPatch_process.C:328
#17 0xb747755e in BPatch::processAttach (this=0x884c758,
    path=0x8363440 "dyninst_cxx_group_test.dyn_g++_32_none_none", pid=2414,
    mode=BPatch_normalMode) at /home/ubuntu/dyninst/dyninstAPI/src/BPatch.C:1253
#18 0xb767814e in DyninstComponent::group_setup(RunGroup*, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Parameter*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Parameter*> > >&) () from /usr/bin/testsuite/libtestdyninst.so
#19 0x0805e179 in executeGroup(RunGroup*, std::vector<RunGroup*, std::allocator<RunGroup*> >&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Parameter*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, ---Type <return> to continue, or q <return> to quit---
std::allocator<char> > const, Parameter*> > >&) ()
#20 0x0805f297 in startAllTests(std::vector<RunGroup*, std::allocator<RunGroup*> >&, std::map<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >, Parameter*, std::less<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > >, std::allocator<std::pair<std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const, Parameter*> > >&) ()
#21 0x0805ff20 in main ()

@jdetter
Copy link
Contributor Author

jdetter commented Jun 27, 2016

I think this could be specifically a linux-4.4.0 issue on Ubuntu, I'm building linux-4.4.14 from scratch to see if the problem goes away.

@mxz297
Copy link
Member

mxz297 commented Jun 28, 2016

In this case, we assert because of improper check of the return value from an inferior malloc IRPC and the fix is in VEX now.

@jdetter
Copy link
Contributor Author

jdetter commented Jun 28, 2016

Ok, thanks again @mxz297!

@jdetter
Copy link
Contributor Author

jdetter commented Jun 28, 2016

The output is soooo much better now. We are only failing the rewriter tests now, which is probably a won't fix for now.

New gist: https://gist.github.com/jdetter/af44203314e53326a86c49da89f2019b

@wrwilliams
Copy link
Member

Confirming static/32 rewriter failures are a wontfix for 9.2 (but not a wontfix in general). Closing this as it's fixed by #107.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants