Bug #55309 RQG: Out Of Memory issues on Windows with runall-new.pl
Submitted: 16 Jul 2010 7:04 Modified: 9 Jan 2015 14:45
Reporter: John Embretsen Email Updates:
Status: Won't fix Impact on me:
None 
Category:Tools: Random Query Generator Severity:S2 (Serious)
Version:bzr-revno481 OS:Windows
Assigned to: Bernt Marius Johnsen CPU Architecture:Any

[16 Jul 2010 7:04] John Embretsen
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