Bug #44348 Patch for bug #40363 causes regression test failure
Submitted: 17 Apr 2009 19:58 Modified: 28 Aug 2009 6:14
Reporter: [ name withheld ] Email Updates:
Status: Verified Impact on me:
Category:MySQL Server Severity:S3 (Non-critical)
Version:5.0.79, 5.0 bzr OS:Linux (RHEL-5)
Assigned to: CPU Architecture:Any

[17 Apr 2009 19:58] [ name withheld ]
5.0.79 fails the mysql_client_test regression test when built on i386 RHEL-5 (and, probably, most other 32-bit glibc platforms).  The reason is that the default value for max_join_size reads out as 4294967295,
which atoi() converts to 2147483647, *not* (int) -1, on this platform.  Then when that value is restored into max_join_size at the end of test_bug20023(), the big_selects option naturally fails to turn on.

How to repeat:
Run regression tests.

Suggested fix:
Probably it would be better if the default value of max_join_size read out as -1 instead of unsigned.
I'm working around it for now by hacking the test program, but I think this is really a server problem.
[29 Apr 2009 10:01] Sveta Smirnova
Thank you for the report.

Please indicate which concrete tests failed?
[29 Apr 2009 13:25] [ name withheld ]
I told you: mysql_client_test.
[30 Apr 2009 17:19] Sveta Smirnova
Thank you for the feedback.

Bug is not repeatable for me.

Please indicate MySQL package you downloaded (file name). If you build MySQL yourself please provide configure string you used.
[30 May 2009 23:00] Bugs System
No feedback was provided for this bug for over a month, so it is
being suspended automatically. If you are able to provide the
information that was originally requested, please do so and change
the status of the bug back to "Open".
[27 Aug 2009 17:46] Mark Callaghan
The RHEL/CentOS src RPMs apply this patch
from mysql-5.0.82sp1-1.el5.centos.src.rpm

diff -Naur mysql-5.0.79.orig/tests/mysql_client_test.c mysql-5.0.79/tests/mysql_client_test.c
--- mysql-5.0.79.orig/tests/mysql_client_test.c 2009-03-09 17:26:09.000000000 -0400
+++ mysql-5.0.79/tests/mysql_client_test.c      2009-04-17 16:18:58.000000000 -0400
@@ -16303,7 +16303,8 @@
   DIE_IF(mysql_query(con, query_buffer));
   DIE_UNLESS(rs= mysql_store_result(con));
   DIE_UNLESS(row= mysql_fetch_row(rs));
-  *var_value= atoi(row[0]);
+  /* use atoll so that 4294967295 converts to -1 not 2147483647 */
+  *var_value= atoll(row[0]);
[27 Aug 2009 17:48] Mark Callaghan
The file mysql-bug-44348.patch has the patch in the source RPM
[27 Aug 2009 21:25] Sveta Smirnova
Thank you for the feedback.

Verified as described on RHEL5 using latest sources. Bug is only repeatable if use release build: to repeat compile with ./configure (no options)