Bug #33997 No linux New make test failure after new patch.
Submitted: 22 Jan 2008 22:07 Modified: 24 Jan 2008 19:18
Reporter: Boyd GERBER Email Updates:
Status: Can't repeat Impact on me:
None 
Category:MySQL Server: Compiling Severity:S2 (Serious)
Version:5.0+ OS:Other (Non Linux. OpenServer 6/UnixWare 7.1.4)
Assigned to: CPU Architecture:Any

[22 Jan 2008 22:07] Boyd GERBER
Description:
Fix for bug 31880 created this bug.

It appears it is some what fixed.  But I get the below when trying to
run the test on Openserver 6.  It appears that the bug is only really
fixed on Linux systems.

# make test
cd mysql-test ; \
            /bin/perl ./mysql-test-run.pl
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LC_ALL = (unset),
        LC_COLLATE = "POSIX",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Logging: ./mysql-test-run.pl
071226 14:18:59 [Warning] option 'max_join_size': unsigned value
18446744073709551615 adjusted to 4294967295
071226 14:18:59 [Warning] option 'max_join_size': unsigned value
18446744073709551615 adjusted to 4294967295
071226 14:18:59 [Warning] option 'max_join_size': unsigned value
18446744073709551615 adjusted to 4294967295
071226 14:18:59 [Warning] option 'myisam_max_extra_sort_file_size':
unsigned value 2147483648 adjusted to 2147483647
MySQL Version 5.0.56
Skipping ndbcluster, mysqld not compiled with ndbcluster
Setting mysqld to support SSL connections
Using MTR_BUILD_THREAD      = 0
Using MASTER_MYPORT         = 9306
Using MASTER_MYPORT1        = 9307
Using SLAVE_MYPORT          = 9308
Using SLAVE_MYPORT1         = 9309
Using SLAVE_MYPORT2         = 9310
Using IM_PORT               = 9313
Using IM_MYSQLD1_PORT       = 9314
Using IM_MYSQLD2_PORT       = 9315
Killing Possible Leftover Processes
Removing Stale Files
Creating Directories
Installing Master Database
mysql-test-run: *** ERROR(child): can't dup STDOUT: Bad file number
mysql-test-run: *** ERROR: Error executing mysqld --bootstrap
Could not install system database from
/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/mysql-test/var/tmp/boot
strap.sql
see
/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/mysql-test/var/log/boot
strap.log
for errors
gmake: *** [test-ns] Error 1

How to repeat:
bkf clone bk://mysql.bkbits.net/mysql-5.0 mysql-5.0
cd bdb/dist;sh s_all
cd ../../innobase
autoreconf --force --install
cd ..
autoreconf --force --install
./BUILD/compile-pentium-max
make test
[22 Jan 2008 22:07] Boyd GERBER
bootstrap.log
/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/sql/mysqld --no-defaults --
bootstrap --basedir=/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/mysql-t
est --datadir=/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/mysql-test/va
r/master-data --skip-innodb --skip-ndbcluster --tmpdir=. --core-file --language=
/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/sql/share/english --charact
er-sets-dir=/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/sql/share/chars
ets

perl ./mysql-test-run.pl --script-debug 2>&1 | tee mtr-debug.log
-------------------------------------------------------------------
> perl ./mysql-test-run.pl --script-debug 2>&1 | tee mtr-debug.log
perl: warning: Setting locale failed.
perl: warning: Please check that your locale settings:
        LC_ALL = (unset),
        LC_COLLATE = "POSIX",
        LANG = "en_US.UTF-8"
    are supported and installed on your system.
perl: warning: Falling back to the standard locale ("C").
Logging: ./mysql-test-run.pl --script-debug
080122 22:01:01 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
080122 22:01:01 [Warning] option 'max_join_size': unsigned value 18446744073709551615 adjusted to 4294967295
080122 22:01:01 [Warning] option 'myisam_max_extra_sort_file_size': unsigned value 2147483648 adjusted to 2147483647
MySQL Version 5.0.56
Skipping ndbcluster, mysqld not compiled with ndbcluster
Setting mysqld to support SSL connections
####: LD_LIBRARY_PATH: /home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/libmysql/.libs/:/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/libmysql_r/.libs/:/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/zlib.libs/:/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/sql/.libs
####: DYLD_LIBRARY_PATH: /home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/libmysql/.libs/:/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/libmysql_r/.libs/:/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/zlib.libs/:/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/sql/.libs
####: SHLIB_PATH: /home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/libmysql/.libs/:/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/libmysql_r/.libs/:/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/zlib.libs/:/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/sql/.libs
####: LIBPATH: /home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/libmysql/.libs/:/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/libmysql_r/.libs/:/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/zlib.libs/:/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/sql/.libs
Using MTR_BUILD_THREAD      = 0
Using MASTER_MYPORT         = 9306
Using MASTER_MYPORT1        = 9307
Using SLAVE_MYPORT          = 9308
Using SLAVE_MYPORT1         = 9309
Using SLAVE_MYPORT2         = 9310
Using IM_PORT               = 9313
Using IM_MYSQLD1_PORT       = 9314
Using IM_MYSQLD2_PORT       = 9315
Killing Possible Leftover Processes
####: mtr_kill_leftovers(): started.
####:   - mysqld (pid: 0; pid file: '/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/mysql-test/var/run/master.pid'; socket: '/tmp/ZMA9dhKPK0/master.sock'; port: 9306)

####: -------------------------------------------------------------------------
####: spawn: /home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/client/mysqladmin  --no-defaults --user=root --password= --silent --port=9306 --protocol=tcp --connect_timeout=5 --shutdown_timeout=70 shutdown
####: spawn options:
####:   - append_log_file: 1
####: -------------------------------------------------------------------------

####:   - mysqld (pid: 0; pid file: '/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/mysql-test/var/run/master1.pid'; socket: '/tmp/ZMA9dhKPK0/master1.sock'; port: 9307)

####: -------------------------------------------------------------------------
####: spawn: /home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/client/mysqladmin  --no-defaults --user=root --password= --silent --port=9307 --protocol=tcp --connect_timeout=5 --shutdown_timeout=70 shutdown
####: spawn options:
####:   - append_log_file: 1
####: -------------------------------------------------------------------------

####:   - mysqld (pid: 0; pid file: '/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/mysql-test/var/run/slave.pid'; socket: '/tmp/ZMA9dhKPK0/slave.sock'; port: 9308)

####: -------------------------------------------------------------------------
####: spawn: /home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/client/mysqladmin  --no-defaults --user=root --password= --silent --port=9308 --protocol=tcp --connect_timeout=5 --shutdown_timeout=70 shutdown
####: spawn options:
####:   - append_log_file: 1
####: -------------------------------------------------------------------------

####:   - mysqld (pid: 0; pid file: '/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/mysql-test/var/run/slave1.pid'; socket: '/tmp/ZMA9dhKPK0/slave1.sock'; port: 9309)

####: -------------------------------------------------------------------------
####: spawn: /home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/client/mysqladmin  --no-defaults --user=root --password= --silent --port=9309 --protocol=tcp --connect_timeout=5 --shutdown_timeout=70 shutdown
####: spawn options:
####:   - append_log_file: 1
####: -------------------------------------------------------------------------

####:   - mysqld (pid: 0; pid file: '/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/mysql-test/var/run/slave2.pid'; socket: '/tmp/ZMA9dhKPK0/slave2.sock'; port: 9310)

####: -------------------------------------------------------------------------
####: spawn: /home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/client/mysqladmin  --no-defaults --user=root --password= --silent --port=9310 --protocol=tcp --connect_timeout=5 --shutdown_timeout=70 shutdown
####: spawn options:
####:   - append_log_file: 1
####: -------------------------------------------------------------------------

####: Waiting for mysqld servers to stop...
####: mtr_ping_with_timeout(): All mysqld instances are down.
####: Processing PID files in directory '/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/mysql-test/var/run'...
####: Checking known mysqld servers...
####: Pinging server (port: 9306)...
####: Pinging server (port: 9307)...
####: Pinging server (port: 9308)...
####: Pinging server (port: 9309)...
####: Pinging server (port: 9310)...
####: mtr_kill_leftovers(): finished.
Removing Stale Files
Creating Directories
Installing Master Database

####: -------------------------------------------------------------------------
####: STDIN  /home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/mysql-test/var/tmp/bootstrap.sql
####: STDOUT /home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/mysql-test/var/log/bootstrap.log
####: STDERR /home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/mysql-test/var/log/bootstrap.log
####: run: /home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/sql/mysqld  --no-defaults --bootstrap --basedir=/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/mysql-test --datadir=/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/mysql-test/var/master-data --skip-innodb --skip-ndbcluster --tmpdir=. --core-file --language=/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/sql/share/english --character-sets-dir=/home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/sql/share/charsets
####: spawn options:
####:   - append_log_file: 1
####: -------------------------------------------------------------------------

mysql-test-run: *** ERROR(child): can't dup STDOUT: Bad file number
mysql-test-run: *** ERROR: Error executing mysqld --bootstrap
Could not install system database from /home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/mysql-test/var/tmp/bootstrap.sql
see /home/mount/uw714/top/zenez/zen/build/osr6/mysql-5.0/mysql-test/var/log/bootstrap.log for errors

----------------------------------------------------------------------

This all worked prior to patch.
[22 Jan 2008 22:10] Boyd GERBER
The system prior to this patch would run the tests but fail because of the duplicate port numbers.  Now it does not even start the tests.
[24 Jan 2008 1:30] Sveta Smirnova
Thank you for the report.

I can not repeat described behavior with current development sources.

Compiled with native cc and configure option:

$  CC=cc CXX=CC ./configure  --enable-assembler --with-extra-charsets=complex --with-big-tables --with-readline --with-innodb  --with-archive-storage-engine --with-big-tables --with-blackhole-storage-engine --with-federated-storage-engine --with-csv-storage-engine --with-embedded-server --enable-local-infile 

Additionally I had similar problems on machines with not-standard Perl installation earlier.
[24 Jan 2008 19:18] Boyd GERBER
I rolled back the bk commits and it works.  I will have to see what I can do to make it more repoducable.
I do not have any problems on linux.  I did this test on SCO OpenServer 6.0 and UnixWare 7.1.4 with the stock install and Maintance Patches (MP)
[4 Feb 2008 18:50] Timothy Smith
Boyd,

This is odd; I really don't see how the change made in bug #31880 could have the effect you're getting.  Maybe a few experiments can shed some light on it.

First, you might take the old mysql-test-run.pl (which had the duplicate ports problem, but did succeed in installing the databases), and change the port assignments in command_line_setup() to:

  $opt_master_myport=          9306;
  $opt_slave_myport=           9308;
  $opt_ndbcluster_port=        9311;
  $opt_ndbcluster_port_slave=  9312;
  $im_port=                    9313;
  $im_mysqld1_port=            9314;
  $im_mysqld2_port=            9315;

What effect does this have?  If it causes the "Can't dup STDOUT" problem, then you can stop there.  If not, then take the next step.  Change those lines to:

  $opt_master_myport=         (-69.4) * 10 + 10000; # and 1
  $opt_slave_myport=          $opt_master_myport + 2;  # and 3 4
  $opt_ndbcluster_port=       $opt_master_myport + 5;
  $opt_ndbcluster_port_slave= $opt_master_myport + 6;
  $im_port=                   $opt_master_myport + 7;
  $im_mysqld1_port=           $opt_master_myport + 8;
  $im_mysqld2_port=           $opt_master_myport + 9;

That *should* behave identically.  If it does, then continue by adding this just before the first assignment:

  my $mtr_build_thread = -69.4;
  if ( lc($mtr_build_thread) eq 'auto' ) {
    print "Requesting build thread... ";
    $ENV{'MTR_BUILD_THREAD'} = $mtr_build_thread = mtr_require_unique_id_and_wait("/tmp/mysql-test-ports", 200, 299);
    print "got ".$mtr_build_thread."\n";
  }

This, too, should have no effect, since $mtr_build_thread eq 'auto' should always be false.

Finally, add this test after the assignments:

  if ( $opt_master_myport < 5001 or $opt_master_myport + 10 >= 32767 )
  {
    mtr_error("MTR_BUILD_THREAD number results in a port",
              "outside 5001 - 32767",
              "($opt_master_myport - $opt_master_myport + 10)");
  }

And, if all of this succeeds, then replace all of this code with the single call to set_mtr_build_thread_ports(-69.4), and test the result.

You've now walked, step-by-step, through the application of the patch which seems to be causing the problem.  Hopefully one of those steps will demonstrate where the problem is coming from.

Thanks,

Timothy