1. 13 Feb, 2012 2 commits
  2. 10 Feb, 2012 8 commits
  3. 07 Feb, 2012 2 commits
  4. 06 Feb, 2012 7 commits
    • Georgi Kodinov's avatar
    • Georgi Kodinov's avatar
    • Georgi Kodinov's avatar
      merge mysql-5.5->mysql-5.5-security · e9e7acf5
      Georgi Kodinov authored
      e9e7acf5
    • Georgi Kodinov's avatar
      merged mysql-5.1->mysql-5.1-security · 867ecf3b
      Georgi Kodinov authored
      867ecf3b
    • Georgi Kodinov's avatar
      merged mysql-5.0->mysql-5.0-security · eb76ee13
      Georgi Kodinov authored
      eb76ee13
    • Vasil Dimov's avatar
      Merge mysql-5.1 -> mysql-5.5 · 99208a48
      Vasil Dimov authored
      The actual Bug#11754376 does not exist in MySQL 5.5 because at startup
      we drop entries for temporary tables from InnoDB dictionary cache (only
      if ROW_FORMAT is not REDUNDANT). But nevertheless the bug in
      normalize_table_name_low() is present so we fix it.
      99208a48
    • Vasil Dimov's avatar
      Fix Bug#11754376 45976: INNODB LOST FILES FOR TEMPORARY TABLES ON · 36ff9aeb
      Vasil Dimov authored
      GRACEFUL SHUTDOWN
      
      During startup mysql picks up .frm files from the tmpdir directory and
      tries to drop those tables in the storage engine.
      
      The problem is that when tmpdir ends in / then ha_innobase::delete_table()
      is passed a string like "/var/tmp//#sql123", then it wrongly normalizes it
      to "/#sql123" and calls row_drop_table_for_mysql() which of course fails
      to delete the table entry from the InnoDB dictionary cache.
      ha_innobase::delete_table() returns an error but nevertheless mysql wipes
      away the .frm file and the entry in the InnoDB dictionary cache remains
      orphaned with no easy way to remove it.
      
      The "no easy" way to remove it is to create a similar temporary table again,
      copy its .frm file to tmpdir under "#sql123.frm" and restart mysqld with
      tmpdir=/var/tmp (no trailing slash) - this way mysql will pick the .frm file
      after restart and will try to issue drop table for "/var/tmp/#sql123"
      (notice do double slash), ha_innobase::delete_table() will normalize it to
      "tmp/#sql123" and row_drop_table_for_mysql() will successfully remove the
      table entry from the dictionary cache.
      
      The solution is to fix normalize_table_name_low() to normalize things like
      "/var/tmp//table" correctly to "tmp/table".
      
      This patch also adds a test function which invokes
      normalize_table_name_low() with various inputs to make sure it works
      correctly and a mtr test that calls this test function.
      
      Reviewed by:	Marko (http://bur03.no.oracle.com/rb/r/929/)
      36ff9aeb
  5. 05 Feb, 2012 1 commit
  6. 03 Feb, 2012 4 commits
  7. 02 Feb, 2012 12 commits
  8. 01 Feb, 2012 1 commit
  9. 31 Jan, 2012 3 commits