Description:
I've compiled MySQL 5.0.18 on SuSE Linux 10.0, using the distribution's gcc [4.0.2 20050901 (prerelease)] and a self-compiled OpenSSL 0.9.8a [the distribution comes with 0.9.7g]. When running mysql-test-run [using the distribution's Perl 5.8.7, self-installing DBI 1.50 and DBD::mysql 3.0002], the mysql_client_test test reports a failure in this manner:
Errors are (from /usr/local/mysql/mysql-test/var/log/mysqltest-time) :
mysql_client_test.c:3869: check failed: '(int) i8_data == rc'
mysqltest: At line 10: command "$MYSQL_CLIENT_TEST --getopt-ll-test=25600M" failed
(the last lines may be the most important ones)
The two error lines above were the only contents of the mysqltest-time file. Note that this test also failed individually when mysql-test-run was run with the --local mysql_client_test option. Both var/log/mysqltest.trace and var/log/mysql_client_test.trace files are available, which were created by using both the --debug and the --local mysql_client_test options.
Given that the failure was with checking the value of a bound and fetched tiny integer (I presume that the int8 type is a signed char), perhaps one of the possible causes could be that it's some sort of bug (e.g. a casting bug) with this particular version of gcc?
How to repeat:
Install SuSE Linux 10.0. Download/install all security patches/bug fixes from suse.com using its yast2 utility. Download OpenSSL 0.9.8a, and compile it like this:
./config --prefix='/usr/local' --openssldir='/usr/local/openssl'\
no-sse2 threads shared zlib-dynamic no-rc5 no-mdc2 no-idea\
`perl -e 'use Config; print $Config{"ccflags"}'`\
`perl -e 'use Config; print $Config{"optimize"}'`
make depend
make
make test
make install
After its installation, update both the ${HOME}/.profile file and the shell's current environment to include /usr/local/lib in the LD_LIBRARY_PATH environment variable. Follow the instructions in MySQL 5.0.18's INSTALL-SOURCE file, but using this configure command line:
CFLAGS='-O3 -mpentiumpro' CXX='gcc'\
CXXFLAGS='-O3 -mpentiumpro -felide-constructors -fno-exceptions -fno-rtti'\
./configure --prefix='/usr/local/mysql' --enable-assembler --with-debug\
--with-charset='utf8' --with-extra-charsets='all'\
--with-collation='utf8_unicode_ci' --with-big-tables\
--with-openssl='/usr/local' --enable-thread-safe-client
Start mysql_safe according to INSTALL-SOURCE, and run mysql-test-run, with or without the --local mysql_client_test option, with or without the --debug option.