[sword-devel] Unusual behavior from diatheke on Linux with musl libc

Jaak Ristioja jaak at ristioja.ee
Wed Jul 9 22:44:00 MST 2014


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Yes, the full version might be helpful. Please send it.

God bless!
Jaak

On 10.07.2014 07:36, Isaac Dunham wrote:
> On Tue, Jul 08, 2014 at 05:33:54PM +0300, Jaak Ristioja wrote:
>> -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
>> 
>> Looking at corediatheke.cpp this is probably a bug which could
>> be found using valgrind. Please try the following command with
>> sword+musl:
>> 
>> valgrind --leak-check=full --track-origins=yes -
>> --keep-stacktraces=alloc-and-free utils\diatheke -b KJV -k Ps117
>> 
>> Blessings, Jaak
> 
> Thank you for the recommendation.
> 
> I found it necessary to adjust this to:
> 
> $ valgrind --leak-check=full --track-origins=yes \ 
> --keep-stacktraces=alloc-and-free /lib/ld-musl-i386.so.1 \ 
> utilities/diatheke/.libs/diatheke  -b KJV -k Ps117 \
>> /tmp/ram/musl-diatheke.txt 2>&1
> 
> 
> The resulting log is very large (>5k lines), and I don't see any
> obvious problems. (Not that I'd be likely to!) If desired, I can
> attach a zipped or bzipped version. Following is the part (~80
> lines) that's most likely to be interesting.
> 
> Thank you, Isaac Dunham
> 
> ==4701==    by 0x4809CBA:
> DiathekeMgr::DiathekeMgr(sword::SWConfig*, sword::SWConfig*, bool,
> char, char, bool, bool) (diathekemgr.cpp:40) ==4701==    by
> 0x48074CE: doquery(unsigned long, unsigned char, unsigned char,
> unsigned long, unsigned char, char const*, char const*, char
> const*, char const*, std::ostream*, char const*, signed char)
> (corediatheke.cpp:117) ==4701==    by 0x480452F: main
> (diatheke.cpp:286) ==4701== ==4701== Conditional jump or move
> depends on uninitialised value(s) ==4701==    at 0x1297FE: calloc
> (calloc.c:19) ==4701==    by 0x485D864:
> sword::ListKey::add(sword::SWKey const&) (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x4865BD6:
> sword::ListKey::operator<<(sword::SWKey const&) (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x4864F4D:
> sword::VerseKey::parseVerseList(char const*, char const*, bool,
> bool) (in /usr/lib/libsword-1.7.3.so) ==4701==    by 0x486366E:
> sword::VerseKey::parse(bool) (in /usr/lib/libsword-1.7.3.so) 
> ==4701==    by 0x4865CCD: sword::VerseKey::setText(char const*) (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x4863D17:
> sword::VerseKey::parseVerseList(char const*, char const*, bool,
> bool) (in /usr/lib/libsword-1.7.3.so) ==4701==    by 0x4807F21:
> doquery(unsigned long, unsigned char, unsigned char, unsigned long,
> unsigned char, char const*, char const*, char const*, char const*,
> std::ostream*, char const*, signed char) (corediatheke.cpp:386) 
> ==4701==    by 0x480452F: main (diatheke.cpp:286) ==4701==
> Uninitialised value was created ==4701==    at 0x12385D: ???
> (syscall.s:35) ==4701==    by 0x12A488: malloc (malloc.c:379) 
> ==4701==    by 0x48094E5: sword::SWBuf::assureSize(unsigned int)
> (swbuf.h:62) ==4701==    by 0x48691FE:
> sword::SWBuf::SWBuf(sword::SWBuf const&, unsigned long) (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x486D5C6: ??? (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x486E6D2:
> std::_Rb_tree<sword::SWBuf, std::pair<sword::SWBuf const,
> sword::SWBuf>, std::_Select1st<std::pair<sword::SWBuf const,
> sword::SWBuf> >, std::less<sword::SWBuf>,
> std::allocator<std::pair<sword::SWBuf const, sword::SWBuf> >
> >::_M_insert_equal(std::pair<sword::SWBuf const, sword::SWBuf>
> const&) (in /usr/lib/libsword-1.7.3.so) ==4701==    by 0x486DE24:
> sword::SWConfig::Load() (in /usr/lib/libsword-1.7.3.so) ==4701==
> by 0x486E060: sword::SWConfig::SWConfig(char const*) (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x487E967:
> sword::SWLocale::SWLocale(char const*) (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x487FBC9:
> sword::LocaleMgr::loadConfigDir(char const*) (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x4880245:
> sword::LocaleMgr::LocaleMgr(char const*) (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x488045B:
> sword::LocaleMgr::getSystemLocaleMgr() (in
> /usr/lib/libsword-1.7.3.so) ==4701== ==4701== Conditional jump or
> move depends on uninitialised value(s) ==4701==    at 0x1297FE:
> calloc (calloc.c:19) ==4701==    by 0x4891599:
> sword::ZipCompress::Decode() (in /usr/lib/libsword-1.7.3.so) 
> ==4701==    by 0x4890801: sword::SWCompress::Buf(char const*,
> unsigned long*) (in /usr/lib/libsword-1.7.3.so) ==4701==    by
> 0x489485F: sword::zVerse::zReadText(char, long, unsigned short,
> unsigned long, sword::SWBuf&) const (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x48E3863:
> sword::zText::getRawEntryBuf() const (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x4887B00:
> sword::SWModule::renderText(char const*, int, bool) (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x4808734:
> doquery(unsigned long, unsigned char, unsigned char, unsigned long,
> unsigned char, char const*, char const*, char const*, char const*,
> std::ostream*, char const*, signed char) (corediatheke.cpp:424) 
> ==4701==    by 0x480452F: main (diatheke.cpp:286) ==4701==
> Uninitialised value was created ==4701==    at 0x12385D: ???
> (syscall.s:35) ==4701==    by 0x12A488: malloc (malloc.c:379) 
> ==4701==    by 0x48094E5: sword::SWBuf::assureSize(unsigned int)
> (swbuf.h:62) ==4701==    by 0x48691FE:
> sword::SWBuf::SWBuf(sword::SWBuf const&, unsigned long) (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x486D5C6: ??? (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x486E6D2:
> std::_Rb_tree<sword::SWBuf, std::pair<sword::SWBuf const,
> sword::SWBuf>, std::_Select1st<std::pair<sword::SWBuf const,
> sword::SWBuf> >, std::less<sword::SWBuf>,
> std::allocator<std::pair<sword::SWBuf const, sword::SWBuf> >
> >::_M_insert_equal(std::pair<sword::SWBuf const, sword::SWBuf>
> const&) (in /usr/lib/libsword-1.7.3.so) ==4701==    by 0x486DE24:
> sword::SWConfig::Load() (in /usr/lib/libsword-1.7.3.so) ==4701==
> by 0x486E060: sword::SWConfig::SWConfig(char const*) (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x487E967:
> sword::SWLocale::SWLocale(char const*) (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x487FBC9:
> sword::LocaleMgr::loadConfigDir(char const*) (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x4880245:
> sword::LocaleMgr::LocaleMgr(char const*) (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x488045B:
> sword::LocaleMgr::getSystemLocaleMgr() (in
> /usr/lib/libsword-1.7.3.so) ==4701== Psalms 117:1: O praise the
> LORD, all ye nations: praise him, all ye people. ==4701==
> Conditional jump or move depends on uninitialised value(s) ==4701==
> at 0x1214DF: __funcs_on_exit (atexit.c:23) ==4701==    by 0x121625:
> exit (exit.c:22) ==4701==    by 0x120E1A: (below main)
> (__libc_start_main.c:76) ==4701==  Uninitialised value was created 
> ==4701==    at 0x12385D: ??? (syscall.s:35) ==4701==    by
> 0x12A488: malloc (malloc.c:379) ==4701==    by 0x48094E5:
> sword::SWBuf::assureSize(unsigned int) (swbuf.h:62) ==4701==    by
> 0x48691FE: sword::SWBuf::SWBuf(sword::SWBuf const&, unsigned long)
> (in /usr/lib/libsword-1.7.3.so) ==4701==    by 0x48777FB:
> std::_Rb_tree<sword::SWBuf, std::pair<sword::SWBuf const,
> sword::SWOptionFilter*>, std::_Select1st<std::pair<sword::SWBuf
> const, sword::SWOptionFilter*> >, std::less<sword::SWBuf>,
> std::allocator<std::pair<sword::SWBuf const,
> sword::SWOptionFilter*> >
> >::_M_insert_unique(std::pair<sword::SWBuf const,
> sword::SWOptionFilter*> const&) (in /usr/lib/libsword-1.7.3.so) 
> ==4701==    by 0x48702D3: sword::SWMgr::init() (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x486F889:
> sword::SWMgr::commonInit(sword::SWConfig*, sword::SWConfig*, bool,
> sword::SWFilterMgr*, bool) (in /usr/lib/libsword-1.7.3.so) ==4701==
> by 0x48748B9: sword::SWMgr::SWMgr(sword::SWConfig*,
> sword::SWConfig*, bool, sword::SWFilterMgr*, bool) (in
> /usr/lib/libsword-1.7.3.so) ==4701==    by 0x4809CBA:
> DiathekeMgr::DiathekeMgr(sword::SWConfig*, sword::SWConfig*, bool,
> char, char, bool, bool) (diathekemgr.cpp:40) ==4701==    by
> 0x48074CE: doquery(unsigned long, unsigned char, unsigned char,
> unsigned long, unsigned char, char const*, char const*, char
> const*, char const*, std::ostream*, char const*, signed char)
> (corediatheke.cpp:117) ==4701==    by 0x480452F: main
> (diatheke.cpp:286) ==4701== Psalms 117:2: For his merciful kindness
> is great toward us: and the truth of the LORD endureth for ever.
> Praise ye the LORD. : For his merciful kindness is great toward us:
> and the truth of the LORD endureth for ever. Praise ye the LORD. 
> (KJV) ==4701== ==4701== HEAP SUMMARY: ==4701==     in use at exit:
> 0 bytes in 0 blocks ==4701==   total heap usage: 0 allocs, 0 frees,
> 0 bytes allocated ==4701== ==4701== All heap blocks were freed --
> no leaks are possible
> 
> 
> 
> _______________________________________________ sword-devel mailing
> list: sword-devel at crosswire.org 
> http://www.crosswire.org/mailman/listinfo/sword-devel Instructions
> to unsubscribe/change your settings at above page
> 

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2

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
sRDFS5i+k1ELYY1IdHBY
=rQga
-----END PGP SIGNATURE-----



More information about the sword-devel mailing list