STATUS_UNKNOWN_ERROR (2) on empty test db

Bug #838473 reported by Roel Van de Paar
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Random Query Generator
New
Undecided
Unassigned

Bug Description

Running this cmd line (there are more grammar combinations for which this bug is seen, this is just one example):

perl runall.pl --queries=100000000 --seed=random --threads=1 --duration=300 --mysqld=--log-output=none --engine=MEMORY --mysqld=--max_heap_table_size=134217728 --grammar=/randgen/conf/optimizer/optimizer_no_subquery_portable.yy --gendata=/randgen/conf/replication/replication-6.0.zz --basedir1=/mysql/mysql-linux-x86_64 --vardir1=/tmp/test1

Produces this output (reduced to relevant):

=================
[...]
# 2011-09-01T11:28:45 key (`col_float_key` ),
# 2011-09-01T11:28:45 key (`col_char_latin1_key` ),
# 2011-09-01T11:28:45 key (`col_char_utf8_key` )) ENGINE=memory failed: 1163 The used table type doesn't support BLOB/TEXT columns. Further errors of this kind will be suppressed
.
# 2011-09-01T11:28:45 Query: ALTER TABLE `table0_memory` DISABLE KEYS failed: 1146 Table '%s' doesn't exist. Further errors of this kind will be suppressed.
# 2011-09-01T11:28:45 # Creating MySQL table: test.table0_memory_int_autoinc; engine: memory; rows: 0 .
# 2011-09-01T11:28:45 # Creating MySQL table: test.table0_memory_key_pk_parts_2; engine: memory; rows: 0 .
# 2011-09-01T11:28:45 # Creating MySQL table: test.table0_memory_key_pk_parts_2_int_autoinc; engine: memory; rows: 0 .
# 2011-09-01T11:28:45 # Creating MySQL table: test.table1_memory; engine: memory; rows: 1 .
# 2011-09-01T11:28:45 # Creating MySQL table: test.table1_memory_int_autoinc; engine: memory; rows: 1 .
# 2011-09-01T11:28:45 # Creating MySQL table: test.table1_memory_key_pk_parts_2; engine: memory; rows: 1 .
# 2011-09-01T11:28:45 # Creating MySQL table: test.table1_memory_key_pk_parts_2_int_autoinc; engine: memory; rows: 1 .
# 2011-09-01T11:28:45 # Creating MySQL table: test.table10_memory; engine: memory; rows: 10 .
# 2011-09-01T11:28:46 # Creating MySQL table: test.table10_memory_int_autoinc; engine: memory; rows: 10 .
# 2011-09-01T11:28:46 # Creating MySQL table: test.table10_memory_key_pk_parts_2; engine: memory; rows: 10 .
# 2011-09-01T11:28:46 # Creating MySQL table: test.table10_memory_key_pk_parts_2_int_autoinc; engine: memory; rows: 10 .
# 2011-09-01T11:28:46 # Creating MySQL table: test.table100_memory; engine: memory; rows: 100 .
# 2011-09-01T11:28:49 # Creating MySQL table: test.table100_memory_int_autoinc; engine: memory; rows: 100 .
# 2011-09-01T11:28:51 # Creating MySQL table: test.table100_memory_key_pk_parts_2; engine: memory; rows: 100 .
# 2011-09-01T11:28:53 # Creating MySQL table: test.table100_memory_key_pk_parts_2_int_autoinc; engine: memory; rows: 100 .
# 2011-09-01T11:28:56 Loading Generator GenTest::Generator::FromGrammar.
# 2011-09-01T11:28:56 Caching schema metadata for dbi:mysql:host=127.0.0.1:port=19300:user=root:database=test
# 2011-09-01T11:28:59 Reporters: ErrorLog, Backtrace
# 2011-09-01T11:28:59 Validators: ErrorMessageCorruption
# 2011-09-01T11:28:59 Starting 1 processes, 100000000 queries each, duration 300 seconds.
# 2011-09-01T11:28:59 GenTest::ErrorFilter(18515) started
# 2011-09-01T11:28:59 Loading Validator GenTest::Validator::ErrorMessageCorruption.
Schema 'test' has no tables at lib/GenTest/Generator/FromGrammar.pm line 275
# 2011-09-01T11:28:59 Started periodic reporting process...
# 2011-09-01T11:29:00 Killing periodic reporting process with pid 18516...
# 2011-09-01T11:29:00 Kill GenTest::ErrorFilter(18515)
# 2011-09-01T11:29:00 Test completed with failure status STATUS_UNKNOWN_ERROR (2)
# 2011-09-01T11:29:00 gentest.pl exited with exit status STATUS_UNKNOWN_ERROR (2)
2011-09-01T11:29:00 [18104] runall.pl will exit with exit status STATUS_UNKNOWN_ERROR (2)
=================

The 1146 error is not relevant. The error 1163 is. A table was prevented from being created due to a 1163. Further errors are suppressed, so likely all table creations fail with the same error. Result: empty db, which is confirmed by:

"Schema 'test' has no tables at lib/GenTest/Generator/FromGrammar.pm line 275"

End result: STATUS_UNKNOWN_ERROR (2)

As such, there should be a check for (# of tables > 0) in FromGrammar.pm or earlier (maybe directly after table initialization).

How to best put this in?

Revision history for this message
Roel Van de Paar (roel11) wrote :

Interestingly, seemingly if the 1146 (which did not seem relevant) does not happen, a STATUS_PERL_ERROR is resulting instead.

Additional testcase for STATUS_PERL_ERROR:

perl runall.pl --queries=100000000 --seed=random --threads=1 --duration=300 --querytimeout=10 --engine=MEMORY --mysqld=--max_heap_table_size=134217728 --grammar=/randgen/conf/optimizer/optimizer_access_exp.yy --gendata=/randgen/conf/replication/WL5092_data.zz --basedir1=/mysql/mysql-linux-x86_6 --vardir1=/tmp/test2/

Outcome:

=================
# 2011-09-01T11:56:23 `col_varchar_25_default_null` varchar(25) default null,
# 2011-09-01T11:56:23 `col_tinytext_binary_not_null` tinytext CHARACTER SET binary not null,
# 2011-09-01T11:56:23 /*Indices*/
# 2011-09-01T11:56:23 primary key (pk)) ENGINE=memory failed: 1163 The used table type doesn't support BLOB/TEXT columns. Further errors of this kind will be suppressed.
# 2011-09-01T11:56:23 Query: ALTER TABLE `table300_memory_int_autoinc` DISABLE KEYS failed: 1146 Table '%s' doesn't exist. Further errors of this kind will be suppressed.
# 2011-09-01T11:56:26 Loading Generator GenTest::Generator::FromGrammar.
# 2011-09-01T11:56:26 Caching schema metadata for dbi:mysql:host=127.0.0.1:port=19300:user=root:database=test
# 2011-09-01T11:56:29 Reporters: ErrorLog, Backtrace
# 2011-09-01T11:56:29 Validators: ErrorMessageCorruption
# 2011-09-01T11:56:29 Starting 1 processes, 100000000 queries each, duration 300 seconds.
# 2011-09-01T11:56:29 GenTest::ErrorFilter(26247) started
# 2011-09-01T11:56:29 Loading Validator GenTest::Validator::ErrorMessageCorruption.
Schema 'test' has no tables at lib/GenTest/Generator/FromGrammar.pm line 259
# 2011-09-01T11:56:29 Started periodic reporting process...
# 2011-09-01T11:56:30 Killing periodic reporting process with pid 26248...
# 2011-09-01T11:56:30 Kill GenTest::ErrorFilter(26247)
# 2011-09-01T11:56:30 Test completed with failure status STATUS_PERL_FAILURE (255)
# 2011-09-01T11:56:30 gentest.pl exited with exit status STATUS_PERL_FAILURE (255)
2011-09-01T11:56:30 [25716] runall.pl will exit with exit status STATUS_PERL_FAILURE (255)
=================

Revision history for this message
Matthias Leich (matthias-leich) wrote : Re: [Bug 838473] [NEW] STATUS_UNKNOWN_ERROR (2) on empty test db
Download full text (5.2 KiB)

Hi Roel,

Am 01.09.2011 02:32, schrieb Roel Van de Paar:
> Public bug reported:
>
> Running this cmd line (there are more grammar combinations for which
> this bug is seen, this is just one example):
>
> perl runall.pl --queries=100000000 --seed=random --threads=1
> --duration=300 --mysqld=--log-output=none --engine=MEMORY
> --mysqld=--max_heap_table_size=134217728
> --grammar=/randgen/conf/optimizer/optimizer_no_subquery_portable.yy
> --gendata=/randgen/conf/replication/replication-6.0.zz --basedir1=/mysql
> /mysql-linux-x86_64 --vardir1=/tmp/test1
>
> Produces this output (reduced to relevant):
>
> =================
> [...]
> # 2011-09-01T11:28:45 key (`col_float_key` ),
> # 2011-09-01T11:28:45 key (`col_char_latin1_key` ),
> # 2011-09-01T11:28:45 key (`col_char_utf8_key` )) ENGINE=memory failed: 1163 The used table type doesn't support BLOB/TEXT columns. Further errors of this kind will be suppressed
> .
> # 2011-09-01T11:28:45 Query: ALTER TABLE `table0_memory` DISABLE KEYS failed: 1146 Table '%s' doesn't exist. Further errors of this kind will be suppressed.
> # 2011-09-01T11:28:45 # Creating MySQL table: test.table0_memory_int_autoinc; engine: memory; rows: 0 .
> # 2011-09-01T11:28:45 # Creating MySQL table: test.table0_memory_key_pk_parts_2; engine: memory; rows: 0 .
> # 2011-09-01T11:28:45 # Creating MySQL table: test.table0_memory_key_pk_parts_2_int_autoinc; engine: memory; rows: 0 .
> # 2011-09-01T11:28:45 # Creating MySQL table: test.table1_memory; engine: memory; rows: 1 .
> # 2011-09-01T11:28:45 # Creating MySQL table: test.table1_memory_int_autoinc; engine: memory; rows: 1 .
> # 2011-09-01T11:28:45 # Creating MySQL table: test.table1_memory_key_pk_parts_2; engine: memory; rows: 1 .
> # 2011-09-01T11:28:45 # Creating MySQL table: test.table1_memory_key_pk_parts_2_int_autoinc; engine: memory; rows: 1 .
> # 2011-09-01T11:28:45 # Creating MySQL table: test.table10_memory; engine: memory; rows: 10 .
> # 2011-09-01T11:28:46 # Creating MySQL table: test.table10_memory_int_autoinc; engine: memory; rows: 10 .
> # 2011-09-01T11:28:46 # Creating MySQL table: test.table10_memory_key_pk_parts_2; engine: memory; rows: 10 .
> # 2011-09-01T11:28:46 # Creating MySQL table: test.table10_memory_key_pk_parts_2_int_autoinc; engine: memory; rows: 10 .
> # 2011-09-01T11:28:46 # Creating MySQL table: test.table100_memory; engine: memory; rows: 100 .
> # 2011-09-01T11:28:49 # Creating MySQL table: test.table100_memory_int_autoinc; engine: memory; rows: 100 .
> # 2011-09-01T11:28:51 # Creating MySQL table: test.table100_memory_key_pk_parts_2; engine: memory; rows: 100 .
> # 2011-09-01T11:28:53 # Creating MySQL table: test.table100_memory_key_pk_parts_2_int_autoinc; engine: memory; rows: 100 .
> # 2011-09-01T11:28:56 Loading Generator GenTest::Generator::FromGrammar.
> # 2011-09-01T11:28:56 Caching schema metadata for dbi:mysql:host=127.0.0.1:port=19300:user=root:database=test
> # 2011-09-01T11:28:59 Reporters: ErrorLog, Backtrace
> # 2011-09-01T11:28:59 Validators: ErrorMessageCorruption
> # 2011-09-01T11:28:59 Starting 1 processes, 100000000 queries each, duration 300 seconds.
> # 2011-09-01T11:28:59 GenTest::ErrorFilter(18515) started
> # 2011-09-01T11...

Read more...

Revision history for this message
Matthias Leich (matthias-leich) wrote : Re: [Bug 838473] Re: STATUS_UNKNOWN_ERROR (2) on empty test db

Hi Roel,

Am 01.09.2011 02:56, schrieb Roel Van de Paar:
> Interestingly, seemingly if the 1146 (which did not seem relevant) does
> not happen, a STATUS_PERL_ERROR is resulting instead.
>
> Additional testcase for STATUS_PERL_ERROR:
>
> perl runall.pl --queries=100000000 --seed=random --threads=1
> --duration=300 --querytimeout=10 --engine=MEMORY
> --mysqld=--max_heap_table_size=134217728
> --grammar=/randgen/conf/optimizer/optimizer_access_exp.yy
> --gendata=/randgen/conf/replication/WL5092_data.zz --basedir1=/mysql
> /mysql-linux-x86_6 --vardir1=/tmp/test2/
>
> Outcome:
>
> =================
> # 2011-09-01T11:56:23 `col_varchar_25_default_null` varchar(25) default null,
> # 2011-09-01T11:56:23 `col_tinytext_binary_not_null` tinytext CHARACTER SET binary not null,
> # 2011-09-01T11:56:23 /*Indices*/
> # 2011-09-01T11:56:23 primary key (pk)) ENGINE=memory failed: 1163 The used table type doesn't support BLOB/TEXT columns. Further errors of this kind will be suppressed.
> # 2011-09-01T11:56:23 Query: ALTER TABLE `table300_memory_int_autoinc` DISABLE KEYS failed: 1146 Table '%s' doesn't exist. Further errors of this kind will be suppressed.
> # 2011-09-01T11:56:26 Loading Generator GenTest::Generator::FromGrammar.
> # 2011-09-01T11:56:26 Caching schema metadata for dbi:mysql:host=127.0.0.1:port=19300:user=root:database=test
> # 2011-09-01T11:56:29 Reporters: ErrorLog, Backtrace
> # 2011-09-01T11:56:29 Validators: ErrorMessageCorruption
> # 2011-09-01T11:56:29 Starting 1 processes, 100000000 queries each, duration 300 seconds.
> # 2011-09-01T11:56:29 GenTest::ErrorFilter(26247) started
> # 2011-09-01T11:56:29 Loading Validator GenTest::Validator::ErrorMessageCorruption.
> Schema 'test' has no tables at lib/GenTest/Generator/FromGrammar.pm line 259
> # 2011-09-01T11:56:29 Started periodic reporting process...
> # 2011-09-01T11:56:30 Killing periodic reporting process with pid 26248...
> # 2011-09-01T11:56:30 Kill GenTest::ErrorFilter(26247)
> # 2011-09-01T11:56:30 Test completed with failure status STATUS_PERL_FAILURE (255)
> # 2011-09-01T11:56:30 gentest.pl exited with exit status STATUS_PERL_FAILURE (255)
> 2011-09-01T11:56:30 [25716] runall.pl will exit with exit status STATUS_PERL_FAILURE (255)
> =================
>

just some guess.
What will happen in case of
- database does not contain any tables
   So the cache of table names for the database is empty.
- the grammar contains something like
   SELECT * FROM test . _table
   Because of the empty cache no table name can be
   selected by gentest.
?

Regards

Matthias

--
Matthias Leich
Senior QA Developer
Office: +49 30 4764614

ORACLE Deutschland B.V. & Co. KG
Hauptverwaltung: Riesstr. 25, D-80992 München
Registergericht: Amtsgericht München, HRA 95603

Komplementärin: ORACLE Deutschland Verwaltung B.V.
Rijnzathe 6, 3454PV De Meern, Niederlande
Handelsregister der Handelskammer Midden-Niederlande, Nr. 30143697
Geschäftsführer: Jürgen Kunz, Marcel van de Molen, Alexander van der Ven

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.