Bug #45073 Test "mysql_client_test" aborts with "ESPIPE"
Submitted: 25 May 2009 17:05 Modified: 15 Jul 2009 16:48
Reporter: Joerg Bruehe Email Updates:
Status: Verified Impact on me:
None 
Category:Tests: Server Severity:S3 (Non-critical)
Version:5.0.82 + 5.0.74sp1, 5.1, 5.5 OS:Solaris (9 + 10, x86)
Assigned to: CPU Architecture:Any

[25 May 2009 17:05] Joerg Bruehe
Description:
This bug is new in 5.0.82 (the test passes in 80 and 81),
and it is specific to Solaris 9 + 10 (not 8!) on x86.

It also shows in 5.0.74sp1, I assume it got there by some backport for the QSP build.

The symptom is not really descriptive:

=====
mysql_client_test              [ fail ]

mysqltest: At line NNN: command "$MYSQL_CLIENT_TEST --getopt-ll-test=25600M >> $MYSQLTEST_VARDIR/log/mysql_cli
ent_test.out.log 2>&1" failed

The result from queries just before the failure was:
exec of '/export/home/my/tmp-200905061302-5.0.74sp1-9974/solaris9-x86/test/bin/mysql_client_test --no-defaults
 --testcase --user=root --port=PORT --socket=/PATH/master.sock --vardir=/PATH/mysql-test/var --getopt-ll-test=
25600M >> /PATH/mysql-test/var/log/mysql_client_test.out.log 2>&1' failed, error: 256, status: 1, errno: 29

More results from queries before failure can be found in /PATH/mysql-test/var/log/mysql_client_test.log

Stopping All Servers
=====

So the only real info we have is the errno 29 which is "ESPIPE".

I checked the directories in which the tests were run, especially the "var/" subdirectory, but did not find any log or trace file bearing "mysql_client_test" in its name. 

How to repeat:
Build + test on Solaris 9 or 10, x86.
[2 Jun 2009 21:23] Joerg Bruehe
The test failure has now progressed to cluster-7.0.6:

Same symptom, same platforms affected.
[3 Jun 2009 7:10] Bernt Marius Johnsen
Is it possible to get the content of /PATH/mysql-test/va/log/mysql_client_test.log for this failure?
[13 Jul 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".
[3 Aug 2009 22:39] BJ Dierkes
Same problem here:

System: Red Hat Enterprise Linux 5.3 i386
MySQL Version: 5.0.84

=====
mysql-bug41486                 [ pass ]           1981
mysql-bug45236                 [ pass ]            920
mysql                          [ pass ]          12084
mysql_client_test              [ fail ]
mysqltest: At line 12: command "$MYSQL_CLIENT_TEST --getopt-ll-test=25600M >> $MYSQLTEST_VARDIR/log/mysql_client_test.out.log 2>&1" failed
The result from queries just before the failure was:
exec of '/builddir/build/BUILD/mysql-5.0.84/tests/mysql_client_test --no-defaults --testcase --user=root --port=9306 --socket=/builddir/build/BUILD/mysql-5.0.84/mysql-test/var/tmp/master.sock --vardir=/builddir/build/BUILD/mysql-5.0.84/mysql-test/var --getopt-ll-test=25600M >> /builddir/build/BUILD/mysql-5.0.84/mysql-test/var/log/mysql_client_test.out.log 2>&1' failed, error: 256, status: 1, errno: 0
More results from queries before failure can be found in /builddir/build/BUILD/mysql-5.0.84/mysql-test/var/log/mysql_client_test.log
Aborting: mysql_client_test failed in default mode. 
To continue, re-run with '--force'.
Stopping All Servers
make: *** [test-ns] Error 1
=====

Note that this does not happen on EL 5.3 64bit.  The contents of '/builddir/build/BUILD/mysql-5.0.84/mysql-test/var/log/mysql_client_test.log' are:

=====
]$ cat /builddir/build/BUILD/mysql-5.0.84/mysql-test/var/log/mysql_client_test.log
exec of '/builddir/build/BUILD/mysql-5.0.84/tests/mysql_client_test --no-defaults --testcase --user=root --port=9306 --socket=/builddir/build/BUILD/mysql-5.0.84/mysql-test/var/tmp/master.sock --vardir=/builddir/build/BUILD/mysql-5.0.84/mysql-test/var --getopt-ll-test=25600M >> /builddir/build/BUILD/mysql-5.0.84/mysql-test/var/log/mysql_client_test.out.log 2>&1' failed, error: 256, status: 1, errno: 0
=====
[3 Aug 2009 22:42] BJ Dierkes
Forgot to mention:  This is slightly different in that the 'errno' is 0 and not 29.
[4 Aug 2009 8:48] Joerg Bruehe
"ESPIPE" (text message: "Illegal seek") is an "errno" value, typically 29.

If you get "errno: 0", I see no indication of "ESPIPE" in your case.
To me, it looks like a different issue.
Too bad all we get is just the abort message, but no information about the actions the program was just executing.
[18 Sep 2009 7:56] Eugene Toropov
The same on Linux Debian 5.0:

CURRENT_TEST: main.mysql_client_test
mysqltest: At line 14: command "$MYSQL_CLIENT_TEST --getopt-ll-test=25600M >> $MYSQLTEST_VARDIR/log/mysql_client_test.out.log 2>&1" failed

Output from before failure:
exec of '/home/jt/dist/mysql/mysql-5.1.38/tests/mysql_client_test --defaults-file=/home/jt/dist/mysql/mysql-5.1.38/mysql-test/var/my.cnf --testcase --vardir=/home/jt/dist/mysql/mysql-5.1.38/mysql-test/var --getopt-ll-test=25600M >> /home/jt/dist/mysql/mysql-5.1.38/mysql-test/var/log/mysql_client_test.out.log 2>&1' failed, error: 256, status: 1, errno: 0

The result from queries just before the failure was:
SET @old_general_log= @@global.general_log;

 - saving '/home/jt/dist/mysql/mysql-5.1.38/mysql-test/var/log/main.mysql_client_test/' to '/home/jt/dist/mysql/mysql-5.1.38/mysql-test/var/log/main.mysql_client_test/'

Only  387  of 892 completed.
mysql-test-run: *** ERROR: Not all tests completed
make: *** [test-ns] Error 1

gcc version 4.3.2 (Debian 4.3.2-1.1
[18 Sep 2009 8:32] Joerg Bruehe
Eugene,

sorry to contradict you: This isn't the same problem.
Your message contains "errno 0", so my comment of Aug 4 applies;
the distinctive problem here is "ESPIPE" (errno 29).
[24 Sep 2009 16:12] James Grinter
I get ESPIPE, Solaris 10/SPARC, building 5.1.38

mysqltest: At line 14: command "$MYSQL_CLIENT_TEST --getopt-ll-test=25600M >> $MYSQLTEST_VARDIR/log/mysql_client_test.out.log 2>&1" failed

Output from before failure:
exec of '/vol/src/mysql-5.1.38/tests/mysql_client_test --defaults-file=/vol/src/mysql-5.1.38/mysql-test/var/my.cnf --testcase --vardir=/vol/src/mysql-5.1.38/mysql-test/var --getopt-ll-test=25600M >> /vol/src/mysql-5.1.38/mysql-test/var/log/mysql_client_test.out.log 2>&1' failed, error: 256, status: 1, errno: 29

The result from queries just before the failure was:
SET @old_general_log= @@global.general_log;

 - saving '/vol/src/mysql-5.1.38/mysql-test/var/log/main.mysql_client_test/' to '/vol/src/mysql-5.1.38/mysql-test/var/log/main.mysql_client_test/'
[21 Oct 2009 16:04] Joerg Bruehe
Problem persists in the build of 5.1.40.

Of all runs of this test on these platforms (including retries),
12 pass and 72 fail.

Setting the lead based on the version.
[29 Oct 2009 12:27] Joerg Bruehe
Same problem in the build of cluster-6.3.27a which is based on the 5.1.37 server.

The test passed 5 times, these were the debug runs,
and failed in all other (= optimized) runs, which is 25,
where it also failed on retries.
Perfectly reproducible.
[4 Nov 2009 6:20] zucheng wang
OS Freebsd7.0 :

mysqltest: Result content mismatch
 - saving '/etc/mydriver/mysql-5.1.40-freebsd7.0-i386/mysql-test/var/log/main.partition_innodb-InnoDB plugin/' to '/etc/mydriver/mysql-5.1.40-freebsd7.0i386/mysql-test/var/log/main.partition_innodb-InnoDB plugin/'Only  583  of 1425 completed.
mysql-test-run: *** ERROR: Not all tests completed
[4 Nov 2009 6:27] zucheng wang
OS Freebsd7.0 :

mysqltest: Result content mismatch
 - saving '/etc/mydriver/mysql-5.1.40-freebsd7.0-i386/mysql-test/var/log/main.partition_innodb-InnoDB plugin/' to '/etc/mydriver/mysql-5.1.40-freebsd7.0i386/mysql-test/var/log/main.partition_innodb-InnoDB plugin/'Only  583  of 1425 completed.
mysql-test-run: *** ERROR: Not all tests completed
[18 Nov 2009 18:28] Joerg Bruehe
Same effect in 5.5.0-beta.
[8 Dec 2009 6:33] wang wei
Same effect in 5.1.41
[11 Nov 2010 3:07] Jeff Nokes
Save happening on CentOS 5.2, 32-bit.  MySQL 5.1.52

main.mysql_client_test                   [ fail ]
        Test ended at 2010-11-10 19:17:17

CURRENT_TEST: main.mysql_client_test                                                                               mysqltest: At line 15: command "$MYSQL_CLIENT_TEST --getopt-ll-test=25600M >> $MYSQLTEST_VARDIR
/log/mysql_client_test.out.log 2>&1" failed

Output from before failure:                                                                                        exec of '/vendor/apps/mysql/5.1.52/mysql-5.1.52_raw/tests/mysql_client_test --defaults-file=/ve                    ndor/apps/mysql/5.1.52/mysql-5.1.52_raw/mysql-test/var/my.cnf --testcase --vardir=/vendor/apps/                    mysql/5.1.52/mysql-5.1.52_raw/mysql-test/var --getopt-ll-test=25600M >> /vendor/apps/mysql/5.1.                    52/mysql-5.1.52_raw/mysql-test/var/log/mysql_client_test.out.log 2>&1' failed, error: 256, stat
us: 1, errno: 0

The result from queries just before the failure was:
SET @old_general_log= @@global.general_log;
SET @old_slow_query_log= @@global.slow_query_log;
                                                                                                                    - saving '/vendor/apps/mysql/5.1.52/mysql-5.1.52_raw/mysql-test/var/log/main.mysql_client_test
/' to '/vendor/apps/mysql/5.1.52/mysql-5.1.52_raw/mysql-test/var/log/main.mysql_client_test/'

Only  398  of 1025 completed.
mysql-test-run: *** ERROR: Not all tests completed
make: *** [test-ns] Error 1