1. 28 Mar, 2012 6 commits
    • Marc Alff's avatar
      Bug#13898343 THREAD LOOPS ENDLESSLY IN LF_PINBOX_PUT_PINS WHILE HOLDING · 7553f9ee
      Marc Alff authored
      LOCK_THREAD_COUNT
      
      When using the performance schema file io instrumentation in MySQL 5.5,
      a thread would loop forever inside lf_pinbox_put_pins, when disconnecting.
      It would also hold LOCK_thread_count while doing so, effectively killing the
      server.
      
      The root cause of the loop in lf_pinbox_put_pins() is a leak of LF_PINS,
      when used with the filename_hash LF_HASH table in the performance schema.
      
      This fix contains the following changes:
      
      1)
      Added the missing call to lf_hash_search_unpin(), to prevent the leak.
      
      2)
      In mysys/lf_alloc-pin.c, there was some extra debugging code
      (MY_LF_EXTRA_DEBUG) written to detect precisely this kind of issues,
      but it was never used.
      Replaced MY_LF_EXTRA_DEBUG with DBUG_OFF, so that leaks similar to this one
      can be always detected in regular debug builds.
      
      3)
      Backported the fix for the following bug, from 5.6 to 5.5:
      Bug#13417446 - 63339: INCORRECT FILE PATH IN PEFORMANCE_SCHEMA ON WINDOWS
      7553f9ee
    • Praveenkumar Hulakund's avatar
      Merge from 5.1 to 5.5 · fe12e0b2
      Praveenkumar Hulakund authored
      fe12e0b2
    • Praveenkumar Hulakund's avatar
      Bug#11763507 - 56224: FUNCTION NAME IS CASE-SENSITIVE · f3d5127f
      Praveenkumar Hulakund authored
      Analysis:
      -------------------------------
      According to the Manual
      (http://dev.mysql.com/doc/refman/5.1/en/identifier-case-sensitivity.html):
      "Column, index, stored routine, and event names are not case sensitive on any
      platform, nor are column aliases."
      
      In other words, 'lower_case_table_names' does not affect the behaviour of 
      those identifiers.
      
      On the other hand, trigger names are case sensitive on some platforms,
      and case insensitive on others. 'lower_case_table_names' does not affect
      the behaviour of trigger names either.
      
      The bug was that SHOW statements did case sensitive comparison
      for stored procedure / stored function / event names.
      
      Fix:
      Modified the code so that comparison in case insensitive for routines 
      and events for "SHOW" operation.
      
      As part of this commit, only fixing the test failures due to the actual code fix.
      f3d5127f
    • Sunny Bains's avatar
      Merge from mysql-5.1. · 1e10b606
      Sunny Bains authored
      1e10b606
    • Sunny Bains's avatar
      Merge from mysql-5.0 · 83a5a20d
      Sunny Bains authored
      83a5a20d
    • Sunny Bains's avatar
      Bug# 13847885 - PURGING STALLS WHEN PURGE_SYS->N_PAGES_HANDLED OVERFLOWS · 65126ffa
      Sunny Bains authored
      Change the type of purge_sys_t::n_pages_handled and purge_sys_t::handle_limit
      to ulonglong from ulint. On a 32 bit system doing ~700 deletes per second the
      counters can overflow in ~3.5 months, if they are 32 bit.
      
      Approved by Jimmy Yang over IM.
      65126ffa
  2. 27 Mar, 2012 4 commits
  3. 26 Mar, 2012 1 commit
  4. 22 Mar, 2012 1 commit
  5. 21 Mar, 2012 3 commits
  6. 20 Mar, 2012 6 commits
  7. 16 Mar, 2012 3 commits
  8. 15 Mar, 2012 9 commits
    • Inaam Rana's avatar
      merge from 5.1 · 3c1bdb35
      Inaam Rana authored
      3c1bdb35
    • Inaam Rana's avatar
      Bug#13825266 RACE IN LOCK_VALIDATE() WHEN ACCESSING PAGES DIRECTLY · 00231470
      Inaam Rana authored
      FROM BUFFER POOL
      
      rb://975
      approved by: Marko Makela
      
      There is a race in lock_validate() where we try to access a page
      without ensuring that the tablespace stays valid during the operation
      i.e.: it is not deleted. This patch tries to fix that by using an
      existing flag (the flag is renamed to make it's name more generic
      in line with it's new use).
      00231470
    • Inaam Rana's avatar
      merge from 5.1 · 1ca73ab4
      Inaam Rana authored
      1ca73ab4
    • Inaam Rana's avatar
      Bug#13851171 STRING OVERFLOW IN INNODB CODE FOUND BY STATIC ANALYSIS · 04c96834
      Inaam Rana authored
      rb://976
      approved by: Marko Makela
      
      Add an assertion to ensure that string overflow is not happening.
      Pointed by Coverity analysis.
      04c96834
    • Inaam Rana's avatar
      merge from 5.1 · 2ceb1177
      Inaam Rana authored
      2ceb1177
    • Inaam Rana's avatar
      Bug#13537504 VALGRIND: COND. JUMP/MOVE DEPENDS ON UNINITIALISED VALUES · a8217b7c
      Inaam Rana authored
      IN OS_THREAD_EQ
      
      rb://977
      approved by: Marko Makela
      
      rw_lock::writer_thread field contains the thread id of current x-holder
      or wait-x thread. This field is un-initialized at lock creation and is
      written to for the first time when an attempt is made to x-lock.
      
      Current code considers ::writer_thread as valid memory region only when
      the lock is held in x-mode (or there is an x-waiter). This is an
      overkill and it generates valgrind warnings.
      
      The fix is to consider ::writer_thread as valid memory region once it
      has been written to.
      
      Reasoning:
      ==========
      The ::writer_thread can be safely considered valid because:
      
      * We only ever do comparison with current calling threads id.
      * We only ever do comparison when ::recursive flag is set
      * We always unset ::recursive flag in x-unlock
      * Same thread cannot be unlocking and attempting to lock at the same
      time
      * thread_id recycling is not an issue because before an id is recycled
      the thread must leave innodb meaning it must release all locks meaning
      it must unset ::recursive flag.
      a8217b7c
    • Jon Olav Hauglid's avatar
      Bug#13833438: ERROR CODES MUST HAVE SAME VALUE ACROSS MYSQL VERSIONS · 1f5051d9
      Jon Olav Hauglid authored
      Pre-requisite patch.
      Add end-of-file marker to 5.5 version of errmsg-utf8.txt.
      1f5051d9
    • Dmitry Shulga's avatar
      This patch fixes the bug#13737343 (formerly known as 64374): XA TRANSACTIONS · 2b68b4bc
      Dmitry Shulga authored
      AND SAVEPOINT.
            
      The bug was introduced by the patch for bug#11766752. This patch sets too
      strong condition on XA state for SAVEPOINT statement that disallows its
      execution during XA transaction. But since the statement SAVEPOINT doesn't
      imply implicit commit we can allow its handling during XA transaction.
      
      The patch explicitly check for transaction state against states XA_NOTR
      and XA_ACTIVE for which the handling of statement SAVEPOINT for XA
      transaction is allowed.
      
      mysql-test/t/xa.test:
        Testcase was adjusted for bug#13737343. Now SAVEPOINT is allowed for XA
        transactions in ACTIVE state.
      2b68b4bc
    • unknown's avatar
  9. 14 Mar, 2012 5 commits
    • Mattias Jonsson's avatar
      merge of bug#1364811 into mysql-5.5 · 5584e61f
      Mattias Jonsson authored
      5584e61f
    • Mattias Jonsson's avatar
      bug#13694811 · 58b21478
      Mattias Jonsson authored
      Updated code comments according to reviewers requests.
      58b21478
    • Tor Didriksen's avatar
      Bug#13832772 ASSERTION `THD->IS_ERROR() || KILL_ERRNO' · a930e474
      Tor Didriksen authored
      We are trying to sort a lot of text/blob fields, 
      so the buffer is indeed too small.
      Memory available = thd->variables.sortbuff_size = 262144
      min_sort_memory = param.sort_length*MERGEBUFF2 = 292245
      So the decision to abort the query is correct.
      
      filesort() calls my_error(), the error is reported.
      But, since we have DELETE IGNORE ... the error is converted to a warning by
      THD::raise_condition
      
      filesort currently expects an error to be recorded in the THD diagnostics
      area.
      If we lift this restriction (remove the assert) we end up in the familiar
      void Protocol::end_statement()
        default:
          DBUG_ASSERT(0);
      
      The solution seems to be to call my_error(ME_FATALERROR) in filesort,
      so that the error is propagated as an error rather than a warning.
      
      
      mysql-test/r/filesort_debug.result:
        New test case.
      mysql-test/t/filesort_debug.test:
        New test case.
      a930e474
    • unknown's avatar
      8f9f40aa
    • Chaithra Gopalareddy's avatar
      Bug#12626844 : WE ARE NOT CHECKING VIEW TABLE NAMES · e48afab4
      Chaithra Gopalareddy authored
                     ENOUGH - CONCAT() HACKS. ALSO WRONG
                     ERROR MESSAGE WHILE TRYING TO CREATE
                     A VIEW ON A NON EXISTING DATABASE
      
      PROBLEM:
      The first part of the problem is concluded as not a
      bug, as 'concat' is not a reserved word and it is
      completely valid to create a view with the name
      'concat'.
      
      The second issue is, while trying to create a view on
      a non existing database, we are not giving a proper error
      message.
      
      FIX:
      We have added a check for the database existence while
      trying to create a view. This check would give an error
      as 'unknown database' when the database does not exist.
      
      This patch is a backport of the patch for Bug#13601606
      
      
      mysql-test/r/view.result:
        Added test case result of Bug#12626844
      mysql-test/t/view.test:
        Added test case for Bug#12626844
      sql/sql_view.cc:
        Added a check for database existence in mysql_create_view
      e48afab4
  10. 12 Mar, 2012 2 commits