Description:
mysql-test-run.pl:
If I initiate the databases and start a MySQL server
./mysql-test-run.pl --socket=/tmp/weg .... --start-and-exit
or do the same but start some tests
./mysql-test-run.pl --socket=/tmp/weg ....
any socket setting will be ignored.
It is neither documented that this will be ignored nor comes
a message about this fact.
So this bug report is a bit more than a pure change request.
Example:
./mysql-test-run.pl --socket=/tmp/weg --master_port=9999
--skip-ndb --start-and-exit
matthias@three:..../mysql-test> ps -elf | grep mysqld
0 S matthias ...........
/home/matthias/Arbeit/mysql-5.0/src-Z/sql/mysqld
......
--socket=/home/matthias/Arbeit/mysql-5.0/src-Z/mysql-test/var/tmp/master.sock
......
I assume the problem comes from the following source lines:
if ( $opt_extern )
{
$glob_use_running_server= 1;
$opt_skip_rpl= 1; # We don't run rpl test cases
$master->[0]->{'path_mysock'}= $opt_socket;
}
The problem disappears, when
$master->[0]->{'path_mysock'}= $opt_socket;
is moved out of the "if ( $opt_extern )".
This solution runs fine in the following situations
1. ./mysql-test-run.pl --socket=/tmp/weg --master_port=9999
--skip-ndb --start-and-exit
2. "Simple" standard testcases in extern mode
./mysql-test-run.pl --socket=/tmp/weg --master_port=9999
--skip-ndb --extern alias null
3. Replication testcases might be critical when using custom
socket settings, but there is no problem, because
--extern causes that these tests are omitted.
./mysql-test-run.pl --socket=/tmp/weg --master_port=9999
--force --extern --do-test=rpl
4. Full regression test:
All tests pass except "query_cache_notembedded" which fails
on two connects
connect (root,localhost,root,,test,$MASTER_MYPORT,master.sock);
I replaced 'master.sock' by $MASTER_MYSOCK and it immediately
helped.
My environment:
- Intel PC with Linux(SuSE 9.3)
- MySQL compiled from source
4.1, 5.0, 5.1 last ChangeSet around 2006-01-17
I analyzed the bug within MySQL 5.1.
A colleague had the same problem with MySQL 5.0.
I assume that the 4.1 version of mysql-test-run.pl
shows the same behaviour, because it contains
similar code setting the socket.
How to repeat:
Please start mysql-test-run.pl with the options mentioned above.
Suggested fix:
I think a fix of this problem in MySQL 4.1 is not needed,
but in 5.0 it would give significant benefits.
Description: mysql-test-run.pl: If I initiate the databases and start a MySQL server ./mysql-test-run.pl --socket=/tmp/weg .... --start-and-exit or do the same but start some tests ./mysql-test-run.pl --socket=/tmp/weg .... any socket setting will be ignored. It is neither documented that this will be ignored nor comes a message about this fact. So this bug report is a bit more than a pure change request. Example: ./mysql-test-run.pl --socket=/tmp/weg --master_port=9999 --skip-ndb --start-and-exit matthias@three:..../mysql-test> ps -elf | grep mysqld 0 S matthias ........... /home/matthias/Arbeit/mysql-5.0/src-Z/sql/mysqld ...... --socket=/home/matthias/Arbeit/mysql-5.0/src-Z/mysql-test/var/tmp/master.sock ...... I assume the problem comes from the following source lines: if ( $opt_extern ) { $glob_use_running_server= 1; $opt_skip_rpl= 1; # We don't run rpl test cases $master->[0]->{'path_mysock'}= $opt_socket; } The problem disappears, when $master->[0]->{'path_mysock'}= $opt_socket; is moved out of the "if ( $opt_extern )". This solution runs fine in the following situations 1. ./mysql-test-run.pl --socket=/tmp/weg --master_port=9999 --skip-ndb --start-and-exit 2. "Simple" standard testcases in extern mode ./mysql-test-run.pl --socket=/tmp/weg --master_port=9999 --skip-ndb --extern alias null 3. Replication testcases might be critical when using custom socket settings, but there is no problem, because --extern causes that these tests are omitted. ./mysql-test-run.pl --socket=/tmp/weg --master_port=9999 --force --extern --do-test=rpl 4. Full regression test: All tests pass except "query_cache_notembedded" which fails on two connects connect (root,localhost,root,,test,$MASTER_MYPORT,master.sock); I replaced 'master.sock' by $MASTER_MYSOCK and it immediately helped. My environment: - Intel PC with Linux(SuSE 9.3) - MySQL compiled from source 4.1, 5.0, 5.1 last ChangeSet around 2006-01-17 I analyzed the bug within MySQL 5.1. A colleague had the same problem with MySQL 5.0. I assume that the 4.1 version of mysql-test-run.pl shows the same behaviour, because it contains similar code setting the socket. How to repeat: Please start mysql-test-run.pl with the options mentioned above. Suggested fix: I think a fix of this problem in MySQL 4.1 is not needed, but in 5.0 it would give significant benefits.