Bug #6025 Test "client_test" fails in 4.1.6-gamma build (2)
Submitted: 11 Oct 2004 12:35 Modified: 14 Oct 2004 22:56
Reporter: Joerg Bruehe Email Updates:
Status: Closed Impact on me:
None 
Category:MySQL Server: Compiling Severity:S1 (Critical)
Version:4.1.6-gamma OS:various Unix
Assigned to: Konstantin Osipov CPU Architecture:Any

[11 Oct 2004 12:35] Joerg Bruehe
Description:
Test "client_test" fails with identical symptoms in the 4.1.6-gamma build on various machines:
hpita2-64bit(HP-UX), butch-64bit(SunOS), aix43(AIX), sunfire100b-64bit(SunOS)
(Note: "aix43" is 32-bit, but all are big-endian)

client_test                    [ fail ]

Errors are (from /var/tmp/hpita2-64bit/test/mysql-debug-4.1.6-gamma-hp-hpux11.23-ia64-64bit/mysql-test/var/log/mysqltest-time) :
Assertion failed: tm[i].second_part == 0 || tm[i].second_part == second_part+count, file client_test.c, line 5548
sh: 18528 Abort(coredump)
/var/tmp/hpita2-64bit/test/mysql-debug-4.1.6-gamma-hp-hpux11.23-ia64-64bit/bin/mysqltest: command "$TESTS_BINDIR/client_test --testcase --user=root --socket=$MASTER_MYSOCK --port=$MYSQL_TCP_PORT" failed
(the last lines may be the most important ones)

Aborting: client_test failed. To continue, re-run with '--force'.

"Critical" / "High", because it blocks the subsequent tests.

How to repeat:
Run the test suite on any of these machines.
[11 Oct 2004 20:50] Konstantin Osipov
Good to hear.
Although I run before client_test on big-endian machines and wiped out all bugs that had popped up.
[14 Oct 2004 22:56] Konstantin Osipov
ChangeSet
  1.2102 04/10/15 02:52:52 konstantin@mysql.com +1 -0
  libmysql/libmysql.c:
   Fix for Bug#6025 "Test "client_test" fails in 4.1.6-gamma build (2)".
   No need for a test case, the bug is covered already.

  libmysql/libmysql.c
    1.268 04/10/15 02:52:49 konstantin@mysql.com +40 -38
    Fix for Bug#6025 "Test "client_test" fails in 4.1.6-gamma build (2)":
    the bug was in assignments like:
      *row+= read_binary_time(tm, row);
    which makes two assingments without a sequence point (read_binary_*
    changes *row too) => undefined behaviour.
    The fix changes read_binary_{time,date,datetime} signature to get
    rid of any probability to fall into the same trouble in future.