1. 29 Mar, 2011 1 commit
    • Jon Olav Hauglid's avatar
      Bug# 11763784 (former 56541) · 455646e7
      Jon Olav Hauglid authored
      ASSERTION TABLE->DB_STAT FAILED IN
      SQL_BASE.CC::OPEN_TABLE() DURING I_S Q
      
      This assert could be triggered if a statement requiring a name
      lock on a table (e.g. DROP TRIGGER) executed concurrently
      with an I_S query which also used the table.
      
      One connection first started an I_S query that opened a given table.
      Then another connection started a statement requiring a name lock
      on the same table. This statement was blocked since the table was
      in use by the I_S query. When the I_S query resumed and tried to
      open the table again as part of get_all_tables(), it would encounter
      a table instance with an old version number representing the pending
      name lock. Since I_S queries ignore version checks and thus pending
      name locks, it would try to continue. This caused it to encounter
      the assert. The assert checked that the TABLE instance found with a
      different version, was a real, open table. However, since this TABLE
      instance instead represented a pending name lock, the check would
      fail and trigger the assert.
      
      This patch fixes the problem by removing the assert. It is ok for
      TABLE::db_stat to be 0 in this case since the TABLE instance can
      represent a pending name lock.
      
      Test case added to lock_sync.test.
      455646e7
  2. 28 Mar, 2011 11 commits
  3. 25 Mar, 2011 3 commits
    • Sven Sandberg's avatar
      BUG#11766427, BUG#59539: Filter by server id in mysqlbinlog fails · 257e39aa
      Sven Sandberg authored
      Problem: mysqlbinlog --server-id may filter out Format_description_log_events.
      If mysqlbinlog does not process the Format_description_log_event,
      then mysqlbinlog cannot read the rest of the binary log correctly.
      This can have the effect that mysqlbinlog crashes, generates an error,
      or generates output that causes mysqld to crash, generate an error,
      or corrupt data.
      Fix: Never filter out Format_description_log_events. Also, never filter
      out Rotate_log_events.
      257e39aa
    • Georgi Kodinov's avatar
      merge · aee26192
      Georgi Kodinov authored
      aee26192
    • Georgi Kodinov's avatar
      Bug #11766769: 59959: SMALL VALUES OF --MAX-ALLOWED-PACKET · c7b83484
      Georgi Kodinov authored
      ARE NOT BEING HONORED
      
      max_allowed_packet works in conjunction with net_buffer_length.
      max_allowed_packet is an upper bound of net_buffer_length.
      So it doesn't make sense to set the upper limit lower than the value.
      Added a warning (using ER_UNKNOWN_ERRROR and a specific message)
      when this is done (in the log at startup and when setting either 
      max_allowed_packet or the net_buffer_length variables)
      Added a test case.
      Fixed several tests that broke the above rule.
      c7b83484
  4. 24 Mar, 2011 2 commits
    • Luis Soares's avatar
    • Luis Soares's avatar
      BUG#11766865: 60091: RBR + NO PK + UPDATE NULL VALUE --> SLAVE BREAK WITH ERROR HA_ERR_END_OF_ · 16e4677c
      Luis Soares authored
        
      The slave was not able to find the correct row in the innodb
      table, because the row fetched from the innodb table would not
      match the before image. This happened because the (don't care)
      bytes in the NULLed fields would change once the row was stored
      in the storage engine (from zero to the default value). This
      would make bulk memory comparison (using memcmp) to fail.
        
      We fix this by taking a preventing measure and avoiding memcmp
      for tables that contain nullable fields. Therefore, we protect
      the slave search routine from engines that return arbitrary
      values for don't care bytes (in the nulled fields). Instead, the
      slave thread will only check null_bits and those fields that are
      not set to NULL when comparing the before image against the
      storage engine row.
      16e4677c
  5. 23 Mar, 2011 1 commit
  6. 22 Mar, 2011 5 commits
  7. 21 Mar, 2011 5 commits
  8. 18 Mar, 2011 2 commits
  9. 17 Mar, 2011 2 commits
  10. 16 Mar, 2011 4 commits
  11. 15 Mar, 2011 2 commits
    • Bjorn Munch's avatar
      Bug #11762804 55442: MYSQLD DEBUG CRASHES WHILE RUNNING MYISAM_CRASH_BEFORE_FLUSH_KEYS.TEST · aa4bfeba
      Bjorn Munch authored
      This will cause affected tests to skip if CrashReporter would popup
      Found 5 tests that needed modification
      aa4bfeba
    • Dmitry Shulga's avatar
      Fixed Bug#11764168 "56976: SEVERE DENIAL OF SERVICE IN PREPARED STATEMENTS". · 6c2f5e30
      Dmitry Shulga authored
      The problem was that server didn't check resulting size of prepared
      statement argument which was set using mysql_send_long_data() API.
      By calling mysql_send_long_data() several times it was possible
      to create overly big string and thus force server to allocate
      memory for it. There was no way to limit this allocation.
      
      The solution is to add check for size of result string against
      value of max_long_data_size start-up parameter. When intermediate
      string exceeds max_long_data_size value an appropriate error message
      is emitted.
      
      We can't use existing max_allowed_packet parameter for this purpose
      since its value is limited by 1GB and therefore using it as a limit
      for data set through mysql_send_long_data() API would have been an
      incompatible change. Newly introduced max_long_data_size parameter
      gets value from max_allowed_packet parameter unless its value is
      specified explicitly. This new parameter is marked as deprecated
      and will be eventually replaced by max_allowed_packet parameter.
      Value of max_long_data_size parameter can be set only at server
      startup.
      6c2f5e30
  12. 14 Mar, 2011 1 commit
  13. 11 Mar, 2011 1 commit