Bug #16287 '(int) i8_data == rc' failure in mysql_client_test
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.
Portions of this website are copyright © 2001, 2002 The PHP Group
Page generated in 0.040 sec. using MySQL 8.4.7-u6-cloud
Timestamp references displayed by the system are UTC.
Content reproduced on this site is the property of the
respective copyright holders.
It is not reviewed in advance
by Oracle and does not necessarily represent the opinion of
Oracle or any other party.
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.