← Back to team overview

randgen team mailing list archive

Re: [Bug 838473] [NEW] STATUS_UNKNOWN_ERROR (2) on empty test db

 

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: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).

shouldn't be the "Schema 'test' has no tables at lib/GenTest/Generator/FromGrammar.pm"
enough?
IMHO in order to have RQG as much flexible as possible it must not
expect that
- the database test exists at all
- the database tests (if it exists) contains any table.

In case you want to enforce that the test aborts in case some absolute
required prerequisite like some table is not existing than you can
probably some command to the rule "query_init".

>
> How to best put this in?
>
> ** Affects: randgen
>       Importance: Undecided
>           Status: New
>

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

-- 
You received this bug notification because you are a member of Random
Query Generator Team, which is subscribed to Random Query Generator.
https://bugs.launchpad.net/bugs/838473

Title:
  STATUS_UNKNOWN_ERROR (2) on empty test db

Status in SQL Generator for testing SQL servers (MySQL, JavaDB, PostgreSQL):
  New

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?

To manage notifications about this bug go to:
https://bugs.launchpad.net/randgen/+bug/838473/+subscriptions


References