[oi-dev] hipster mysql library core dumps

Alexander Pyhalov alp at rsu.ru
Sat Aug 10 06:10:34 UTC 2013


Hello.
I also don't see anything now, so forward the message to oi-dev for 
other developers to look it through.
I would appreciate some reduced sample of broken code, which would allow 
us to test possible fixes...

By the way, do charset settings (character_set_client and other) and 
LC_* variables influence this crash?

On 08/09/2013 15:31, Gary Gendel wrote:
> Alexander,
>
> This is a program that I wrote for my company as part of the tool suite
> we sell.  It run pulls out SQL files from an SCM and pipes them to mysql
> (it's a mysql crash recovery program that gets the SCM and the metadata
> stored in mysql in sync).
>
> Recompiling doesn't help.  I must use the Sun compiler because the
> vendor supplies the SCM C++ API is compiled with that.  I also ran it
> under dbx with "check -all" enabled.  It stops here:
>
> (dbx) cont
> Reading libpthread.so.1
> Write to read-only (wro) on thread 1:
> Attempting to write 1 byte at address 0xee0bb35c
> t at 1 (l at 1) stopped in my_xml_scan at 0xedf8adcc
> 0xedf8adcc: my_xml_scan+0x002c: testb $0x00000008,0xfffe0320(%ebx,%eax)
> Current function is openMysql
>    187       if (mysql_real_connect(conn, host, user, pw, db, port,
> (dbx) where
> current thread: t at 1
>    [1] my_xml_scan(0xf5d, 0xedf1d19c, 0xf31d0100, 0x0, 0x0, 0x3, 0xa,
> 0x8045ac4, 0xfefd2709, 0xee0db000, 0x80456c8, 0x4755, 0x80456a8,
> 0xfefc3330, 0xfeef0760, 0x960), at 0xedf8adcc
>    [2] my_xml_parse(0x80456c8, 0x8139ce8, 0x4755, 0x0, 0x0, 0x0), at
> 0xedf8b36a
>    [3] my_parse_charset_xml(0x8139ce8, 0x4755, 0xedf69470, 0x0,
> 0xfeffb0a4, 0x8046378), at 0xedf76d0f
>    [4] 2(0xfe5012b9, 0xe04471c0, 0xedf6a2b0, 0x0, 0xfe501bb4,
> 0xfeffb0a4), at 0xedf69ef6
>    [5] get_charset_by_csname(0x810c980, 0x20, 0x10, 0xfe511d88,
> 0xfe5012b9, 0xe04471c0), at 0xedf6a2dc
>    [6] mysql_init_character_set(0x812a428, 0x812ec5f, 0xc, 0x0,
> 0x8046ae4, 0xf452fd73), at 0xedf8df9e
>    [7] mysql_real_connect(0x812a428, 0x812699c, 0x8126bac, 0x8126cfc,
> 0x8126304, 0xd34), at 0xedf8ea5f
> =>[8] openMysql(conn = 0x812a428, env = CLASS), line 187 in "libpm.cpp"
>    [9] getLastLogSequence(env = CLASS), line 227 in "libpm.cpp"
>    [10] main(argc = 3, argv = 0x80477d8), line 561 in "pmRestore.cpp"
>
> So it' looks like it's crashing when reading xml returned by a mysql
> server (version 5.5.28 running on a linux box).
>
> Interestingly, my other programs that talk to Mysql through QT do not
> exhibit this crash, so it may be likely that this is a compiler bug. The
> program has been tested on Linux, Windows, and Mac without issue (and is
> part of our regression suite). I've had to change the code on one
> function in another program because the Sun compiler and the gcc
> compiler disagree on the lifetime for a class returned by a function so
> I passed it as an argument instead.  If no one else has reported such an
> issue then I wouldn't kill myself over it.  However, I ran the
> regression suite successfully with this program before I upgraded to
> hipster.
>
> This isn't critical as we don't support OpenIndiana or Solaris and I can
> shut off the recovery tests in the regression suite to avoid the
> crashes.  I just planned to use my OpenIndiana server as a continuous
> build and test machine to free my desktop's mouse from being taken over
> during the several hours of GUI testing.
>
> The ldd of this program is:
>      libmysqlclient.so.16 =>  /usr/mysql/lib/mysql/libmysqlclient.so.16
>      libsocket.so.1 =>     /lib/libsocket.so.1
>      libnsl.so.1 =>     /lib/libnsl.so.1
>      libssl.so.0.9.8 =>     /lib/libssl.so.0.9.8
>      libcrypto.so.0.9.8 =>     /lib/libcrypto.so.0.9.8
>      libthread.so.1 =>     /lib/libthread.so.1
>      librt.so.1 =>     /lib/librt.so.1
>      libz.so.1 =>     /usr/lib/libz.so.1
>      libCstd.so.1 =>     /usr/lib/libCstd.so.1
>      libCrun.so.1 =>     /usr/lib/libCrun.so.1
>      libm.so.2 =>     /lib/libm.so.2
>      libc.so.1 =>     /lib/libc.so.1
>      libpthread.so.1 =>     /lib/libpthread.so.1
>      libgcc_s.so.1 =>     /usr/lib/libgcc_s.so.1
>      libmp.so.2 =>     /lib/libmp.so.2
>      libmd.so.1 =>     /lib/libmd.so.1
>
> The ldd of another program that doesn't have the problem is:
>      libsquishqtwrapper.so =>
>   /usr/local/squish-5.0.0-qt-src/lib/libsquishqtwrapper.so
>      libsquishhook.so =>
>   /usr/local/squish-5.0.0-qt-src/lib/libsquishhook.so
>      libqt-mt.so.3 =>     /usr/local/qt/lib/libqt-mt.so.3
>      libmysqlclient.so.16 =>  /usr/mysql/lib/mysql/libmysqlclient.so.16
>      libsocket.so.1 =>     /lib/libsocket.so.1
>      libnsl.so.1 =>     /lib/libnsl.so.1
>      libssl.so.0.9.8 =>     /lib/libssl.so.0.9.8
>      libcrypto.so.0.9.8 =>     /lib/libcrypto.so.0.9.8
>      libthread.so.1 =>     /lib/libthread.so.1
>      librt.so.1 =>     /lib/librt.so.1
>      libICE.so.6 =>     /usr/lib/libICE.so.6
>      libSM.so.6 =>     /usr/lib/libSM.so.6
>      libdl.so.1 =>     /lib/libdl.so.1
>      libXext.so.0 =>     /usr/lib/libXext.so.0
>      libX11.so.4 =>     /usr/lib/libX11.so.4
>      libresolv.so.2 =>     /lib/libresolv.so.2
>      libz.so.1 =>     /usr/lib/libz.so.1
>      libCstd.so.1 =>     /usr/lib/libCstd.so.1
>      libCrun.so.1 =>     /usr/lib/libCrun.so.1
>      libm.so.2 =>     /lib/libm.so.2
>      libc.so.1 =>     /lib/libc.so.1
>      libpthread.so.1 =>     /lib/libpthread.so.1
>      libdemangle.so.1 =>     /usr/lib/libdemangle.so.1
>      libXtst.so.1 =>     /usr/lib/libXtst.so.1
>      libGL.so.1 =>     /usr/lib/libGL.so.1
>      libXmu.so.4 =>     /usr/lib/libXmu.so.4
>      libXrender.so.1 =>     /usr/lib/libXrender.so.1
>      libXrandr.so.2 =>     /usr/lib/libXrandr.so.2
>      libXcursor.so.1 =>     /usr/lib/libXcursor.so.1
>      libXinerama.so.1 =>     /usr/lib/libXinerama.so.1
>      libXft.so.2 =>     /usr/lib/libXft.so.2
>      libfreetype.so.6 =>     /usr/lib/libfreetype.so.6
>      libfontconfig.so.1 =>     /usr/lib/libfontconfig.so.1
>      libgcc_s.so.1 =>     /usr/lib/libgcc_s.so.1
>      libmp.so.2 =>     /lib/libmp.so.2
>      libmd.so.1 =>     /lib/libmd.so.1
>      libXau.so.6 =>     /usr/lib/libXau.so.6
>      libXdmcp.so.6 =>     /usr/lib/libXdmcp.so.6
>      libXi.so.5 =>     /usr/lib/libXi.so.5
>      libXxf86vm.so.1 =>     /usr/lib/libXxf86vm.so.1
>      libXdamage.so.1 =>     /usr/lib/libXdamage.so.1
>      libXfixes.so.1 =>     /usr/lib/libXfixes.so.1
>      libdrm.so.2 =>     /usr/lib/xorg/libdrm.so.2
>      libXt.so.4 =>     /usr/lib/libXt.so.4
>      libXmuu.so.1 =>     /usr/lib/libXmuu.so.1
>      libbz2.so.1 =>     /usr/lib/libbz2.so.1
>      libexpat.so.1 =>     /usr/lib/libexpat.so.1
>      libXevie.so.1 =>     /usr/lib/libXevie.so.1
>      libXss.so.1 =>     /usr/lib/libXss.so.1
>
> So nothing blatantly sticks out.



-- 
Best regards,
Alexander Pyhalov,
system administrator of Computer Center of Southern Federal University




More information about the oi-dev mailing list