Description:
When using the script runall-new.pl instead of runall.pl to execute Random Query Generator tests, most runs seem to succeed on Unix/Linux. On Windows, however, there seems to be issues, one of which is running out of memory.
The script runall-new.pl uses the RQG's own server module to start/stop the database server, instead of relying on MTR (there may be other differences as well).
Example output:
# 2010-07-15T16:10:39 Starting
# 2010-07-15T16:10:39 # runall-new.pl \
# 2010-07-15T16:10:39 # --mysqld=--loose-skip-safemalloc \
# 2010-07-15T16:10:39 # --grammar=conf/runtime/information_schema.yy \
# 2010-07-15T16:10:39 # --threads=10 \
# 2010-07-15T16:10:39 # --duration=300 \
# 2010-07-15T16:10:39 # --mysqld=--log-output=file \
# 2010-07-15T16:10:39 # --reporters=Deadlock,ErrorLog,Backtrace \
# 2010-07-15T16:10:39 # --basedir=G:/pb2/test/sb_1-2041700-1279202869.16/mysql-5.6.99-m4-win-x86-test \
# 2010-07-15T16:10:39 # --vardir=G:/pb2/test/sb_1-2041700-1279202869.16/mysql-5.6.99-m4-win-x86-test/vardirs \
# 2010-07-15T16:10:39 # --mysqld=--loose-table-lock-wait-timeout=1 \
# 2010-07-15T16:10:39 # --mysqld=--loose-lock-wait-timeout=1 \
# 2010-07-15T16:10:39 # --mysqld=--loose-innodb-lock-wait-timeout=1 \
# 2010-07-15T16:10:39 # --queries=100000
[snip]
# 2010-07-15T16:11:20 Query: SELECT * FROM (test . `d` AS table1 INNER JOIN INFORMATION_SCHEMA . `COLUMNS` AS table2 ON ( table2 . `ORDINAL_POSITION` = table1 . `col_datetime_key` ) ) WHERE NOT (NOT ( table1 . `col_time_nokey` != table2 . `TABLE_SCHEMA` OR table2 . `COLLATION_NAME` >= '2009-05-28 06:43:00') OR table2 . `TABLE_SCHEMA` <= table2 . `IS_NULLABLE`) ORDER BY table1 . `col_varchar_key` failed: 1271 Illegal mix of collations for operation '<>'. Further errors of this kind will be suppressed.
Out of memory!
Callback called exit at lib/GenTest/Generator/FromGrammar.pm line 249.
END failed--call queue aborted at runall-new.pl line 1.
Out of memory!
The reporter cannot recall seeing this when using runall.pl, only with runall-new.pl.
How to repeat:
Obtain a MySQL server installation.
We refer to this as environment variable %CODE%.
Obtain the randgen repository:
bzr branch lp:randgen
cd randgen
On a single command line, execute:
perl runall-new.pl
--grammar=conf/runtime/information_schema.yy
--threads=10
--duration=300
--reporters=Deadlock,ErrorLog,Backtrace
--basedir=%CODE%
--queries=100000
--mysqld=--log-output=file