← Back to team overview

maria-developers team mailing list archive

bzr commit into Mariadb 5.2, with Maria 2.0:maria/5.2 branch (monty:2780)

 

#At lp:maria/5.2 based on revid:sergii@xxxxxxxxx-20100408121005-h5tzkoe2enmy7j4u

 2780 Michael Widenius	2010-04-08 [merge]
      Merge with local tree
      added:
        mysql-test/suite/binlog/t/binlog_index-master.opt
        mysql-test/suite/pbxt/t/multi_statement-master.opt
      modified:
        client/mysql.cc
        configure.in
        mysql-test/extra/rpl_tests/rpl_insert_id_pk.test
        mysql-test/include/maria_empty_logs.inc
        mysql-test/lib/My/SafeProcess/safe_process.cc
        mysql-test/mysql-test-run.pl
        mysql-test/r/func_time.result
        mysql-test/suite/binlog/r/binlog_index.result
        mysql-test/suite/binlog/t/binlog_index.test
        mysql-test/suite/funcs_1/datadict/processlist_priv.inc
        mysql-test/suite/pbxt/r/multi_statement.result
        mysql-test/suite/pbxt/t/status.test
        mysql-test/t/func_time.test
        plugin/auth/dialog.c
        sql/events.cc
        sql/handler.cc
        sql/log.cc
        sql/mysqld.cc
        sql/set_var.cc
        sql/slave.cc
        sql/sql_plugin.cc
        storage/maria/ma_loghandler.c
        storage/xtradb/include/ut0lst.h
        support-files/compiler_warnings.supp

=== modified file 'client/mysql.cc'
--- a/client/mysql.cc	2010-03-29 15:13:53 +0000
+++ b/client/mysql.cc	2010-04-08 13:02:49 +0000
@@ -4288,8 +4288,9 @@ extern "C" char *mysql_authentication_di
   }
   else
   {
-    fgets(buf, buf_len-1, stdin);
-    if (buf[0] && (s= strend(buf))[-1] == '\n')
+    if (!fgets(buf, buf_len-1, stdin))
+      buf[0]= 0;
+    else if (buf[0] && (s= strend(buf))[-1] == '\n')
       s[-1]= 0;
   }
 

=== modified file 'configure.in'
--- a/configure.in	2010-04-01 14:34:51 +0000
+++ b/configure.in	2010-04-08 13:02:49 +0000
@@ -12,7 +12,7 @@ AC_PREREQ(2.59)
 # MySQL version number.
 #
 # Note: the following line must be parseable by win/configure.js:GetVersion()
-AC_INIT([MariaDB Server], [5.2.0-MariaDB-alpha], [], [mysql])
+AC_INIT([MariaDB Server], [5.2.0-MariaDB-beta], [], [mysql])
 AC_CONFIG_SRCDIR([sql/mysqld.cc])
 AC_CANONICAL_SYSTEM
 # USTAR format gives us the possibility to store longer path names in

=== modified file 'mysql-test/extra/rpl_tests/rpl_insert_id_pk.test'
--- a/mysql-test/extra/rpl_tests/rpl_insert_id_pk.test	2007-06-06 17:57:07 +0000
+++ b/mysql-test/extra/rpl_tests/rpl_insert_id_pk.test	2010-04-06 22:47:08 +0000
@@ -82,7 +82,6 @@ SET FOREIGN_KEY_CHECKS=0;
 # Duplicate Key Errors codes
 --error 1022, ER_DUP_ENTRY
 INSERT INTO t1 VALUES (1),(1);
-sync_slave_with_master;
-connection master;
 drop table t1;
+sync_slave_with_master;
 # End of 4.1 tests

=== modified file 'mysql-test/include/maria_empty_logs.inc'
--- a/mysql-test/include/maria_empty_logs.inc	2009-10-13 12:47:17 +0000
+++ b/mysql-test/include/maria_empty_logs.inc	2010-04-06 22:47:08 +0000
@@ -11,9 +11,10 @@
 connection default;
 let $default_db=`select database()`;
 let $MYSQLD_DATADIR= `SELECT @@datadir`;
-# it will used at end of test for wait_for_status_var.inc primitive
-let $status_var= Threads_connected;
-let $status_var_value= query_get_value(SHOW STATUS LIKE 'Threads_connected', Value, 1);
+
+#it will used at end of test for wait_for_status_var.inc primitive
+#let $status_var= Threads_connected;
+#let $status_var_value= query_get_value(SHOW STATUS LIKE 'Threads_connected', Value, 1);
 
 connection admin;
 -- echo * shut down mysqld, removed logs, restarted it
@@ -77,12 +78,15 @@ append_file $MYSQLTEST_VARDIR/tmp/mysqld
 restart-maria_empty_logs.inc
 EOF
 
+connection default;
 --source include/wait_until_connected_again.inc
 
-connection default;
 # Make sure that all connections are restored
---source include/wait_for_status_var.inc
+# This is disabled as 'Threads_connected' can't be trusted'
+# (It may be affected by 'check_testcase()')
+# --source include/wait_for_status_var.inc
 # Restore current database as the effect of "use" was lost after restart
+
 --disable_query_log
 eval use $default_db;
 --enable_query_log

=== modified file 'mysql-test/lib/My/SafeProcess/safe_process.cc'
--- a/mysql-test/lib/My/SafeProcess/safe_process.cc	2010-03-28 18:10:00 +0000
+++ b/mysql-test/lib/My/SafeProcess/safe_process.cc	2010-04-08 11:56:57 +0000
@@ -85,17 +85,18 @@ static void die(const char* fmt, ...)
   va_end(args);
   if (int last_err= errno)
     fprintf(stderr, "error: %d, %s\n", last_err, strerror(last_err));
-  exit(1);
+  exit(6);
 }
 
 
-static void kill_child(void)
+static void kill_child(bool was_killed)
 {
   int status= 0;
 
   message("Killing child: %d", child_pid);
   // Terminate whole process group
-  kill(-child_pid, SIGKILL);
+  if (! was_killed)
+    kill(-child_pid, SIGKILL);
 
   pid_t ret_pid= waitpid(child_pid, &status, 0);
   if (ret_pid == child_pid)
@@ -115,7 +116,7 @@ static void kill_child(void)
 
     exit(exit_code);
   }
-  exit(1);
+  exit(5);
 }
 
 
@@ -135,7 +136,7 @@ extern "C" void handle_signal(int sig)
   terminated= 1;
 
   if (child_pid > 0)
-    kill_child();
+    kill_child(sig == SIGCHLD);
 
   // Ignore further signals
   signal(SIGTERM, SIG_IGN);
@@ -240,8 +241,8 @@ int main(int argc, char* const argv[] )
     // Close write end
     close(pfd[1]);
 
-    if (execvp(child_argv[0], child_argv) < 0)
-      die("Failed to exec child");
+    execvp(child_argv[0], child_argv);
+    die("Failed to exec child");
   }
 
   close(pfd[1]); // Close unused write end
@@ -257,39 +258,19 @@ int main(int argc, char* const argv[] )
   /* Monitor loop */
   message("Started child %d, terminated: %d", child_pid, terminated);
 
-  while(!terminated)
+  while (!terminated)
   {
     // Check if parent is still alive
-    if (kill(parent_pid, 0) != 0){
+    if (kill(parent_pid, 0) != 0)
+    {
       message("Parent is not alive anymore");
       break;
     }
-
-    // Check if child has exited, normally this will be
-    // detected immediately with SIGCHLD handler
-    int status= 0;
-    pid_t ret_pid= waitpid(child_pid, &status, WNOHANG);
-    if (ret_pid == child_pid)
-    {
-      int ret_code= 2;
-      if (WIFEXITED(status))
-      {
-        // Process has exited, collect return status
-        ret_code= WEXITSTATUS(status);
-        message("Child exit: %d", ret_code);
-        // Exit with exit status of the child
-        exit(ret_code);
-      }
-
-      if (WIFSIGNALED(status))
-        message("Child killed by signal: %d", WTERMSIG(status));
-
-      exit(ret_code);
-    }
+    /* Wait for parent or child to die */
     sleep(1);
   }
-  kill_child();
+  kill_child(0);
 
-  return 1;
+  return 4;
 }
 

=== modified file 'mysql-test/mysql-test-run.pl'
--- a/mysql-test/mysql-test-run.pl	2010-02-19 08:10:05 +0000
+++ b/mysql-test/mysql-test-run.pl	2010-04-08 09:52:53 +0000
@@ -4012,7 +4012,10 @@ sub extract_warning_lines ($) {
      qr/Slave I\/O: Get master COLLATION_SERVER failed with error:.*/,
      qr/Slave I\/O: Get master TIME_ZONE failed with error:.*/,
      qr/Slave I\/O: error reconnecting to master '.*' - retry-time: [1-3]  retries/,
+     qr/Slave I\/0: Master command COM_BINLOG_DUMP failed/,
      qr/Error reading packet/,
+     qr/Lost connection to MySQL server at 'reading initial communication packet'/,
+     qr/Failed on request_dump/,
      qr/Slave: Can't drop database.* database doesn't exist/,
      qr/Slave: Operation DROP USER failed for 'create_rout_db'/,
      qr|Checking table:   '\./mtr/test_suppressions'|,

=== modified file 'mysql-test/r/func_time.result'
--- a/mysql-test/r/func_time.result	2010-01-21 08:10:05 +0000
+++ b/mysql-test/r/func_time.result	2010-04-08 09:47:31 +0000
@@ -1120,7 +1120,7 @@ drop function t_slow_sysdate;
 drop table t1;
 SET GLOBAL log_bin_trust_function_creators = 0;
 create table t1 (a datetime, i int, b datetime);
-insert into t1 select sysdate(), sleep(1), sysdate() from dual;
+insert into t1 select sysdate(), sleep(2), sysdate() from dual;
 select a != b from t1;
 a != b
 1

=== modified file 'mysql-test/suite/binlog/r/binlog_index.result'
--- a/mysql-test/suite/binlog/r/binlog_index.result	2010-03-20 14:12:53 +0000
+++ b/mysql-test/suite/binlog/r/binlog_index.result	2010-04-08 09:52:53 +0000
@@ -3,6 +3,7 @@ call mtr.add_suppression('MSYQL_BIN_LOG:
 call mtr.add_suppression('MSYQL_BIN_LOG::open failed to sync the index file');
 call mtr.add_suppression('Turning logging off for the whole duration of the MySQL server process.');
 call mtr.add_suppression('MSYQL_BIN_LOG::purge_logs failed to clean registers before purging logs.');
+flush tables;
 flush logs;
 flush logs;
 flush logs;

=== added file 'mysql-test/suite/binlog/t/binlog_index-master.opt'
--- a/mysql-test/suite/binlog/t/binlog_index-master.opt	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/binlog/t/binlog_index-master.opt	2010-04-06 22:47:08 +0000
@@ -0,0 +1 @@
+--skip-stack-trace --test-expect-abort --log-warnings=0

=== modified file 'mysql-test/suite/binlog/t/binlog_index.test'
--- a/mysql-test/suite/binlog/t/binlog_index.test	2010-03-20 14:12:53 +0000
+++ b/mysql-test/suite/binlog/t/binlog_index.test	2010-04-08 09:52:53 +0000
@@ -11,6 +11,8 @@ call mtr.add_suppression('MSYQL_BIN_LOG:
 call mtr.add_suppression('MSYQL_BIN_LOG::open failed to sync the index file');
 call mtr.add_suppression('Turning logging off for the whole duration of the MySQL server process.');
 call mtr.add_suppression('MSYQL_BIN_LOG::purge_logs failed to clean registers before purging logs.');
+flush tables;
+
 let $old=`select @@debug`;
 
 let $MYSQLD_DATADIR= `select @@datadir`;

=== modified file 'mysql-test/suite/funcs_1/datadict/processlist_priv.inc'
--- a/mysql-test/suite/funcs_1/datadict/processlist_priv.inc	2009-10-10 09:59:06 +0000
+++ b/mysql-test/suite/funcs_1/datadict/processlist_priv.inc	2010-04-07 15:26:30 +0000
@@ -89,18 +89,38 @@ USE information_schema;
 --echo 1 Prepare test.
 --echo   connection default (user=root)
 --echo ####################################################################################
-if (`SELECT COUNT(*) <> 1 FROM processlist`)
+
+# Check that we have only one connection around.
+# If there is more, it may be the check() connection that has not yet ended,
+# so we wait for it for up to 10 seconds.
+
+let $counter=100;
+while ($counter)
 {
-   --echo This test expects one connection to the server.
-   --echo Expectation: USER  HOST       DB                  COMMAND  STATE      INFO
-   --echo Expectation: root  localhost  information_schema  Query    executing  SELECT USER,HOST,DB,COMMAND,STATE,INFO FROM processlist ORDER BY ID
-   --echo But we found in the moment:
-   SELECT USER,HOST,DB,COMMAND,STATE,INFO FROM processlist ORDER BY ID;
-   --echo Maybe
-   --echo - the base configuration (no of parallel auxiliary sessions) of the server has changed
-   --echo - a parallel test intended for another server accidently connected to our current one
-   --echo We cannot proceed in this situation. Abort
-   exit;
+  dec $counter;
+  let $res= `SELECT COUNT(*) <> 1 FROM processlist`;
+  if (!$res)
+  {
+    # Success; Abort while loop
+    let $counter=0;
+  }
+  if ($res)
+  {
+    --sleep 0.1
+    if (!$counter)
+    {   
+      --echo This test expects one connection to the server.
+        --echo Expectation: USER  HOST       DB                  COMMAND  STATE      INFO
+        --echo Expectation: root  localhost  information_schema  Query    executing  SELECT USER,HOST,DB,COMMAND,STATE,INFO FROM processlist ORDER BY ID
+        --echo But we found in the moment:
+      SELECT USER,HOST,DB,COMMAND,STATE,INFO FROM processlist ORDER BY ID;
+      --echo Maybe
+      --echo - the base configuration (no of parallel auxiliary sessions) of the server has changed
+      --echo - a parallel test intended for another server accidently connected to our current one
+      --echo We cannot proceed in this situation. Abort
+      exit;
+     }
+  }
 }
 
 --echo ####################################################################################

=== modified file 'mysql-test/suite/pbxt/r/multi_statement.result'
--- a/mysql-test/suite/pbxt/r/multi_statement.result	2009-04-02 10:03:14 +0000
+++ b/mysql-test/suite/pbxt/r/multi_statement.result	2010-04-06 22:47:08 +0000
@@ -47,5 +47,5 @@ i
 3
 show status like 'Slow_queries'||||
 Variable_name	Value
-Slow_queries	0
+Slow_queries	3
 drop table t1||||

=== added file 'mysql-test/suite/pbxt/t/multi_statement-master.opt'
--- a/mysql-test/suite/pbxt/t/multi_statement-master.opt	1970-01-01 00:00:00 +0000
+++ b/mysql-test/suite/pbxt/t/multi_statement-master.opt	2010-04-06 22:47:08 +0000
@@ -0,0 +1,3 @@
+--slow-query-log
+--slow-query-log-file=slow.log
+--log-queries-not-using-indexes

=== modified file 'mysql-test/suite/pbxt/t/status.test'
--- a/mysql-test/suite/pbxt/t/status.test	2009-04-02 10:03:14 +0000
+++ b/mysql-test/suite/pbxt/t/status.test	2010-04-07 15:26:30 +0000
@@ -30,7 +30,7 @@ connection con1;
 --send
 update t1 set n = 3;
 connection con2;
-sleep 0.5;
+sleep 5;
 unlock tables;
 connection con1;
 reap;

=== modified file 'mysql-test/t/func_time.test'
--- a/mysql-test/t/func_time.test	2009-01-23 12:22:05 +0000
+++ b/mysql-test/t/func_time.test	2010-04-08 09:47:31 +0000
@@ -650,7 +650,7 @@ drop table t1;
 SET GLOBAL log_bin_trust_function_creators = 0;
 
 create table t1 (a datetime, i int, b datetime);
-insert into t1 select sysdate(), sleep(1), sysdate() from dual;
+insert into t1 select sysdate(), sleep(2), sysdate() from dual;
 select a != b from t1;
 drop table t1;
 

=== modified file 'plugin/auth/dialog.c'
--- a/plugin/auth/dialog.c	2010-04-01 14:34:51 +0000
+++ b/plugin/auth/dialog.c	2010-04-08 13:02:49 +0000
@@ -224,11 +224,11 @@ static mysql_authentication_dialog_ask_t
 static char *builtin_ask(MYSQL *mysql __attribute__((unused)),
                          int type __attribute__((unused)),
                          const char *prompt,
-                         char *buf, int buf_len __attribute__((unused)))
+                         char *buf, int buf_len)
 {
   fputs(prompt, stdout);
   fputc(' ', stdout);
-  if (gets(buf) == 0)
+  if (fgets(buf, buf_len, stdin) == 0)
     return 0;
 
   return buf;

=== modified file 'sql/events.cc'
--- a/sql/events.cc	2010-03-04 08:03:07 +0000
+++ b/sql/events.cc	2010-04-06 22:47:08 +0000
@@ -1263,8 +1263,9 @@ Events::load_events_from_db(THD *thd)
       }
     }
   }
-  sql_print_information("Event Scheduler: Loaded %d event%s",
-                        count, (count == 1) ? "" : "s");
+  if (global_system_variables.log_warnings)
+    sql_print_information("Event Scheduler: Loaded %d event%s",
+                          count, (count == 1) ? "" : "s");
   ret= FALSE;
 
 end:

=== modified file 'sql/handler.cc'
--- a/sql/handler.cc	2010-04-08 12:10:05 +0000
+++ b/sql/handler.cc	2010-04-08 13:07:43 +0000
@@ -4455,6 +4455,8 @@ int handler::index_read_idx_map(uchar *
                                 enum ha_rkey_function find_flag)
 {
   int error, error1;
+  LINT_INIT(error1);
+
   error= index_init(index, 0);
   if (!error)
   {

=== modified file 'sql/log.cc'
--- a/sql/log.cc	2010-04-01 14:34:51 +0000
+++ b/sql/log.cc	2010-04-08 09:52:53 +0000
@@ -1238,6 +1238,7 @@ void LOGGER::deactivate_log_handler(THD
 {
   my_bool *tmp_opt= 0;
   MYSQL_LOG *file_log;
+  LINT_INIT(file_log);
 
   switch (log_type) {
   case QUERY_LOG_SLOW:

=== modified file 'sql/mysqld.cc'
--- a/sql/mysqld.cc	2010-04-08 12:10:05 +0000
+++ b/sql/mysqld.cc	2010-04-08 13:07:43 +0000
@@ -1,4 +1,5 @@
 /* Copyright (C) 2000-2008 MySQL AB, 2008-2009 Sun Microsystems, Inc.
+   2009-2010 Monty Program Ab
 
    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
@@ -383,7 +384,7 @@ static bool volatile select_thread_in_us
 static bool volatile ready_to_exit;
 static my_bool opt_debugging= 0, opt_external_locking= 0, opt_console= 0;
 static my_bool opt_short_log_format= 0;
-static my_bool opt_ignore_wrong_options= 0;
+static my_bool opt_ignore_wrong_options= 0, opt_expect_abort= 0;
 static uint kill_cached_threads, wake_thread;
 ulong thread_created;
 static ulong max_used_connections;
@@ -2549,13 +2550,19 @@ extern "C" sig_handler handle_segfault(i
   curr_time= my_time(0);
   localtime_r(&curr_time, &tm);
 
-  fprintf(stderr,"\
-%02d%02d%02d %2d:%02d:%02d - mysqld got " SIGNAL_FMT " ;\n\
+  fprintf(stderr, "%02d%02d%02d %2d:%02d:%02d ",
+          tm.tm_year % 100, tm.tm_mon+1, tm.tm_mday,
+          tm.tm_hour, tm.tm_min, tm.tm_sec);
+  if (opt_expect_abort && sig == SIGABRT)
+  {
+    fprintf(stderr,"[Note] mysqld did an expected abort\n");
+    goto end;
+  }
+
+  fprintf(stderr,"[ERROR] mysqld got " SIGNAL_FMT " ;\n\
 This could be because you hit a bug. It is also possible that this binary\n\
 or one of the libraries it was linked against is corrupt, improperly built,\n\
 or misconfigured. This error can also be caused by malfunctioning hardware.\n",
-          tm.tm_year % 100, tm.tm_mon+1, tm.tm_mday,
-          tm.tm_hour, tm.tm_min, tm.tm_sec,
 	  sig);
   fprintf(stderr, "\
 We will try our best to scrape up some info that will hopefully help diagnose\n\
@@ -2674,6 +2681,7 @@ bugs.\n");
   }
 #endif
 
+end:
 #ifndef __WIN__
   /* On Windows, do not terminate, but pass control to exception filter */
   exit(1);
@@ -5925,7 +5933,7 @@ enum options_mysqld
   OPT_MIN_EXAMINED_ROW_LIMIT,
   OPT_LOG_SLOW_SLAVE_STATEMENTS,
   OPT_DEBUG_CRC, OPT_DEBUG_ON, OPT_OLD_MODE,
-  OPT_TEST_IGNORE_WRONG_OPTIONS, 
+  OPT_TEST_IGNORE_WRONG_OPTIONS, OPT_TEST_RESTART,
 #if defined(ENABLED_DEBUG_SYNC)
   OPT_DEBUG_SYNC_TIMEOUT,
 #endif /* defined(ENABLED_DEBUG_SYNC) */
@@ -6773,6 +6781,10 @@ log and this option does nothing anymore
    "Ignore wrong enums values in command line arguments. Useful only for test scripts",
    (uchar**) &opt_ignore_wrong_options, (uchar**) &opt_ignore_wrong_options,
    0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
+  {"test-expect-abort", OPT_TEST_RESTART,
+   "Expect that server aborts with 'abort'; Don't write out server variables on 'abort'. Useful only for test scripts",
+   (uchar**) &opt_expect_abort, (uchar**) &opt_expect_abort,
+   0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0},
   {"timed_mutexes", OPT_TIMED_MUTEXES,
    "Specify whether to time mutexes (only InnoDB mutexes are currently supported)",
    (uchar**) &timed_mutexes, (uchar**) &timed_mutexes, 0, GET_BOOL, NO_ARG, 0,

=== modified file 'sql/set_var.cc'
--- a/sql/set_var.cc	2010-04-06 18:36:06 +0000
+++ b/sql/set_var.cc	2010-04-08 09:52:53 +0000
@@ -2604,7 +2604,7 @@ static int  sys_check_log_path(THD *thd,
   char path[FN_REFLEN], buff[FN_REFLEN];
   MY_STAT f_stat;
   String str(buff, sizeof(buff), system_charset_info), *res;
-  const char *log_file_str;
+  const char *log_file_str= 0;
   size_t path_length;
 
   if (!(res= var->value->val_str(&str)))
@@ -2654,7 +2654,7 @@ static int  sys_check_log_path(THD *thd,
 
 err:
   my_error(ER_WRONG_VALUE_FOR_VAR, MYF(0), var->var->name, 
-           res ? log_file_str : "NULL");
+           log_file_str ? log_file_str : "NULL");
   return 1;
 }
 
@@ -2663,7 +2663,7 @@ bool update_sys_var_str_path(THD *thd, s
 			     set_var *var, const char *log_ext,
 			     bool log_state, uint log_type)
 {
-  MYSQL_QUERY_LOG *file_log;
+  MYSQL_QUERY_LOG *file_log= 0;
   char buff[FN_REFLEN];
   char *res= 0, *old_value=(char *)(var ? var->value->str_value.ptr() : 0);
   bool result= 0;

=== modified file 'sql/slave.cc'
--- a/sql/slave.cc	2010-03-04 08:03:07 +0000
+++ b/sql/slave.cc	2010-04-06 22:47:08 +0000
@@ -2255,6 +2255,7 @@ static int exec_relay_log_event(THD* thd
     if (slave_trans_retries)
     {
       int temp_err;
+      LINT_INIT(temp_err);
       if (exec_res && (temp_err= has_temporary_error(thd)))
       {
         const char *errmsg;

=== modified file 'sql/sql_plugin.cc'
--- a/sql/sql_plugin.cc	2010-04-01 20:05:09 +0000
+++ b/sql/sql_plugin.cc	2010-04-08 09:52:53 +0000
@@ -593,7 +593,7 @@ static my_bool read_maria_plugin_info(st
 
   DBUG_RETURN(FALSE);
 }
-#endif HAVE_DLOPEN
+#endif /* HAVE_DLOPEN */
 
 static st_plugin_dl *plugin_dl_add(const LEX_STRING *dl, int report)
 {
@@ -1886,9 +1886,10 @@ bool mysql_install_plugin(THD *thd, cons
 
   if (tmp->state == PLUGIN_IS_DISABLED)
   {
-    push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
-                        ER_CANT_INITIALIZE_UDF, ER(ER_CANT_INITIALIZE_UDF),
-                        name->str, "Plugin is disabled");
+    if (global_system_variables.log_warnings)
+      push_warning_printf(thd, MYSQL_ERROR::WARN_LEVEL_WARN,
+                          ER_CANT_INITIALIZE_UDF, ER(ER_CANT_INITIALIZE_UDF),
+                          name->str, "Plugin is disabled");
   }
   else
   {

=== modified file 'storage/maria/ma_loghandler.c'
--- a/storage/maria/ma_loghandler.c	2010-04-02 09:20:09 +0000
+++ b/storage/maria/ma_loghandler.c	2010-04-08 09:52:53 +0000
@@ -1274,11 +1274,10 @@ static my_bool translog_set_lsn_for_file
   for (file= from_file; file <= to_file; file++)
   {
     LOGHANDLER_FILE_INFO info;
-    File fd= open_logfile_by_number_no_cache(file);
-
-    LINT_INIT_STRUCT(info);
+    File fd;
     LINT_INIT(info.max_lsn);
 
+    fd= open_logfile_by_number_no_cache(file);
     if ((fd < 0) ||
         ((translog_read_file_header(&info, fd) ||
           (cmp_translog_addr(lsn, info.max_lsn) > 0 &&

=== modified file 'storage/xtradb/include/ut0lst.h'
--- a/storage/xtradb/include/ut0lst.h	2010-03-30 12:36:49 +0000
+++ b/storage/xtradb/include/ut0lst.h	2010-04-06 22:47:08 +0000
@@ -158,7 +158,7 @@ Inserts a NODE2 after NODE1 in a list.
 /** Invalidate the pointers in a list node.
 @param NAME	list name
 @param N	pointer to the node that was removed */
-# define UT_LIST_REMOVE_CLEAR(NAME, N) {} while (0)
+# define UT_LIST_REMOVE_CLEAR(NAME, N) do {} while (0)
 #endif
 
 /*******************************************************************//**

=== modified file 'support-files/compiler_warnings.supp'
--- a/support-files/compiler_warnings.supp	2010-04-01 09:40:11 +0000
+++ b/support-files/compiler_warnings.supp	2010-04-07 15:26:30 +0000
@@ -40,6 +40,7 @@ sync/sync0sync\.c: unused parameter
 sync/sync0sync\.c: unused variable
 ut/ut0ut\.c: ignoring return value of
 srv/srv0srv\.c: value computed is not used
+buf/buf0buf\.c: .*block_mutex.* might be used uninitialized
 
 #
 # bdb is not critical to keep up to date