From: Marc Alff Date: September 15 2010 8:57pm Subject: bzr commit into mysql-next-mr-bugfixing branch (marc.alff:3289) List-Archive: http://lists.mysql.com/commits/118334 Message-Id: <20100915205750.7FFEE45E80@linux-su11.site> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="===============1579706211129271133==" --===============1579706211129271133== MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Content-Disposition: inline #At file:///home/malff/BZR_TREE/mysql-next-mr-bugfixing-merge/ based on revid:olav.sandstaa@stripped 3289 Marc Alff 2010-09-15 [merge] Merge mysql-trunk-bugfixing --> mysql-next-mr-bugfixing added: mysql-test/suite/perfschema/r/checksum.result mysql-test/suite/perfschema/t/checksum.test modified: storage/perfschema/table_events_waits.cc storage/perfschema/table_events_waits.h === added file 'mysql-test/suite/perfschema/r/checksum.result' --- a/mysql-test/suite/perfschema/r/checksum.result 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/r/checksum.result 2010-09-15 18:20:48 +0000 @@ -0,0 +1,34 @@ +checksum table performance_schema.COND_INSTANCES; +checksum table performance_schema.EVENTS_WAITS_CURRENT; +checksum table performance_schema.EVENTS_WAITS_HISTORY; +checksum table performance_schema.EVENTS_WAITS_HISTORY_LONG; +checksum table performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE; +checksum table performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; +checksum table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME; +checksum table performance_schema.FILE_INSTANCES; +checksum table performance_schema.FILE_SUMMARY_BY_EVENT_NAME; +checksum table performance_schema.FILE_SUMMARY_BY_INSTANCE; +checksum table performance_schema.MUTEX_INSTANCES; +checksum table performance_schema.PERFORMANCE_TIMERS; +checksum table performance_schema.RWLOCK_INSTANCES; +checksum table performance_schema.SETUP_CONSUMERS; +checksum table performance_schema.SETUP_INSTRUMENTS; +checksum table performance_schema.SETUP_TIMERS; +checksum table performance_schema.THREADS; +checksum table performance_schema.COND_INSTANCES extended; +checksum table performance_schema.EVENTS_WAITS_CURRENT extended; +checksum table performance_schema.EVENTS_WAITS_HISTORY extended; +checksum table performance_schema.EVENTS_WAITS_HISTORY_LONG extended; +checksum table performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE extended; +checksum table performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME extended; +checksum table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME extended; +checksum table performance_schema.FILE_INSTANCES extended; +checksum table performance_schema.FILE_SUMMARY_BY_EVENT_NAME extended; +checksum table performance_schema.FILE_SUMMARY_BY_INSTANCE extended; +checksum table performance_schema.MUTEX_INSTANCES extended; +checksum table performance_schema.PERFORMANCE_TIMERS extended; +checksum table performance_schema.RWLOCK_INSTANCES extended; +checksum table performance_schema.SETUP_CONSUMERS extended; +checksum table performance_schema.SETUP_INSTRUMENTS extended; +checksum table performance_schema.SETUP_TIMERS extended; +checksum table performance_schema.THREADS extended; === added file 'mysql-test/suite/perfschema/t/checksum.test' --- a/mysql-test/suite/perfschema/t/checksum.test 1970-01-01 00:00:00 +0000 +++ b/mysql-test/suite/perfschema/t/checksum.test 2010-09-15 18:20:48 +0000 @@ -0,0 +1,64 @@ +# Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software Foundation, +# 51 Franklin Street, Suite 500, Boston, MA 02110-1335 USA */ + +# Tests for PERFORMANCE_SCHEMA + +--source include/not_embedded.inc +--source include/have_perfschema.inc + +# +# The checksum value itself is random (data is volatile), +# just testing that this does not crash +# +--disable_result_log + +checksum table performance_schema.COND_INSTANCES; +checksum table performance_schema.EVENTS_WAITS_CURRENT; +checksum table performance_schema.EVENTS_WAITS_HISTORY; +checksum table performance_schema.EVENTS_WAITS_HISTORY_LONG; +checksum table performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE; +checksum table performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME; +checksum table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME; +checksum table performance_schema.FILE_INSTANCES; +checksum table performance_schema.FILE_SUMMARY_BY_EVENT_NAME; +checksum table performance_schema.FILE_SUMMARY_BY_INSTANCE; +checksum table performance_schema.MUTEX_INSTANCES; +checksum table performance_schema.PERFORMANCE_TIMERS; +checksum table performance_schema.RWLOCK_INSTANCES; +checksum table performance_schema.SETUP_CONSUMERS; +checksum table performance_schema.SETUP_INSTRUMENTS; +checksum table performance_schema.SETUP_TIMERS; +checksum table performance_schema.THREADS; + +checksum table performance_schema.COND_INSTANCES extended; +checksum table performance_schema.EVENTS_WAITS_CURRENT extended; +checksum table performance_schema.EVENTS_WAITS_HISTORY extended; +checksum table performance_schema.EVENTS_WAITS_HISTORY_LONG extended; +checksum table performance_schema.EVENTS_WAITS_SUMMARY_BY_INSTANCE extended; +checksum table performance_schema.EVENTS_WAITS_SUMMARY_BY_THREAD_BY_EVENT_NAME extended; +checksum table performance_schema.EVENTS_WAITS_SUMMARY_GLOBAL_BY_EVENT_NAME extended; +checksum table performance_schema.FILE_INSTANCES extended; +checksum table performance_schema.FILE_SUMMARY_BY_EVENT_NAME extended; +checksum table performance_schema.FILE_SUMMARY_BY_INSTANCE extended; +checksum table performance_schema.MUTEX_INSTANCES extended; +checksum table performance_schema.PERFORMANCE_TIMERS extended; +checksum table performance_schema.RWLOCK_INSTANCES extended; +checksum table performance_schema.SETUP_CONSUMERS extended; +checksum table performance_schema.SETUP_INSTRUMENTS extended; +checksum table performance_schema.SETUP_TIMERS extended; +checksum table performance_schema.THREADS extended; + +--enable_result_log + === modified file 'storage/perfschema/table_events_waits.cc' --- a/storage/perfschema/table_events_waits.cc 2010-08-12 10:21:22 +0000 +++ b/storage/perfschema/table_events_waits.cc 2010-09-15 20:46:26 +0000 @@ -187,7 +187,7 @@ void table_events_waits_common::clear_ob */ void table_events_waits_common::make_row(bool thread_own_wait, PFS_thread *pfs_thread, - PFS_events_waits *wait) + volatile PFS_events_waits *wait) { pfs_lock lock; PFS_thread *safe_thread; @@ -260,21 +260,27 @@ void table_events_waits_common::make_row m_row.m_object_type= "TEMPORARY TABLE"; m_row.m_object_type_length= 15; } - memcpy(m_row.m_object_schema, wait->m_schema_name, - wait->m_schema_name_length); m_row.m_object_schema_length= wait->m_schema_name_length; - memcpy(m_row.m_object_name, wait->m_object_name, - wait->m_object_name_length); + if (unlikely((m_row.m_object_schema_length == 0) || + (m_row.m_object_schema_length > sizeof(m_row.m_object_schema)))) + return; + memcpy(m_row.m_object_schema, wait->m_schema_name, m_row.m_object_schema_length); m_row.m_object_name_length= wait->m_object_name_length; + if (unlikely((m_row.m_object_name_length == 0) || + (m_row.m_object_name_length > sizeof(m_row.m_object_name)))) + return; + memcpy(m_row.m_object_name, wait->m_object_name, m_row.m_object_name_length); safe_class= &global_table_class; break; case WAIT_CLASS_FILE: m_row.m_object_type= "FILE"; m_row.m_object_type_length= 4; m_row.m_object_schema_length= 0; - memcpy(m_row.m_object_name, wait->m_object_name, - wait->m_object_name_length); m_row.m_object_name_length= wait->m_object_name_length; + if (unlikely((m_row.m_object_name_length == 0) || + (m_row.m_object_name_length > sizeof(m_row.m_object_name)))) + return; + memcpy(m_row.m_object_name, wait->m_object_name, m_row.m_object_name_length); safe_class= sanitize_file_class((PFS_file_class*) wait->m_class); break; case NO_WAIT_CLASS: === modified file 'storage/perfschema/table_events_waits.h' --- a/storage/perfschema/table_events_waits.h 2010-07-23 17:08:41 +0000 +++ b/storage/perfschema/table_events_waits.h 2010-09-15 20:46:26 +0000 @@ -139,7 +139,7 @@ protected: void clear_object_columns(); void make_row(bool thread_own_wait, PFS_thread *pfs_thread, - PFS_events_waits *wait); + volatile PFS_events_waits *wait); /** Current row. */ row_events_waits m_row; --===============1579706211129271133== MIME-Version: 1.0 Content-Type: text/bzr-bundle; charset="us-ascii"; name="bzr/marc.alff@stripped" Content-Transfer-Encoding: 7bit Content-Disposition: inline # Bazaar merge directive format 2 (Bazaar 0.90) # revision_id: marc.alff@stripped # target_branch: file:///home/malff/BZR_TREE/mysql-next-mr-bugfixing-\ # merge/ # testament_sha1: fabf8dcd4e6469ae20a3c8469250ff0efcb9254d # timestamp: 2010-09-15 14:57:50 -0600 # source_branch: file:///home/malff/BZR_TREE/mysql-trunk-bugfixing/ # base_revision_id: olav.sandstaa@stripped\ # qpmorspr0yjiebu4 # # Begin bundle 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 --===============1579706211129271133==--