List:Commits« Previous MessageNext Message »
From:Marc Alff Date:June 8 2012 2:11pm
Subject:bzr push into mysql-trunk branch (marc.alff:3977 to 3978)
View as plain text  
 3978 Marc Alff	2012-06-08
      Improved the test performance_schema.sizing_growth robustness, again.
      Fixed files_per_share to 3

    modified:
      mysql-test/suite/perfschema/r/sizing_default.result
      mysql-test/suite/perfschema/r/sizing_growth.result
      mysql-test/suite/perfschema/r/sizing_high.result
      mysql-test/suite/perfschema/r/sizing_low.result
      mysql-test/suite/perfschema/r/sizing_med.result
      mysql-test/suite/perfschema/t/sizing_growth.test
      storage/perfschema/pfs_autosize.cc
 3977 Vasil Dimov	2012-06-08
      Fix Bug#13966453 CONCURRENT DML AND READS FROM I_S TABLES CRASH
      FETCH_DATA_INTO_CACHE_LOW
      
      Traversing the list trx_sys->mysql_trx_list should be done like:
      
        for (trx = UT_LIST_GET_FIRST(trx_sys->mysql_trx_list);
             trx != NULL;
             trx = UT_LIST_GET_NEXT(mysql_trx_list, trx)) {
      
      and not like:
      
        for (trx = UT_LIST_GET_FIRST(trx_sys->mysql_trx_list);
             trx != NULL;
             trx = UT_LIST_GET_NEXT(trx_list, trx)) {
      
      This bug was introduced in:
      
        * revision-id: sunny.bains@stripped
        * committer: Sunny Bains <Sunny.Bains@stripped>
        * branch nick: trunk
        * timestamp: Mon 2011-11-21 07:25:39 +1100
        * message:
        *   WL#6046 - Special handling of read-only transactions
        * ...
      
      Before that changeset the code only traversed trx_sys->trx_list like:
      
        for (trx = UT_LIST_GET_FIRST(trx_sys->trx_list);
             trx != NULL;
             trx = UT_LIST_GET_NEXT(trx_list, trx)) {
      
      and it did not fiddle with trx_sys->mysql_trx_list.
      
      In WL#6046 the code was changed so that trx_sys->trx_list in the
      initialization of the "for" loop became a parameter
      (trx_sys->mysql_trx_list is passed as that parameter), but the update
      statement of the "for" loop was not adjusted and was left like
      "trx = UT_LIST_GET_NEXT(trx_list, trx)".

    modified:
      storage/innobase/trx/trx0i_s.cc
=== modified file 'mysql-test/suite/perfschema/r/sizing_default.result'
--- a/mysql-test/suite/perfschema/r/sizing_default.result	2012-06-07 15:37:49 +0000
+++ b/mysql-test/suite/perfschema/r/sizing_default.result	2012-06-08 14:11:10 +0000
@@ -23,7 +23,7 @@ performance_schema_max_cond_classes	80
 performance_schema_max_cond_instances	836
 performance_schema_max_file_classes	50
 performance_schema_max_file_handles	32768
-performance_schema_max_file_instances	1138
+performance_schema_max_file_instances	1556
 performance_schema_max_mutex_classes	200
 performance_schema_max_mutex_instances	2837
 performance_schema_max_rwlock_classes	30
@@ -103,8 +103,8 @@ performance_schema	threads.row_size	1856
 performance_schema	threads.row_count	224
 performance_schema	threads.memory	415744
 performance_schema	file_instances.row_size	768
-performance_schema	file_instances.row_count	1138
-performance_schema	file_instances.memory	873984
+performance_schema	file_instances.row_count	1556
+performance_schema	file_instances.memory	1195008
 performance_schema	(pfs_file_handle).row_size	8
 performance_schema	(pfs_file_handle).row_count	32768
 performance_schema	(pfs_file_handle).memory	262144
@@ -212,7 +212,7 @@ performance_schema	(account_hash).size	1
 performance_schema	(digest_hash).count	0
 performance_schema	(digest_hash).size	1000
 performance_schema	(filename_hash).count	0
-performance_schema	(filename_hash).size	1138
+performance_schema	(filename_hash).size	1556
 performance_schema	(host_hash).count	2
 performance_schema	(host_hash).size	20
 performance_schema	(setup_actor_hash).count	1
@@ -223,4 +223,4 @@ performance_schema	(table_share_hash).co
 performance_schema	(table_share_hash).size	445
 performance_schema	(user_hash).count	2
 performance_schema	(user_hash).size	5
-performance_schema	performance_schema.memory	35386720
+performance_schema	performance_schema.memory	35707744

=== modified file 'mysql-test/suite/perfschema/r/sizing_growth.result'
--- a/mysql-test/suite/perfschema/r/sizing_growth.result	2012-06-07 15:37:49 +0000
+++ b/mysql-test/suite/perfschema/r/sizing_growth.result	2012-06-08 14:11:10 +0000
@@ -178,17 +178,42 @@ drop table test.t7;
 drop table test.t8;
 drop table test.t9;
 drop table test.t10;
+show status like "performance_schema%";
+Variable_name	Value
+Performance_schema_accounts_lost	0
+Performance_schema_cond_classes_lost	0
+Performance_schema_cond_instances_lost	0
+Performance_schema_digest_lost	0
+Performance_schema_file_classes_lost	0
+Performance_schema_file_handles_lost	0
+Performance_schema_file_instances_lost	0
+Performance_schema_hosts_lost	0
+Performance_schema_locker_lost	0
+Performance_schema_mutex_classes_lost	0
+Performance_schema_mutex_instances_lost	0
+Performance_schema_rwlock_classes_lost	0
+Performance_schema_rwlock_instances_lost	0
+Performance_schema_session_connect_attrs_lost	0
+Performance_schema_socket_classes_lost	0
+Performance_schema_socket_instances_lost	0
+Performance_schema_stage_classes_lost	0
+Performance_schema_statement_classes_lost	0
+Performance_schema_table_handles_lost	0
+Performance_schema_table_instances_lost	0
+Performance_schema_thread_classes_lost	0
+Performance_schema_thread_instances_lost	0
+Performance_schema_users_lost	0
 select @mutex_per_share <= 4;
 @mutex_per_share <= 4
 1
-select @rwlock_per_share;
-@rwlock_per_share
+select @rwlock_per_share <= 3;
+@rwlock_per_share <= 3
 1
 select @cond_per_share;
 @cond_per_share
 0
-select @file_per_share <= 2;
-@file_per_share <= 2
+select @file_per_share <= 3;
+@file_per_share <= 3
 1
 select @mutex_per_con;
 @mutex_per_con
@@ -216,9 +241,9 @@ select @file_per_handle;
 0
 select if(
 (@mutex_per_share <= 4)
-AND (@rwlock_per_share = 1)
+AND (@rwlock_per_share <= 3)
 AND (@cond_per_share = 0)
-AND (@file_per_share <= 2)
+AND (@file_per_share <= 3)
 AND (@mutex_per_con = 3)
 AND (@rwlock_per_con = 1)
 AND (@cond_per_con = 2)

=== modified file 'mysql-test/suite/perfschema/r/sizing_high.result'
--- a/mysql-test/suite/perfschema/r/sizing_high.result	2012-06-07 15:37:49 +0000
+++ b/mysql-test/suite/perfschema/r/sizing_high.result	2012-06-08 14:11:10 +0000
@@ -23,7 +23,7 @@ performance_schema_max_cond_classes	80
 performance_schema_max_cond_instances	10900
 performance_schema_max_file_classes	50
 performance_schema_max_file_handles	32768
-performance_schema_max_file_instances	15693
+performance_schema_max_file_instances	23385
 performance_schema_max_mutex_classes	200
 performance_schema_max_mutex_instances	42200
 performance_schema_max_rwlock_classes	30
@@ -103,8 +103,8 @@ performance_schema	threads.row_size	1856
 performance_schema	threads.row_count	500
 performance_schema	threads.memory	928000
 performance_schema	file_instances.row_size	768
-performance_schema	file_instances.row_count	15693
-performance_schema	file_instances.memory	12052224
+performance_schema	file_instances.row_count	23385
+performance_schema	file_instances.memory	17959680
 performance_schema	(pfs_file_handle).row_size	8
 performance_schema	(pfs_file_handle).row_count	32768
 performance_schema	(pfs_file_handle).memory	262144
@@ -212,7 +212,7 @@ performance_schema	(account_hash).size	1
 performance_schema	(digest_hash).count	0
 performance_schema	(digest_hash).size	10000
 performance_schema	(filename_hash).count	0
-performance_schema	(filename_hash).size	15693
+performance_schema	(filename_hash).size	23385
 performance_schema	(host_hash).count	2
 performance_schema	(host_hash).size	100
 performance_schema	(setup_actor_hash).count	1
@@ -223,4 +223,4 @@ performance_schema	(table_share_hash).co
 performance_schema	(table_share_hash).size	12500
 performance_schema	(user_hash).count	2
 performance_schema	(user_hash).size	100
-performance_schema	performance_schema.memory	416452568
+performance_schema	performance_schema.memory	422360024

=== modified file 'mysql-test/suite/perfschema/r/sizing_low.result'
--- a/mysql-test/suite/perfschema/r/sizing_low.result	2012-06-07 15:37:49 +0000
+++ b/mysql-test/suite/perfschema/r/sizing_low.result	2012-06-08 14:11:10 +0000
@@ -23,7 +23,7 @@ performance_schema_max_cond_classes	80
 performance_schema_max_cond_instances	612
 performance_schema_max_file_classes	50
 performance_schema_max_file_handles	32768
-performance_schema_max_file_instances	1138
+performance_schema_max_file_instances	1556
 performance_schema_max_mutex_classes	200
 performance_schema_max_mutex_instances	2500
 performance_schema_max_rwlock_classes	30
@@ -103,8 +103,8 @@ performance_schema	threads.row_size	1856
 performance_schema	threads.row_count	112
 performance_schema	threads.memory	207872
 performance_schema	file_instances.row_size	768
-performance_schema	file_instances.row_count	1138
-performance_schema	file_instances.memory	873984
+performance_schema	file_instances.row_count	1556
+performance_schema	file_instances.memory	1195008
 performance_schema	(pfs_file_handle).row_size	8
 performance_schema	(pfs_file_handle).row_count	32768
 performance_schema	(pfs_file_handle).memory	262144
@@ -212,7 +212,7 @@ performance_schema	(account_hash).size	1
 performance_schema	(digest_hash).count	0
 performance_schema	(digest_hash).size	1000
 performance_schema	(filename_hash).count	0
-performance_schema	(filename_hash).size	1138
+performance_schema	(filename_hash).size	1556
 performance_schema	(host_hash).count	2
 performance_schema	(host_hash).size	20
 performance_schema	(setup_actor_hash).count	1
@@ -223,4 +223,4 @@ performance_schema	(table_share_hash).co
 performance_schema	(table_share_hash).size	445
 performance_schema	(user_hash).count	2
 performance_schema	(user_hash).size	5
-performance_schema	performance_schema.memory	24331744
+performance_schema	performance_schema.memory	24652768

=== modified file 'mysql-test/suite/perfschema/r/sizing_med.result'
--- a/mysql-test/suite/perfschema/r/sizing_med.result	2012-06-07 15:37:49 +0000
+++ b/mysql-test/suite/perfschema/r/sizing_med.result	2012-06-08 14:11:10 +0000
@@ -23,7 +23,7 @@ performance_schema_max_cond_classes	80
 performance_schema_max_cond_instances	1079
 performance_schema_max_file_classes	50
 performance_schema_max_file_handles	32768
-performance_schema_max_file_instances	1280
+performance_schema_max_file_instances	1754
 performance_schema_max_mutex_classes	200
 performance_schema_max_mutex_instances	3658
 performance_schema_max_rwlock_classes	30
@@ -103,8 +103,8 @@ performance_schema	threads.row_size	1856
 performance_schema	threads.row_count	289
 performance_schema	threads.memory	536384
 performance_schema	file_instances.row_size	768
-performance_schema	file_instances.row_count	1280
-performance_schema	file_instances.memory	983040
+performance_schema	file_instances.row_count	1754
+performance_schema	file_instances.memory	1347072
 performance_schema	(pfs_file_handle).row_size	8
 performance_schema	(pfs_file_handle).row_count	32768
 performance_schema	(pfs_file_handle).memory	262144
@@ -212,7 +212,7 @@ performance_schema	(account_hash).size	1
 performance_schema	(digest_hash).count	0
 performance_schema	(digest_hash).size	5000
 performance_schema	(filename_hash).count	0
-performance_schema	(filename_hash).size	1280
+performance_schema	(filename_hash).size	1754
 performance_schema	(host_hash).count	2
 performance_schema	(host_hash).size	100
 performance_schema	(setup_actor_hash).count	1
@@ -223,4 +223,4 @@ performance_schema	(table_share_hash).co
 performance_schema	(table_share_hash).size	556
 performance_schema	(user_hash).count	2
 performance_schema	(user_hash).size	100
-performance_schema	performance_schema.memory	69559328
+performance_schema	performance_schema.memory	69923360

=== modified file 'mysql-test/suite/perfschema/t/sizing_growth.test'
--- a/mysql-test/suite/perfschema/t/sizing_growth.test	2012-06-07 15:37:49 +0000
+++ b/mysql-test/suite/perfschema/t/sizing_growth.test	2012-06-08 14:11:10 +0000
@@ -356,19 +356,30 @@ drop table test.t10;
 --enable_result_log
 
 #
-# Expecting 3:
+# This test must have *_lost = 0,
+# otherwise the measurement is just wrong.
+#
+
+show status like "performance_schema%";
+
+#
+# Expecting 2:
 # - wait/synch/mutex/sql/MDL_wait::LOCK_wait_status
 # - wait/synch/mutex/sql/TABLE_SHARE::LOCK_ha_data
+# plus mutexes used inside the storage engine
+# This is very storage engine dependent
+# For innodb:
 # - wait/synch/mutex/innodb/autoinc_mutex
-# but this is very storage engine dependent
 # 
 select @mutex_per_share <= 4;
 
 #
 # Expecting 1:
 # - wait/synch/rwlock/sql/MDL_lock::rwlock
+# plus rwlocks used inside the storage engine
+# This is very storage engine dependent
 #
-select @rwlock_per_share;
+select @rwlock_per_share <= 3;
 
 #
 # Expecting 0:
@@ -378,14 +389,10 @@ select @cond_per_share;
 #
 # Expecting 1:
 # - wait/io/file/sql/FRM
-# more with innodb file per table
-#
-# This however is very storage engine dependent,
-# and platform dependent (not all platform instrument file io the same way,
-# or at all)
-# 
+# plus files used inside the storage engine
+# This is very storage engine dependent
 #
-select @file_per_share <= 2;
+select @file_per_share <= 3;
 
 #
 # Expecting 3:
@@ -443,9 +450,9 @@ select @file_per_handle;
 
 select if(
       (@mutex_per_share <= 4)
-  AND (@rwlock_per_share = 1)
+  AND (@rwlock_per_share <= 3)
   AND (@cond_per_share = 0)
-  AND (@file_per_share <= 2)
+  AND (@file_per_share <= 3)
   AND (@mutex_per_con = 3)
   AND (@rwlock_per_con = 1)
   AND (@cond_per_con = 2)

=== modified file 'storage/perfschema/pfs_autosize.cc'
--- a/storage/perfschema/pfs_autosize.cc	2012-06-07 15:37:49 +0000
+++ b/storage/perfschema/pfs_autosize.cc	2012-06-08 14:11:10 +0000
@@ -50,7 +50,7 @@ static const ulong thread_per_handle= 0;
 static const ulong mutex_per_share= 4;
 static const ulong rwlock_per_share= 3;
 static const ulong cond_per_share= 1;
-static const ulong file_per_share= 2;
+static const ulong file_per_share= 3;
 static const ulong socket_per_share= 0;
 static const ulong thread_per_share= 0;
 

No bundle (reason: useless for push emails).
Thread
bzr push into mysql-trunk branch (marc.alff:3977 to 3978) Marc Alff9 Jun