1. 20 Jul, 2007 2 commits
  2. 19 Jul, 2007 6 commits
    • unknown's avatar
      A follow-up fix for Bug#29431 "killing an insert delayed thread causes · d1dc2378
      unknown authored
      crash" in 5.1
      
      
      sql/sql_insert.cc:
        Additional safety fix: do not assume we already have a share in 
        get_local_table.
      d1dc2378
    • unknown's avatar
      Merge bodhi.(none):/opt/local/work/mysql-5.0-runtime · c701906b
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
      
      
      sql/sql_insert.cc:
        Manual merge.
      c701906b
    • unknown's avatar
      A post-merge fix · e5130869
      unknown authored
      e5130869
    • unknown's avatar
      Merge bodhi.(none):/opt/local/work/mysql-5.0-runtime · d03bea43
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
      
      
      mysql-test/r/sp-prelocking.result:
        Auto merged
      mysql-test/r/trigger.result:
        Auto merged
      mysql-test/t/create.test:
        Auto merged
      mysql-test/t/innodb.test:
        Auto merged
      mysql-test/t/sp-prelocking.test:
        Auto merged
      mysql-test/t/trigger.test:
        Auto merged
      sql/sql_class.h:
        Auto merged
      mysql-test/r/create.result:
        Use local.
      mysql-test/r/innodb.result:
        Manual merge.
      d03bea43
    • unknown's avatar
      Rename all references to 'Delayed_insert' instances from 'tmp' to 'di' · cd7e1d71
      unknown authored
      for consistency.
      
      cd7e1d71
    • unknown's avatar
      A fix for Bug#29431 killing an insert delayed thread causes crash · e3b3f4ee
      unknown authored
      No test case, since the bug requires a stress case with 30 INSERT DELAYED
      threads and 1 killer thread to repeat. The patch is verified
      manually.
      Review fixes.
      
      The server that is running DELAYED inserts would deadlock itself
      or crash under high load if some of the delayed threads were KILLed
      in the meanwhile.
      
      The fix is to change internal lock acquisition order of delayed inserts
      subsystem and to ensure that
      Delayed_insert::table_list::db does not point to volatile memory in some 
      cases.
      For details, please see a comment for sql_insert.cc.
      
      
      sql/sql_insert.cc:
        A fix for Bug#29431 killing an insert delayed thread causes crash
        
        1) The deadlock was caused by different lock acquisition order
        between delayed_get_table and handle_delayed_insert.
        
        delayed_get_table would:
        - acquire LOCK_delayed_create
        - create a new Delayed_insert instance
        - acquire instance mutex (di->mutex)
        - "lock the instance in memory" by 
        increasing di->locked_in_memory variable
        - start the delayed thread
        - release di->mutex
        - let the delayed thread open the delayed table
        - discover that the delayed thread was killed
        - try to unlock() the delayed insert instance in memory
        - in Delayed_insert::unlock() do
         * lock LOCK_delayed_insert
         * decrease locks_in_memory and discover it's 0
         * attempt to lock di->mutex to broadcast di->cond condition <-- deadlock
         here
        
        Meanwhile, the delayed thread would
         * lock di->mutex
         * open the table
         * get killed
         * not notice that and attempt to lock LOCK_delayed_insert
        to register itself in the delayed insert list <-- deadlock here.
        
        Simply put, delayed_get_table used to lock LOCK_delayed_insert and then 
        di->mutex, and handle_delayed_insert would lock di->mutex and then 
        LOCK_delayed_insert.
        
        Fixed by moving registration in the list of delayed insert threads from 
        handle_delayed_insert to delayed_get_table - so that now
        handle_delayed_insert doesn't need to acquire LOCK_delayed_insert mutex.
        
        
        2) di->table_list.db was copied by-pointer from table_list.db of the first
        producer -- the one who initiated creation of the delayed insert thread.
        This producer might be long gone when the member is needed
        (handle_delayed_insert:open_ltable),
        e.g. by having been killed with KILL CONNECTION statement.
        Fixed by using a pointer to the consumer's deep copy of THD::db.
        
        3) In find_handler, we shouldn't assume that Delayed_insert object
        already (or still) has a table opened all the time it is
        present in the delayed insert list. E.g. it's not the case
        when Delayed_insert decided to terminate, closed the table, but haven't
        yet unregistered from the list (see the end of handle_delayed_insert).
      e3b3f4ee
  3. 18 Jul, 2007 3 commits
    • unknown's avatar
      Add a test case for Bug#22427 create table if not exists + stored · 0a66baf2
      unknown authored
      function results in inconsistent behavior.
      
      The bug itself was fixed by the patch for bug 20662.
      
      
      mysql-test/r/sp-prelocking.result:
        Update results (Bug#22427)
      mysql-test/t/sp-prelocking.test:
        Add a test case for Bug#22427 create table if not exists + stored 
        function results in inconsistent behavior
      0a66baf2
    • unknown's avatar
      A fix and a test case for Bug#26104 Bug on foreign key class constructor. · 74c8a55f
      unknown authored
      Fix the typo in the constructor. Cover a semantic check that previously
      never worked with a test.
      
      
      mysql-test/r/create.result:
        Update results (Bug#26104)
      mysql-test/r/innodb.result:
        Update results.
      mysql-test/t/create.test:
        Add a test case for Bug#26104 Bug on foreign key class constructor
      mysql-test/t/innodb.test:
        Return a new error number (MySQL error instead of internal InnoDB error).
      sql/sql_class.h:
        A fix for Bug#26104 Bug on foreign key class constructor -- fix
        the typo in the constructor
      74c8a55f
    • unknown's avatar
      Add a test case for Bug#27248 Triggers: error if insert affects temporary · 6ce19257
      unknown authored
      table.
      The bug itself is yet another manifestation of Bug 26141.
      
      
      mysql-test/r/trigger.result:
        Update results.
      mysql-test/t/trigger.test:
        Add a test case for Bug#27248 Triggers: error if insert affects temporary
        table
      6ce19257
  4. 17 Jul, 2007 7 commits
  5. 16 Jul, 2007 17 commits
    • unknown's avatar
    • unknown's avatar
      Merge chilla.local:/home/mydev/mysql-5.0-axmrg · c50339b5
      unknown authored
      into  chilla.local:/home/mydev/mysql-5.1-axmrg
      
      c50339b5
    • unknown's avatar
      Merge chilla.local:/home/mydev/mysql-5.1-amain · 3da3a169
      unknown authored
      into  chilla.local:/home/mydev/mysql-5.1-axmrg
      
      3da3a169
    • unknown's avatar
      Merge bodhi.(none):/opt/local/work/mysql-5.0-runtime · 56e714b5
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
      
      
      mysql-test/t/sp.test:
        Auto merged
      sql/item.h:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_show.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      mysql-test/include/mix1.inc:
        Manual merge.
      mysql-test/r/innodb_mysql.result:
        Manual merge.
      56e714b5
    • unknown's avatar
      Post-merge fixes (merge from the main). · ff0c64f7
      unknown authored
      
      mysql-test/r/innodb_mysql.result:
        Update test results (merge from the main tree).
      mysql-test/r/query_cache.result:
        Update test results (merge from the main tree).
      mysql-test/r/sp.result:
        Update test results (merge from the main tree).
      mysql-test/t/query_cache.test:
        Use --echo End of to simplify future merges.
      sql/handler.h:
        st_table_list -> TABLE_LIST
      sql/item_create.cc:
        A post-merge fix (this code is in sql_yacc.yy in 5.0)
      sql/rpl_utility.h:
        st_table_list -> TABLE_LIST
      sql/sp.cc:
        A post-merge fix.
      sql/sp_head.cc:
        In 5.1 memdup_root returns void*.
      sql/sql_show.cc:
        st_table_list -> TABLE_LIST
      sql/sql_show.h:
        st_table_list -> TABLE_LIST
      sql/sql_yacc.yy:
        A post-merge fix.
      sql/table.cc:
        st_table_list -> TABLE_LIST
      sql/table.h:
        st_table_list -> TABLE_LIST
      ff0c64f7
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.0 · 2ee38d43
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.0-runtime
      
      
      mysql-test/t/sp.test:
        Auto merged
      sql/item.h:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_show.cc:
        Auto merged
      sql/sql_yacc.yy:
        Auto merged
      mysql-test/r/innodb_mysql.result:
        Manual merge.
      mysql-test/t/innodb_mysql.test:
        Manual merge.
      2ee38d43
    • unknown's avatar
      Merge bodhi.(none):/opt/local/work/mysql-5.0-runtime · 120b9935
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
      
      
      sql/sql_parse.cc:
        Manual merge.
      120b9935
    • unknown's avatar
      Bug#29050 Creation of a legal stored procedure fails if a database is not · ea1c949c
      unknown authored
      selected prior: ensure the fix also works for information_schema
      tables.
      
      
      sql/sql_parse.cc:
        Ensure the fix for Bug#29050 works for information_schema tables.
      ea1c949c
    • unknown's avatar
      Merge bodhi.(none):/opt/local/work/mysql-5.0-runtime · dab42d24
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
      
      
      mysql-test/r/trigger.result:
        Auto merged
      mysql-test/t/query_cache.test:
        Auto merged
      mysql-test/t/sp.test:
        Auto merged
      mysql-test/t/trigger.test:
        Auto merged
      sql/item.cc:
        Auto merged
      sql/item.h:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/sp_head.h:
        Auto merged
      sql/sql_base.cc:
        Auto merged
      sql/sql_db.cc:
        Auto merged
      sql/sql_lex.cc:
        Auto merged
      sql/sql_lex.h:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_select.cc:
        Auto merged
      sql/sql_show.cc:
        Auto merged
      sql/sql_trigger.h:
        Auto merged
      sql/sql_view.cc:
        Auto merged
      sql/table.cc:
        Auto merged
      storage/myisam/ha_myisam.h:
        Auto merged
      mysql-test/include/mix1.inc:
        Manual merge.
      mysql-test/r/information_schema.result:
        Manual merge.
      mysql-test/r/innodb_mysql.result:
        Manual merge.
      mysql-test/r/query_cache.result:
        Manual merge.
      mysql-test/r/sp.result:
        Manual merge.
      mysql-test/t/information_schema.test:
        Manual merge.
      sql/handler.h:
        Manual merge.
      sql/sp.cc:
        Manual merge.
      sql/sp_head.cc:
        Manual merge.
      sql/sql_prepare.cc:
        Manual merge.
      sql/sql_trigger.cc:
        Manual merge.
      sql/sql_yacc.yy:
        Manual merge.
      sql/table.h:
        Manual merge.
      storage/myisam/ha_myisam.cc:
        Manual merge.
      dab42d24
    • unknown's avatar
      Merge chilla.local:/home/mydev/mysql-5.0-amain · 6f325153
      unknown authored
      into  chilla.local:/home/mydev/mysql-5.0-axmrg
      
      6f325153
    • unknown's avatar
      Fix ndb_cache* test failures in the -runtime tree. · 0d0dcd5b
      unknown authored
      Do not try to acquire structure_guard_mutex for the second time
      when invalidating a table from send_result_to_client.
      
      
      sql/sql_cache.cc:
        Do not try to acquire mutex when invalidating a table
        from send_result_to_client().
        A follow up patch for the patch for Bug#21074.
        Reuse code by moving locking-independent invalidation functionality
        into invalidate_table_internal.
      sql/sql_cache.h:
        Add a new declaration.
      0d0dcd5b
    • unknown's avatar
      Post-merge fix · 05e923be
      unknown authored
      Disabled a test that reports Slave SQL error in warnings file.
      
      05e923be
    • unknown's avatar
      Merge bk-internal.mysql.com:/home/bk/mysql-5.1 · c8961a5f
      unknown authored
      into  bodhi.(none):/opt/local/work/mysql-5.1-runtime
      
      
      client/mysqldump.c:
        Auto merged
      mysql-test/r/show_check.result:
        Auto merged
      mysql-test/t/show_check.test:
        Auto merged
      sql/ha_ndbcluster.cc:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/sql_cache.cc:
        Auto merged
      sql/sql_class.h:
        Auto merged
      sql/share/errmsg.txt:
        Auto merged
      sql/sql_parse.cc:
        Auto merged
      sql/sql_show.cc:
        Auto merged
      mysql-test/r/events_bugs.result:
        Manual merge.
      c8961a5f
    • unknown's avatar
      A follow up after the fix for Bug#21074 - fix NDB tests breaking on · 3014d481
      unknown authored
      asserts.
      The patch for Bug#21074 replaces acquisition of the global LOCK_open lock
      with exclusive locks on table names in such operations ad DROP TABLE
      and RENAME TABLE.
      Unfortunately, NDB internally assumes that LOCK_open is acquired and
      tries to release it.
      This dependency should be fixed by a separate (and significant in size)
      patch. For now we just satisfy it - after all, the original
      goal of the patch for Bug#21074 was to move query_cache_invalidate
      outside of the scope of LOCK_open, and we still can do that.
      
      This fixes some failing NDB tests in the runtime tree.
      
      
      sql/sql_rename.cc:
        Move release of LOCK_open after ha_ndbcluster::rename_tables to
        satisfy an assert in ndb_log_schema_op.
      3014d481
    • unknown's avatar
      Merge pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.0 · d7dc7640
      unknown authored
      into  pippilotta.erinye.com:/shared/home/df/mysql/build/mysql-5.1
      
      d7dc7640
    • unknown's avatar
      Raise version number after cloning 5.0.46 · 127a1b49
      unknown authored
      127a1b49
    • unknown's avatar
      BUG#29807 - innodb_mysql.test: Cannot find table test/t2 from the · 706310c9
      unknown authored
                  internal data dictionary
      - re-enabled innodb_mysql test;
      - added a rule to through away expected warning to mtr_report.pl;
      - fixed a test case to produce unique warning.
      
      
      mysql-test/include/mix1.inc:
        Modified a test case to through away expected warning.
      mysql-test/lib/mtr_report.pl:
        Through away a warning produced by BUG#29807 test.
      mysql-test/r/innodb_mysql.result:
        Modified a test case to through away expected warning.
      mysql-test/t/disabled.def:
        Re-enabled innodb_mysql.test.
      706310c9
  6. 15 Jul, 2007 3 commits
    • unknown's avatar
      Post-merge fixes · 9e552023
      unknown authored
      Disabled tests which break automatic merging due to
      non-empty warnings file.
      
      9e552023
    • unknown's avatar
      Add a teste case for Bug#27296 "Assertion in ALTER TABLE SET DEFAULT in · 1ddd9c17
      unknown authored
      Linux Debug build (possible deadlock)"
      
      The bug is not repeatable any more.
      
      
      mysql-test/r/innodb_mysql.result:
        Update test results (Bug#27296)
      mysql-test/t/innodb_mysql.test:
        Add a teste case for Bug#27296 "Assertion in ALTER TABLE SET DEFAULT in 
        Linux Debug build (possible deadlock)"
      1ddd9c17
    • unknown's avatar
      A fix for Bug#27406 Events: failure only causes a warning. Update test · 4aadca45
      unknown authored
      results.
      When executing a CREATE EVENT statement with ON COMPLETION NOT PRESERVE 
      clause (explicit or implicit) and completion date in the past, we do not 
      create the event. Or, put it differently, we create it and then drop 
      immediately.
      A warning is issued in this case, not an error -- we want to load 
      successfully old database dumps, and such dumps may contain events
      that are no longer valid.
      
      Update the warning text to not imply an erroneous condition. 
      
      
      mysql-test/r/events_bugs.result:
        Update the test results (Bug#27406)
      sql/share/errmsg.txt:
        Fix Bug#27406 "Events: failure only causes a warning" -- update the error
        message to not imply that there was a failure.
      4aadca45
  7. 14 Jul, 2007 2 commits
    • unknown's avatar
      Merge chilla.local:/home/mydev/mysql-5.0-axmrg · 58be49dc
      unknown authored
      into  chilla.local:/home/mydev/mysql-5.1-axmrg
      
      58be49dc
    • unknown's avatar
      Merge chilla.local:/home/mydev/mysql-5.1-amain · 27e51d69
      unknown authored
      into  chilla.local:/home/mydev/mysql-5.1-axmrg
      
      
      mysql-test/lib/mtr_report.pl:
        Auto merged
      mysql-test/r/show_check.result:
        Auto merged
      mysql-test/suite/ndb/r/ndb_update.result:
        Auto merged
      mysql-test/suite/ndb/t/ndb_single_user.test:
        Auto merged
      mysql-test/suite/ndb/t/ndb_update.test:
        Auto merged
      mysql-test/suite/parts/r/rpl_partition.result:
        Auto merged
      mysql-test/suite/parts/t/rpl_partition.test:
        Auto merged
      mysql-test/t/disabled.def:
        Auto merged
      sql/mysql_priv.h:
        Auto merged
      sql/sql_class.cc:
        Auto merged
      mysql-test/suite/rpl/r/rpl_sp.result:
        Auto merged
      27e51d69