#At file:///Users/malff/BZR_TREE/mysql-next-mr-bugfixing-54467/ based on revid:alik@stripped
3245 Marc Alff 2010-06-15
Bug#54467 performance schema complains of wrong structure in bootstrap mode
Prior to this fix, the installation script:
- did print [Note] messages in the server log,
related to the performance schema.
- did print [ERROR] messages in the server log,
complaining about performance schema tables.
These errors are not justified during bootstrap.
With this fix:
- notes are no longer printed,
this reduces the server verbosity.
- integrity checks for the performance schema tables
are not performed when tables are not expected to be there,
to avoid un justified [ERROR] messages.
Tested the mysql_install_db script manually:
Installing MySQL system tables...
OK
Filling help tables...
OK
modified:
sql/mysqld.cc
=== modified file 'sql/mysqld.cc'
--- a/sql/mysqld.cc 2010-06-04 20:20:13 +0000
+++ b/sql/mysqld.cc 2010-06-15 19:06:04 +0000
@@ -782,7 +782,15 @@ void Buffered_log::print()
sql_print_warning("Buffered warning: %s\n", m_message.c_ptr_safe());
break;
case INFORMATION_LEVEL:
- sql_print_information("Buffered information: %s\n", m_message.c_ptr_safe());
+ /*
+ Messages printed as "information" still end up in the mysqld *error* log,
+ but with a [Note] tag instead of an [ERROR] tag.
+ While this is probably fine for a human reading the log,
+ it is upsetting existing automated scripts used to parse logs,
+ because such scripts are likely to not already handle [Note] properly.
+ INFORMATION_LEVEL messages are simply silenced, on purpose,
+ to avoid un needed verbosity.
+ */
break;
}
}
@@ -4540,16 +4548,6 @@ int mysqld_main(int argc, char **argv)
buffered_logs.buffer(WARNING_LEVEL,
"Performance schema disabled (reason: init failed).");
}
- else
- {
- buffered_logs.buffer(INFORMATION_LEVEL,
- "Performance schema enabled.");
- }
- }
- else
- {
- buffered_logs.buffer(INFORMATION_LEVEL,
- "Performance schema disabled (reason: start parameters).");
}
}
#else
@@ -4817,7 +4815,14 @@ int mysqld_main(int argc, char **argv)
#ifdef WITH_PERFSCHEMA_STORAGE_ENGINE
initialize_performance_schema_acl(opt_bootstrap);
- check_performance_schema();
+ /*
+ Do not check the structure of the performance schema tables
+ during bootstrap:
+ - the tables are not supposed to exist yet, bootstrap will create them
+ - a check would print spurious error messages
+ */
+ if (! opt_bootstrap)
+ check_performance_schema();
#endif
initialize_information_schema_acl();
Attachment: [text/bzr-bundle] bzr/marc.alff@oracle.com-20100615190604-dskng7nvogavs5o0.bundle