|
From: Michael A. <Mic...@fs...> - 2007-08-10 23:59:43
|
I got a "the 'impossible' happened: LibVEX called failure_exit()" on the following box: mabshoff@deepimpact: /tmp/Work/linbox-r2784/tests>uname -a Linux deepimpact 2.6.18.8-0.3-default #1 SMP Tue Apr 17 08:42:35 UTC 2007 x86_64 x86_64 x86_64 GNU/Linux mabshoff@deepimpact: /tmp/Work/linbox-r2784/tests>cat /etc/SuSE-release openSUSE 10.2 (X86-64) VERSION = 10.2 The box is a base openSuSE system with compilers and so on compiled from source, but the glibc should be the default one. I just checked out 3.3.0svn and build from source. I ran a test from current LinBox svn which was linked against the Intel MKL. The Intel MKL is closed source and contains a fork of the LGPLed gmp (gnu math precision library). As far as I can tell the problems happens in that part of the code. mabshoff@deepimpact: /tmp/Work/linbox-r2784/tests>/tmp/Work/valgrind-3.3.0svn-r6769/bin/valgrind --tool=memcheck -v --leak-resolution=high --show-reachable=yes ./test-rational-solver -i 1 -n 100 ==24569== Memcheck, a memory error detector. ==24569== Copyright (C) 2002-2007, and GNU GPL'd, by Julian Seward et al. ==24569== Using LibVEX rev 1749, a library for dynamic binary translation. ==24569== Copyright (C) 2004-2007, and GNU GPL'd, by OpenWorks LLP. ==24569== Using valgrind-3.3.0.SVN, a dynamic binary instrumentation framework. ==24569== Copyright (C) 2000-2007, and GNU GPL'd, by Julian Seward et al. ==24569== --24569-- Command line --24569-- ./test-rational-solver --24569-- -i --24569-- 1 --24569-- -n --24569-- 100 --24569-- Startup, with flags: --24569-- --tool=memcheck --24569-- -v --24569-- --leak-resolution=high --24569-- --show-reachable=yes --24569-- Contents of /proc/version: --24569-- Linux version 2.6.18.8-0.3-default (geeko@buildhost) (gcc version 4.1.2 20061115 (prerelease) (SUSE Linux)) #1 SMP Tue Apr 17 08:42:35 UTC 2007 --24569-- Arch and hwcaps: AMD64, amd64-sse2 --24569-- Page sizes: currently 4096, max supported 4096 --24569-- Valgrind library directory: /tmp/Work/valgrind-3.3.0svn-r6769/lib/valgrind --24569-- Reading syms from /tmp/Work/linbox-r2784/tests/test-rational-solver (0x400000) --24569-- Reading syms from /lib64/ld-2.5.so (0x4000000) --24569-- Reading syms from /tmp/Work/valgrind-3.3.0svn-r6769/lib/valgrind/amd64-linux/memcheck (0x38000000) --24569-- object doesn't have a dynamic symbol table --24569-- Reading suppressions file: /tmp/Work/valgrind-3.3.0svn-r6769/lib/valgrind/default.supp --24569-- Reading syms from /tmp/Work/valgrind-3.3.0svn-r6769/lib/valgrind/amd64-linux/vgpreload_core.so (0x4A1E000) --24569-- Reading syms from /tmp/Work/valgrind-3.3.0svn-r6769/lib/valgrind/amd64-linux/vgpreload_memcheck.so (0x4C20000) --24569-- REDIR: 0x4013fe0 (index) redirected to 0x4c23890 (index) --24569-- REDIR: 0x4014190 (strcmp) redirected to 0x4c23af0 (strcmp) --24569-- REDIR: 0x40144d0 (strlen) redirected to 0x4c23a20 (strlen) --24569-- Reading syms from /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl_lapack.so (0x4E28000) --24569-- Reading syms from /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl.so (0x401F000) --24569-- Reading syms from /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libvml.so (0x552F000) --24569-- Reading syms from /lib64/libpthread-2.5.so (0x56A3000) --24569-- Reading syms from /usr/lib64/libgmpxx.so.3.1.1 (0x58BE000) --24569-- object doesn't have a symbol table --24569-- Reading syms from /usr/lib64/libgmp.so.3.4.1 (0x5AC3000) --24569-- object doesn't have a symbol table --24569-- Reading syms from /usr/lib64/libstdc++.so.6.0.8 (0x5D02000) --24569-- object doesn't have a symbol table --24569-- Reading syms from /lib64/libm-2.5.so (0x6000000) --24569-- Reading syms from /lib64/libgcc_s.so.1 (0x6256000) --24569-- object doesn't have a symbol table --24569-- Reading syms from /lib64/libc-2.5.so (0x6464000) --24569-- Reading syms from /lib64/libdl-2.5.so (0x67A6000) --24569-- REDIR: 0x64d91d0 (memset) redirected to 0x4c23c90 (memset) --24569-- REDIR: 0x64da7c0 (memcpy) redirected to 0x4c24990 (memcpy) --24569-- REDIR: 0x64d83f0 (rindex) redirected to 0x4c23740 (rindex) --24569-- REDIR: 0x64d7d50 (strlen) redirected to 0x4c239e0 (strlen) --24569-- REDIR: 0x64d4300 (malloc) redirected to 0x4c22a94 (malloc) --24569-- REDIR: 0x64d1ec0 (free) redirected to 0x4c226a4 (free) --24569-- REDIR: 0x64d8280 (strncmp) redirected to 0x4c23a40 (strncmp) --24569-- REDIR: 0x64d6e20 (index) redirected to 0x4c23830 (index) --24569-- REDIR: 0x64d3d70 (calloc) redirected to 0x4c21db9 (calloc) --24569-- Reading syms from /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl_def.so (0x6AAA000) --24569-- REDIR: 0x5dbcfb0 (operator new(unsigned long)) redirected to 0x4c232a1 (operator new(unsigned long)) --24569-- REDIR: 0x5dbbd70 (operator delete(void*)) redirected to 0x4c223b6 (operator delete(void*)) --24569-- REDIR: 0x64d6fd0 (strcmp) redirected to 0x4c23ab0 (strcmp) --24569-- REDIR: 0xffffffffff600400 (???) redirected to 0x380290cd (vgPlain_amd64_linux_REDIR_FOR_vtime) Testing Nonsingular Random Diagonal solve ... 0%--24569-- REDIR: 0xffffffffff600000 (???) redirected to 0x380290c3 (vgPlain_amd64_linux_REDIR_FOR_vgettimeofday) --24569-- REDIR: 0x5dbd0e0 (operator new[](unsigned long)) redirected to 0x4c22f41 (operator new[](unsigned long)) --24569-- REDIR: 0x5dbbdb0 (operator delete[](void*)) redirected to 0x4c22032 (operator delete[](void*)) --24569-- Reading syms from /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl_vml_def.so (0x7328000) --24569-- REDIR: 0x64d44e0 (memalign) redirected to 0x4c21c94 (memalign) vex: priv/guest-amd64/toIR.c:2512 (dis_op2_E_G): Assertion `0' failed. vex storage: T total 464562256 bytes allocated vex storage: P total 960 bytes allocated valgrind: the 'impossible' happened: LibVEX called failure_exit(). ==24569== at 0x380192E1: report_and_quit (m_libcassert.c:140) ==24569== by 0x3801941F: panic (m_libcassert.c:210) ==24569== by 0x38019475: vgPlain_core_panic_at (m_libcassert.c:215) ==24569== by 0x38019493: vgPlain_core_panic (m_libcassert.c:220) ==24569== by 0x3802BC40: failure_exit (m_translate.c:490) ==24569== by 0x380834B8: vex_assert_fail (vex_util.c:220) ==24569== by 0x380E6BE3: dis_op2_E_G (toIR.c:2512) ==24569== by 0x380FC1EF: disInstr_AMD64 (toIR.c:12908) ==24569== by 0x380AE793: bb_to_IR (bb_to_IR.c:229) ==24569== by 0x38081E48: LibVEX_Translate (vex_main.c:427) ==24569== by 0x3802A963: vgPlain_translate (m_translate.c:1316) ==24569== by 0x380336F2: vgPlain_scheduler (scheduler.c:746) ==24569== by 0x38045508: run_a_thread_NORETURN (syswrap-linux.c:89) sched status: running_tid=1 Thread 1: status = VgTs_Runnable ==24569== at 0x6C35A97: mkl_gmp_mpl_divq_3_by_2 (in /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl_def.so) ==24569== by 0x6C36769: mkl_gmp_mpl_divqr_long (in /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl_def.so) ==24569== by 0x6C379B2: mkl_gmp_mkl_gmp_div_n4_d2 (in /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl_def.so) ==24569== by 0x6C37AE6: mkl_gmp_mkl_gmp_div_n3_d2 (in /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl_def.so) ==24569== by 0x6C37978: mkl_gmp_mkl_gmp_div_n4_d2 (in /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl_def.so) ==24569== by 0x6C37AE6: mkl_gmp_mkl_gmp_div_n3_d2 (in /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl_def.so) ==24569== by 0x6C37978: mkl_gmp_mkl_gmp_div_n4_d2 (in /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl_def.so) ==24569== by 0x6C375B2: mkl_gmp_mpl_divqr_dc (in /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl_def.so) ==24569== by 0x6C36E46: mkl_gmp_mkl_gmp_div_qr (in /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl_def.so) ==24569== by 0x6CF7E26: mkl_gmp___gmpz_fdiv_qr (in /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl_def.so) ==24569== by 0x6CF7D8F: mkl_gmp___gmpz_fdiv_q (in /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl_def.so) ==24569== by 0x6CFEF98: mkl_gmp___gmpz_root (in /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl_def.so) ==24569== by 0x6CFFDF6: mkl_gmp___gmpz_sqrt (in /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl_def.so) ==24569== by 0x6CFFDDE: __GMPZ_SQRT (in /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl_def.so) ==24569== by 0x406CDF9: __GMPZ_SQRT (in /tmp/Work/intel/mkl/9.1.021/lib_serial/em64t/libmkl.so) ==24569== by 0x4061F8: sqrt(Integer&, Integer const&) (gmp++_int_misc.C:26) ==24569== by 0x40622D: sqrt(Integer const&) (gmp++_int_misc.C:40) ==24569== by 0x44AC8B: LinBox::LiftingContainerBase<LinBox::PID_integer, LinBox::DenseMatrix<LinBox::PID_integer> >::LiftingContainerBase<Integer, std::vector<Integer, std::allocator<Integer> > >(LinBox::PID_integer const&, LinBox::DenseMatrix<LinBox::PID_integer> const&, std::vector<Integer, std::allocator<Integer> > const&, Integer const&) (lifting-container.h:364) ==24569== by 0x44B5F7: LinBox::SolverReturnStatus LinBox::RationalSolver<LinBox::PID_integer, LinBox::Modular<int>, LinBox::RandomPrimeIterator, LinBox::DixonTraits>::solveNonsingular<LinBox::DenseMatrix<LinBox::PID_integer>, std::vector<Integer, std::allocator<Integer> >, std::allocator<Integer> >(std::vector<Integer, std::allocator<Integer> >&, Integer&, LinBox::DenseMatrix<LinBox::PID_integer> const&, std::allocator<Integer> const&, bool, int) const (lifting-container.h:578) ==24569== by 0x450664: LinBox::SolverReturnStatus LinBox::RationalSolver<LinBox::PID_integer, LinBox::Modular<int>, LinBox::RandomPrimeIterator, LinBox::DixonTraits>::solve<LinBox::DenseMatrix<LinBox::PID_integer>, std::vector<Integer, std::allocator<Integer> >, std::allocator<Integer> >(std::vector<Integer, std::allocator<Integer> >&, Integer&, LinBox::DenseMatrix<LinBox::PID_integer> const&, std::allocator<Integer> const&, bool, int, LinBox::SolverLevel) const (rational-solver.inl:552) ==24569== by 0x450E15: bool testRandomSolve<LinBox::PID_integer, LinBox::Modular<int>, std::vector<Integer, std::allocator<Integer> > >(LinBox::PID_integer const&, LinBox::Modular<int> const&, LinBox::VectorStream<std::vector<Integer, std::allocator<Integer> > >&, LinBox::VectorStream<std::vector<Integer, std::allocator<Integer> > >&) (rational-solver.h:637) ==24569== by 0x411232: main (test-rational-solver.C:172) Note: see also the FAQ.txt in the source distribution. It contains workarounds to several common problems. If that doesn't help, please report this bug to: www.valgrind.org In the bug report, send all the above text, the valgrind version, and what Linux distro you are using. Thanks. mabshoff@deepimpact: /tmp/Work/linbox-r2784/tests> If i link against the "real" gmp the problem goes away. Sorry, but I cannot provide any example code that illustrates the problem, but I can give directions on how to reproduce this provided you have access to the Intel MKL. Cheers, Michael |