Hide Forgot
Description of problem: I was asked to run Kdevelop (version 4.1.2, kde version 4.5.5) from Fedora 14 distibution throug valgrind to catch some KDevelop crash. But, it makes a crash just at application start. Version-Release number of selected component (if applicable): strigi-libs-0.7.2-5.fc14.i686 strigi-debuginfo-0.7.2-5.fc14.i686 How reproducible: On my system it's 100% reproducible. Steps to Reproduce: 1. run following: valgrind kdevelop Actual results: coredump Expected results: normal kdevelop startup Additional info: I've reported this bug to Kdevelop tracker, but it was rejected with the phrase 'nothing related to KDevelop stack' pointing out to some library bug (or it's a valgrind bug, which is more doubtful). valgrind output: [vdm@f14 ~]$ valgrind --track-origins=yes kdevelop ==4624== Memcheck, a memory error detector ==4624== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al. ==4624== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info ==4624== Command: kdevelop ==4624== ==4624== Conditional jump or move depends on uninitialised value(s) ==4624== at 0x499173: _dl_relocate_object (do-rel.h:117) ==4624== by 0x491349: dl_main (rtld.c:2257) ==4624== by 0x4A265D: _dl_sysdep_start (dl-sysdep.c:244) ==4624== by 0x492C00: _dl_start (rtld.c:334) ==4624== by 0x48E876: ??? (in /lib/ld-2.13.so) ==4624== Uninitialised value was created by a stack allocation ==4624== at 0x498EC6: _dl_relocate_object (dl-reloc.c:158) ==4624== ==4624== Conditional jump or move depends on uninitialised value(s) ==4624== at 0x49913D: _dl_relocate_object (do-rel.h:104) ==4624== by 0x491349: dl_main (rtld.c:2257) ==4624== by 0x4A265D: _dl_sysdep_start (dl-sysdep.c:244) ==4624== by 0x492C00: _dl_start (rtld.c:334) ==4624== by 0x48E876: ??? (in /lib/ld-2.13.so) ==4624== Uninitialised value was created by a stack allocation ==4624== at 0x498EC6: _dl_relocate_object (dl-reloc.c:158) ==4624== ==4624== Conditional jump or move depends on uninitialised value(s) ==4624== at 0x498FE9: _dl_relocate_object (do-rel.h:65) ==4624== by 0x491349: dl_main (rtld.c:2257) ==4624== by 0x4A265D: _dl_sysdep_start (dl-sysdep.c:244) ==4624== by 0x492C00: _dl_start (rtld.c:334) ==4624== by 0x48E876: ??? (in /lib/ld-2.13.so) ==4624== Uninitialised value was created by a stack allocation ==4624== at 0x498EC6: _dl_relocate_object (dl-reloc.c:158) ==4624== ==4624== Conditional jump or move depends on uninitialised value(s) ==4624== at 0x498FF1: _dl_relocate_object (do-rel.h:68) ==4624== by 0x491349: dl_main (rtld.c:2257) ==4624== by 0x4A265D: _dl_sysdep_start (dl-sysdep.c:244) ==4624== by 0x492C00: _dl_start (rtld.c:334) ==4624== by 0x48E876: ??? (in /lib/ld-2.13.so) ==4624== Uninitialised value was created by a stack allocation ==4624== at 0x498EC6: _dl_relocate_object (dl-reloc.c:158) ==4624== ==4624== Conditional jump or move depends on uninitialised value(s) ==4624== at 0x499A49: _dl_relocate_object (do-rel.h:127) ==4624== by 0x491349: dl_main (rtld.c:2257) ==4624== by 0x4A265D: _dl_sysdep_start (dl-sysdep.c:244) ==4624== by 0x492C00: _dl_start (rtld.c:334) ==4624== by 0x48E876: ??? (in /lib/ld-2.13.so) ==4624== Uninitialised value was created by a stack allocation ==4624== at 0x498EC6: _dl_relocate_object (dl-reloc.c:158) ==4624== ==4624== Conditional jump or move depends on uninitialised value(s) ==4624== at 0x498FE9: _dl_relocate_object (do-rel.h:65) ==4624== by 0x49158D: dl_main (rtld.c:2320) ==4624== by 0x4A265D: _dl_sysdep_start (dl-sysdep.c:244) ==4624== by 0x492C00: _dl_start (rtld.c:334) ==4624== by 0x48E876: ??? (in /lib/ld-2.13.so) ==4624== Uninitialised value was created by a stack allocation ==4624== at 0x498EC6: _dl_relocate_object (dl-reloc.c:158) ==4624== ==4624== Conditional jump or move depends on uninitialised value(s) ==4624== at 0x4993E1: _dl_relocate_object (do-rel.h:117) ==4624== by 0x49158D: dl_main (rtld.c:2320) ==4624== by 0x4A265D: _dl_sysdep_start (dl-sysdep.c:244) ==4624== by 0x492C00: _dl_start (rtld.c:334) ==4624== by 0x48E876: ??? (in /lib/ld-2.13.so) ==4624== Uninitialised value was created by a stack allocation ==4624== at 0x498EC6: _dl_relocate_object (dl-reloc.c:158) ==4624== ==4624== Conditional jump or move depends on uninitialised value(s) ==4624== at 0x499173: _dl_relocate_object (do-rel.h:117) ==4624== by 0x49158D: dl_main (rtld.c:2320) ==4624== by 0x4A265D: _dl_sysdep_start (dl-sysdep.c:244) ==4624== by 0x492C00: _dl_start (rtld.c:334) ==4624== by 0x48E876: ??? (in /lib/ld-2.13.so) ==4624== Uninitialised value was created by a stack allocation ==4624== at 0x498EC6: _dl_relocate_object (dl-reloc.c:158) ==4624== ==4624== Conditional jump or move depends on uninitialised value(s) ==4624== at 0x4005339: operator delete[](void*, std::nothrow_t const&) (vg_replace_malloc.c:380) ==4624== by 0xC3CCE7: ??? (in /usr/lib/libstdc++.so.6.0.14) ==4624== by 0xBAC7C8: std::underflow_error::underflow_error(std::string const&) (stdexcept.cc:72) ==4624== by 0xBACFAD: virtual thunk to std::strstream::~strstream() (in /usr/lib/libstdc++.so.6.0.14) ==4624== by 0x64D9AD: pthread_once (pthread_once.S:122) ==4624== by 0xBAD0A8: std::locale::locale() (strstream.cc:369) ==4624== by 0xBA9F97: std::ios_base::Init::Init() (locale_facets.h:1930) ==4624== by 0x29CA935: Strigi::ZipInputStream::checkHeader(char const*, int) (zipinputstream.cpp:36) ==4624== by 0x29CCBEC: ??? (in /usr/lib/libstreams.so.0.7.2) ==4624== by 0x29AAFCF: ??? (in /usr/lib/libstreams.so.0.7.2) ==4624== by 0x49C8FB: call_init (dl-init.c:68) ==4624== by 0x49CA18: _dl_init (dl-init.c:132) ==4624== Uninitialised value was created by a stack allocation ==4624== at 0xC006B1: __cxxabiv1::__class_type_info::__do_dyncast(int, __cxxabiv1::__class_type_info::__sub_kind, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info::__dyncast_result&) const (class_type_info.cc:79) ==4624== ==4624== Invalid free() / delete / delete[] ==4624== at 0x4005379: operator delete[](void*, std::nothrow_t const&) (vg_replace_malloc.c:380) ==4624== by 0xC3CCE7: ??? (in /usr/lib/libstdc++.so.6.0.14) ==4624== by 0xBAC7C8: std::underflow_error::underflow_error(std::string const&) (stdexcept.cc:72) ==4624== by 0xBACFAD: virtual thunk to std::strstream::~strstream() (in /usr/lib/libstdc++.so.6.0.14) ==4624== by 0x64D9AD: pthread_once (pthread_once.S:122) ==4624== by 0xBAD0A8: std::locale::locale() (strstream.cc:369) ==4624== by 0xBA9F97: std::ios_base::Init::Init() (locale_facets.h:1930) ==4624== by 0x29CA935: Strigi::ZipInputStream::checkHeader(char const*, int) (zipinputstream.cpp:36) ==4624== by 0x29CCBEC: ??? (in /usr/lib/libstreams.so.0.7.2) ==4624== by 0x29AAFCF: ??? (in /usr/lib/libstreams.so.0.7.2) ==4624== by 0x49C8FB: call_init (dl-init.c:68) ==4624== by 0x49CA18: _dl_init (dl-init.c:132) ==4624== Address 0xb68b24 is not stack'd, malloc'd or (recently) free'd ==4624== ==4624== Use of uninitialised value of size 4 ==4624== at 0x4005388: operator delete[](void*, std::nothrow_t const&) (vg_replace_malloc.c:380) ==4624== by 0xBAC7C8: std::underflow_error::underflow_error(std::string const&) (stdexcept.cc:72) ==4624== by 0xBACFAD: virtual thunk to std::strstream::~strstream() (in /usr/lib/libstdc++.so.6.0.14) ==4624== by 0x64D9AD: pthread_once (pthread_once.S:122) ==4624== by 0xBAD0A8: std::locale::locale() (strstream.cc:369) ==4624== by 0xBA9F97: std::ios_base::Init::Init() (locale_facets.h:1930) ==4624== by 0x29CA935: Strigi::ZipInputStream::checkHeader(char const*, int) (zipinputstream.cpp:36) ==4624== by 0x29CCBEC: ??? (in /usr/lib/libstreams.so.0.7.2) ==4624== by 0x29AAFCF: ??? (in /usr/lib/libstreams.so.0.7.2) ==4624== by 0x49C8FB: call_init (dl-init.c:68) ==4624== by 0x49CA18: _dl_init (dl-init.c:132) ==4624== by 0x48E8AE: ??? (in /lib/ld-2.13.so) ==4624== Uninitialised value was created by a stack allocation ==4624== at 0xC006B1: __cxxabiv1::__class_type_info::__do_dyncast(int, __cxxabiv1::__class_type_info::__sub_kind, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info const*, void const*, __cxxabiv1::__class_type_info::__dyncast_result&) const (class_type_info.cc:79) ==4624== ==4624== Invalid read of size 1 ==4624== at 0xC3CCE8: ??? (in /usr/lib/libstdc++.so.6.0.14) ==4624== by 0xBAC7C8: std::underflow_error::underflow_error(std::string const&) (stdexcept.cc:72) ==4624== by 0xBACFAD: virtual thunk to std::strstream::~strstream() (in /usr/lib/libstdc++.so.6.0.14) ==4624== by 0x64D9AD: pthread_once (pthread_once.S:122) ==4624== by 0xBAD0A8: std::locale::locale() (strstream.cc:369) ==4624== by 0xBA9F97: std::ios_base::Init::Init() (locale_facets.h:1930) ==4624== by 0x29CA935: Strigi::ZipInputStream::checkHeader(char const*, int) (zipinputstream.cpp:36) ==4624== by 0x29CCBEC: ??? (in /usr/lib/libstreams.so.0.7.2) ==4624== by 0x29AAFCF: ??? (in /usr/lib/libstreams.so.0.7.2) ==4624== by 0x49C8FB: call_init (dl-init.c:68) ==4624== by 0x49CA18: _dl_init (dl-init.c:132) ==4624== by 0x48E8AE: ??? (in /lib/ld-2.13.so) ==4624== Address 0x6a00c006 is not stack'd, malloc'd or (recently) free'd ==4624== ==4624== Invalid write of size 4 ==4624== at 0xC3CCED: ??? (in /usr/lib/libstdc++.so.6.0.14) ==4624== by 0xBAC7C8: std::underflow_error::underflow_error(std::string const&) (stdexcept.cc:72) ==4624== by 0xBACFAD: virtual thunk to std::strstream::~strstream() (in /usr/lib/libstdc++.so.6.0.14) ==4624== by 0x64D9AD: pthread_once (pthread_once.S:122) ==4624== by 0xBAD0A8: std::locale::locale() (strstream.cc:369) ==4624== by 0xBA9F97: std::ios_base::Init::Init() (locale_facets.h:1930) ==4624== by 0x29CA935: Strigi::ZipInputStream::checkHeader(char const*, int) (zipinputstream.cpp:36) ==4624== by 0x29CCBEC: ??? (in /usr/lib/libstreams.so.0.7.2) ==4624== by 0x29AAFCF: ??? (in /usr/lib/libstreams.so.0.7.2) ==4624== by 0x49C8FB: call_init (dl-init.c:68) ==4624== by 0x49CA18: _dl_init (dl-init.c:132) ==4624== by 0x48E8AE: ??? (in /lib/ld-2.13.so) ==4624== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==4624== ==4624== ==4624== Process terminating with default action of signal 11 (SIGSEGV): dumping core ==4624== Access not within mapped region at address 0x0 ==4624== at 0xC3CCED: ??? (in /usr/lib/libstdc++.so.6.0.14) ==4624== by 0xBAC7C8: std::underflow_error::underflow_error(std::string const&) (stdexcept.cc:72) ==4624== by 0xBACFAD: virtual thunk to std::strstream::~strstream() (in /usr/lib/libstdc++.so.6.0.14) ==4624== by 0x64D9AD: pthread_once (pthread_once.S:122) ==4624== by 0xBAD0A8: std::locale::locale() (strstream.cc:369) ==4624== by 0xBA9F97: std::ios_base::Init::Init() (locale_facets.h:1930) ==4624== by 0x29CA935: Strigi::ZipInputStream::checkHeader(char const*, int) (zipinputstream.cpp:36) ==4624== by 0x29CCBEC: ??? (in /usr/lib/libstreams.so.0.7.2) ==4624== by 0x29AAFCF: ??? (in /usr/lib/libstreams.so.0.7.2) ==4624== by 0x49C8FB: call_init (dl-init.c:68) ==4624== by 0x49CA18: _dl_init (dl-init.c:132) ==4624== by 0x48E8AE: ??? (in /lib/ld-2.13.so) ==4624== If you believe this happened as a result of a stack ==4624== overflow in your program's main thread (unlikely but ==4624== possible), you can try to increase the size of the ==4624== main thread stack using the --main-stacksize= flag. ==4624== The main thread stack size used in this run was 8388608. ==4624== ==4624== HEAP SUMMARY: ==4624== in use at exit: 0 bytes in 0 blocks ==4624== total heap usage: 2 allocs, 3 frees, 472 bytes allocated ==4624== ==4624== All heap blocks were freed -- no leaks are possible ==4624== ==4624== For counts of detected and suppressed errors, rerun with: -v ==4624== ERROR SUMMARY: 147 errors from 13 contexts (suppressed: 0 from 0) Segmentation fault (core dumped) i have valgrind core file also: http://dmvn.myftp.org/tmp/kdevelop/vgcore.4624.gz My distribution is rather typical: stable F14 release, fully up-to-date. KDevelop is also installed from stable Fedora repository.
The first few warnings (in _dl_relocate_object) are probably bug 676785 (try today's valgrind update, it should fix that), but the rest is probably a genuine Strigi bug.
Thanks a lot, you're right. Updated valrgind makes same result (a coredump), but output has changed exactly as you expected: [vdm@f14 ~]$ valgrind kdevelop ==3172== Memcheck, a memory error detector ==3172== Copyright (C) 2002-2009, and GNU GPL'd, by Julian Seward et al. ==3172== Using Valgrind-3.5.0 and LibVEX; rerun with -h for copyright info ==3172== Command: kdevelop ==3172== ==3172== Conditional jump or move depends on uninitialised value(s) ==3172== at 0x4005339: operator delete[](void*, std::nothrow_t const&) (vg_replace_malloc.c:380) ==3172== by 0xC3CCE7: ??? (in /usr/lib/libstdc++.so.6.0.14) ==3172== by 0xBAC7C8: std::underflow_error::underflow_error(std::string const&) (stdexcept.cc:72) ==3172== by 0xBACFAD: virtual thunk to std::strstream::~strstream() (in /usr/lib/libstdc++.so.6.0.14) ==3172== by 0x64D9AD: pthread_once (pthread_once.S:122) ==3172== by 0xBAD0A8: std::locale::locale() (strstream.cc:369) ==3172== by 0xBA9F97: std::ios_base::Init::Init() (locale_facets.h:1930) ==3172== by 0x29CA935: Strigi::ZipInputStream::checkHeader(char const*, int) (zipinputstream.cpp:36) ==3172== by 0x29CCBEC: ??? (in /usr/lib/libstreams.so.0.7.2) ==3172== by 0x29AAFCF: ??? (in /usr/lib/libstreams.so.0.7.2) ==3172== by 0x49C8FB: call_init (dl-init.c:68) ==3172== by 0x49CA18: _dl_init (dl-init.c:132) ==3172== ==3172== Invalid free() / delete / delete[] ==3172== at 0x4005379: operator delete[](void*, std::nothrow_t const&) (vg_replace_malloc.c:380) ==3172== by 0xC3CCE7: ??? (in /usr/lib/libstdc++.so.6.0.14) ==3172== by 0xBAC7C8: std::underflow_error::underflow_error(std::string const&) (stdexcept.cc:72) ==3172== by 0xBACFAD: virtual thunk to std::strstream::~strstream() (in /usr/lib/libstdc++.so.6.0.14) ==3172== by 0x64D9AD: pthread_once (pthread_once.S:122) ==3172== by 0xBAD0A8: std::locale::locale() (strstream.cc:369) ==3172== by 0xBA9F97: std::ios_base::Init::Init() (locale_facets.h:1930) ==3172== by 0x29CA935: Strigi::ZipInputStream::checkHeader(char const*, int) (zipinputstream.cpp:36) ==3172== by 0x29CCBEC: ??? (in /usr/lib/libstreams.so.0.7.2) ==3172== by 0x29AAFCF: ??? (in /usr/lib/libstreams.so.0.7.2) ==3172== by 0x49C8FB: call_init (dl-init.c:68) ==3172== by 0x49CA18: _dl_init (dl-init.c:132) ==3172== Address 0xb68b24 is not stack'd, malloc'd or (recently) free'd ==3172== ==3172== Use of uninitialised value of size 4 ==3172== at 0x4005388: operator delete[](void*, std::nothrow_t const&) (vg_replace_malloc.c:380) ==3172== by 0xBAC7C8: std::underflow_error::underflow_error(std::string const&) (stdexcept.cc:72) ==3172== by 0xBACFAD: virtual thunk to std::strstream::~strstream() (in /usr/lib/libstdc++.so.6.0.14) ==3172== by 0x64D9AD: pthread_once (pthread_once.S:122) ==3172== by 0xBAD0A8: std::locale::locale() (strstream.cc:369) ==3172== by 0xBA9F97: std::ios_base::Init::Init() (locale_facets.h:1930) ==3172== by 0x29CA935: Strigi::ZipInputStream::checkHeader(char const*, int) (zipinputstream.cpp:36) ==3172== by 0x29CCBEC: ??? (in /usr/lib/libstreams.so.0.7.2) ==3172== by 0x29AAFCF: ??? (in /usr/lib/libstreams.so.0.7.2) ==3172== by 0x49C8FB: call_init (dl-init.c:68) ==3172== by 0x49CA18: _dl_init (dl-init.c:132) ==3172== by 0x48E8AE: ??? (in /lib/ld-2.13.so) ==3172== ==3172== Invalid read of size 1 ==3172== at 0xC3CCE8: ??? (in /usr/lib/libstdc++.so.6.0.14) ==3172== by 0xBAC7C8: std::underflow_error::underflow_error(std::string const&) (stdexcept.cc:72) ==3172== by 0xBACFAD: virtual thunk to std::strstream::~strstream() (in /usr/lib/libstdc++.so.6.0.14) ==3172== by 0x64D9AD: pthread_once (pthread_once.S:122) ==3172== by 0xBAD0A8: std::locale::locale() (strstream.cc:369) ==3172== by 0xBA9F97: std::ios_base::Init::Init() (locale_facets.h:1930) ==3172== by 0x29CA935: Strigi::ZipInputStream::checkHeader(char const*, int) (zipinputstream.cpp:36) ==3172== by 0x29CCBEC: ??? (in /usr/lib/libstreams.so.0.7.2) ==3172== by 0x29AAFCF: ??? (in /usr/lib/libstreams.so.0.7.2) ==3172== by 0x49C8FB: call_init (dl-init.c:68) ==3172== by 0x49CA18: _dl_init (dl-init.c:132) ==3172== by 0x48E8AE: ??? (in /lib/ld-2.13.so) ==3172== Address 0x6a00c006 is not stack'd, malloc'd or (recently) free'd ==3172== ==3172== Invalid write of size 4 ==3172== at 0xC3CCED: ??? (in /usr/lib/libstdc++.so.6.0.14) ==3172== by 0xBAC7C8: std::underflow_error::underflow_error(std::string const&) (stdexcept.cc:72) ==3172== by 0xBACFAD: virtual thunk to std::strstream::~strstream() (in /usr/lib/libstdc++.so.6.0.14) ==3172== by 0x64D9AD: pthread_once (pthread_once.S:122) ==3172== by 0xBAD0A8: std::locale::locale() (strstream.cc:369) ==3172== by 0xBA9F97: std::ios_base::Init::Init() (locale_facets.h:1930) ==3172== by 0x29CA935: Strigi::ZipInputStream::checkHeader(char const*, int) (zipinputstream.cpp:36) ==3172== by 0x29CCBEC: ??? (in /usr/lib/libstreams.so.0.7.2) ==3172== by 0x29AAFCF: ??? (in /usr/lib/libstreams.so.0.7.2) ==3172== by 0x49C8FB: call_init (dl-init.c:68) ==3172== by 0x49CA18: _dl_init (dl-init.c:132) ==3172== by 0x48E8AE: ??? (in /lib/ld-2.13.so) ==3172== Address 0x0 is not stack'd, malloc'd or (recently) free'd ==3172== ==3172== ==3172== Process terminating with default action of signal 11 (SIGSEGV): dumping core ==3172== Access not within mapped region at address 0x0 ==3172== at 0xC3CCED: ??? (in /usr/lib/libstdc++.so.6.0.14) ==3172== by 0xBAC7C8: std::underflow_error::underflow_error(std::string const&) (stdexcept.cc:72) ==3172== by 0xBACFAD: virtual thunk to std::strstream::~strstream() (in /usr/lib/libstdc++.so.6.0.14) ==3172== by 0x64D9AD: pthread_once (pthread_once.S:122) ==3172== by 0xBAD0A8: std::locale::locale() (strstream.cc:369) ==3172== by 0xBA9F97: std::ios_base::Init::Init() (locale_facets.h:1930) ==3172== by 0x29CA935: Strigi::ZipInputStream::checkHeader(char const*, int) (zipinputstream.cpp:36) ==3172== by 0x29CCBEC: ??? (in /usr/lib/libstreams.so.0.7.2) ==3172== by 0x29AAFCF: ??? (in /usr/lib/libstreams.so.0.7.2) ==3172== by 0x49C8FB: call_init (dl-init.c:68) ==3172== by 0x49CA18: _dl_init (dl-init.c:132) ==3172== by 0x48E8AE: ??? (in /lib/ld-2.13.so) ==3172== If you believe this happened as a result of a stack ==3172== overflow in your program's main thread (unlikely but ==3172== possible), you can try to increase the size of the ==3172== main thread stack using the --main-stacksize= flag. ==3172== The main thread stack size used in this run was 8388608. ==3172== ==3172== HEAP SUMMARY: ==3172== in use at exit: 0 bytes in 0 blocks ==3172== total heap usage: 2 allocs, 3 frees, 472 bytes allocated ==3172== ==3172== All heap blocks were freed -- no leaks are possible ==3172== ==3172== For counts of detected and suppressed errors, rerun with: -v ==3172== Use --track-origins=yes to see where uninitialised values come from ==3172== ERROR SUMMARY: 5 errors from 5 contexts (suppressed: 142 from 8) Segmentation fault (core dumped)
Fwiw, I cannot reproduce any crashes using: $ rpm -q kdevelop valgrind strigi kdevelop-4.2.3-3.fc14.x86_64 valgrind-3.5.0-20.fc14.x86_64 strigi-0.7.2-5.fc14.1.x86_64
Fantastic! With current versions of packages problem disappeared. rpm -q kdevelop valgrind strigi-libs kdevelop-4.2.3-3.fc14.i686 valgrind-3.5.0-20.fc14.i686 strigi-libs-0.7.5-4.fc14.i686 Thanks for your notice.