1. 16 Jan, 2012 3 commits
    • Nuno Carvalho's avatar
      BUG#11893288 60542: RPL.RPL_EXTRA_COL_MASTER_* DOESN'T TEST WHAT WAS INTENDED · 2abdbe3a
      Nuno Carvalho authored
      Test extra/rpl_tests/rpl_extra_col_master.test (used by
      rpl_extra_col_master_*) ends with the active connection pointing to the
      slave. Thus, the two last tests never succeed in changing the binlog
      format of the master away from 'row'. With correct active connection
      (master) tests fail for binlog 'statement' and 'mixed' formats.
      
      Tests rpl_extra_col_master_* only run when binary log format is
      row.  Statement and mix replication do not make sense in this
      tests since it will try to execute statements on columns that do
      not exist.  This fix is basically a backport from mysql-5.5, see
      changes done as part of BUG 39934.
      2abdbe3a
    • Marko Mäkelä's avatar
      buf_page_get_known_nowait(): Relax a bogus debug assertion. · 105c2209
      Marko Mäkelä authored
      When mode==BUF_KEEP_OLD, buffered inserts are being merged to the page.
      It is possible that a read request for a page was pending while the page
      was freed in DROP INDEX or DROP TABLE. In these cases, it is OK (although
      useless) to merge the buffered changes to the freed page.
      105c2209
    • Annamalai Gurusami's avatar
      Bug #11765438 58406: · a422340f
      Annamalai Gurusami authored
      ISSUES WITH COPYING PARTITIONED INNODB TABLES FROM LINUX TO WINDOWS
      
      This problem was already fixed in mysql-trunk as part of bug #11755924.  I am 
      backporting the fix to mysql-5.1.  
      a422340f
  2. 12 Jan, 2012 1 commit
  3. 11 Jan, 2012 3 commits
  4. 10 Jan, 2012 2 commits
    • Nirbhay Choubey's avatar
      BUG#11760384 - 52792: mysqldump in XML mode does not dump · 63f8c1e1
      Nirbhay Choubey authored
                           routines.
      
      mysqldump in xml mode did not dump routines, events or
      triggers.
      
      This patch fixes this issue by fixing the if conditions
      that disallowed the dump of above mentioned objects in
      xml mode, and added the required code to enable dump
      in xml format.
      
      
      client/mysqldump.c:
        BUG#11760384 - 52792: mysqldump in XML mode does not dump
                              routines.
        
        Fixed some if conditions to allow execution of dump methods
        for xml and further added the relevant code at places to produce
        the dump in xml format.
      mysql-test/r/mysqldump.result:
        Added a test case for Bug#11760384.
      mysql-test/t/mysqldump.test:
        Added a test case for Bug#11760384.
      63f8c1e1
    • Yasufumi Kinoshita's avatar
      Bug#12400341 INNODB CAN LEAVE ORPHAN IBD FILES AROUND · 36386696
      Yasufumi Kinoshita authored
      If we meet DB_TOO_MANY_CONCURRENT_TRXS during the execution tab_create_graph from row_create_table_for_mysql(), .ibd file for the table should be created already but was not deleted for the error handling.
      
      rb:875 approved by Jimmy Yang
      36386696
  5. 06 Jan, 2012 2 commits
  6. 02 Jan, 2012 1 commit
    • Tatjana Azundris Nuernberg's avatar
      BUG#11755281/47032: ERROR 2006 / ERROR 2013 INSTEAD OF PROPER ERROR MESSAGE · aae0f547
      Tatjana Azundris Nuernberg authored
      If init_command was incorrect, we couldn't let users execute
      queries, but we couldn't report the issue to the client either
      as it does not expect error messages before even sending a
      command. Thus, we simply disconnected them without throwing
      a clear error.
      
      We now go through the proper sequence once (without executing
      any user statements) so we can report back what the problem
      is. Only then do we disconnect the user.
      
      As always, root remains unaffected by this as init_command is
      (still) not executed for them.
      
      mysql-test/r/init_connect.result:
        We now report a proper error if init_command fails.
        Expect as much.
      mysql-test/t/init_connect.test:
        We now report a proper error if init_command fails.
        Expect as much.
      sql/sql_connect.cc:
        If init_command fails, throw an error explaining this to
        the user.
      aae0f547
  7. 28 Dec, 2011 1 commit
    • Marko Mäkelä's avatar
      Bug#13418934 REMOVE HAVE_PURIFY DEPENDENCES FROM INNODB · 05e267a8
      Marko Mäkelä authored
      InnoDB: Remove HAVE_purify, UNIV_INIT_MEM_TO_ZERO, UNIV_SET_MEM_TO_ZERO.
      
      The compile-time setting HAVE_purify can mask potential bugs.
      It is being set in PB2 Valgrind runs. We should simply get rid of it,
      and replace it with UNIV_MEM_INVALID() to declare uninitialized memory
      as such in Valgrind-instrumented binaries.
      
      os_mem_alloc_large(), ut_malloc_low(): Remove the parameter set_to_zero.
      
      ut_malloc(): Define as a macro that invokes ut_malloc_low().
      
      buf_pool_init(): Never initialize the buffer pool frames. All pages
      must be initialized before flushing them to disk.
      
      mem_heap_alloc(): Never initialize the allocated memory block.
      
      os_mem_alloc_nocache(), ut_test_malloc(): Unused function, remove.
      
      rb:813 approved by Jimmy Yang
      05e267a8
  8. 23 Dec, 2011 2 commits
  9. 22 Dec, 2011 2 commits
  10. 16 Dec, 2011 3 commits
  11. 15 Dec, 2011 2 commits
  12. 14 Dec, 2011 2 commits
  13. 13 Dec, 2011 1 commit
    • Annamalai Gurusami's avatar
      Bug #13117023: Innodb increments handler_read_key when it should not · f080e98e
      Annamalai Gurusami authored
      The counter handler_read_key (SSV::ha_read_key_count) is incremented 
      incorrectly.
      
      The mysql server maintains a per thread system_status_var (SSV)
      object.  This object contains among other things the counter
      SSV::ha_read_key_count. The purpose of this counter is to measure the
      number of requests to read a row based on a key (or the number of
      index lookups).
      
      This counter was wrongly incremented in the
      ha_innobase::innobase_get_index(). The fix removes
      this increment statement (for both innodb and innodb_plugin).
      
      The various callers of the innobase_get_index() was checked to
      determine if anybody must increment this counter (if they first call
      innobase_get_index() and then perform an index lookup).  It was found
      that no caller of innobase_get_index() needs to worry about the
      SSV::ha_read_key_count counter.
      f080e98e
  14. 12 Dec, 2011 3 commits
  15. 30 Nov, 2011 2 commits
    • Tor Didriksen's avatar
      Bug#11761576 54082: HANDLE_SEGFAULT MAKES USE OF UNSAFE FUNCTIONS · 2a87c579
      Tor Didriksen authored
      Post-push fix: build break on windows/optimized
      2a87c579
    • Tor Didriksen's avatar
      Bug#11761576 54082: HANDLE_SEGFAULT MAKES USE OF UNSAFE FUNCTIONS · 8c3181b6
      Tor Didriksen authored
      handle_segfault is the signal handler code of mysqld.  however, it makes
      calls to potentially unsafe functions localtime_r, fprintf, fflush.
      
      
      
      include/my_stacktrace.h:
        Add safe versions of itoa() write() and snprintf().
      libmysqld/CMakeLists.txt:
        Move signal handler to separate file.
      mysys/stacktrace.c:
        Remove unsafe function calls.
      sql/CMakeLists.txt:
        Move signal handler to separate file.
      sql/Makefile.am:
        Move signal handler to separate file.
      sql/mysqld.cc:
        Move signal handler to separate file.
      sql/signal_handler.cc:
        Remove unsafe function calls.
      8c3181b6
  16. 29 Nov, 2011 2 commits
    • Tor Didriksen's avatar
      Build broken for gcc 4.5.1 in optimized mode. · 4775084b
      Tor Didriksen authored
      readline.cc: In function char* batch_readline(LINE_BUFFER*):
      readline.cc:60:9: error: out_length may be used uninitialized in this function
      log.cc: In function int find_uniq_filename(char*):
      log.cc:1857:8: error: number may be used uninitialized in this function
      4775084b
    • Nirbhay Choubey's avatar
      Bug#11756764 48726: MYSQLD KEEPS CRASHING WITH SIGSEGV · 11b2a2fe
      Nirbhay Choubey authored
                          WITH MYISAM_USE_MMAP ENABLED
      
      MySQL server can crash due to segmentation fault when
      started with myisam_use_mmap.
      
      The reason behind this being, while making a request to
      unmap (munmap) the previously mapped memory (mmap), the
      size passed was 7 bytes larger than the size requested at
      the time of mapping. This can eventually unmap the adjacent
      memory mapped block, belonging to some other memory-map pool.
      Hence the subsequent call to mmap can map a region which was
      still a valid memory mapped area.
      
      Fixed by removing the extra 7-byte margin which was erroneously
      added to the size, used for unmappping.
      
      
      storage/myisam/mi_close.c:
        Bug#11756764 48726: MYSQLD KEEPS CRASHING WITH SIGSEGV
                            WITH MYISAM_USE_MMAP ENABLED
        
        Added a condition to call _mi_unmap_file() in case
        of compressed records. mi_munmap_file() is called
        otherwise.
      storage/myisam/mi_packrec.c:
        Bug#11756764 48726: MYSQLD KEEPS CRASHING WITH SIGSEGV
                            WITH MYISAM_USE_MMAP ENABLED
        
        mi_dynmap_file() function, after successfully executing
        mmap, stores the total size in info->s->mapped_length
        variable. Now, if mi_dynmap_file() is invoked with a size
        with an extra 7-byte margin (MEMMAP_EXTRA_MARGIN),
        the margin will eventually also get stored in mapped_length.
        So, un-mapping function can simply use the value stored in
        mapped_length in order to unmap the previously mapped
        region.
      11b2a2fe
  17. 23 Nov, 2011 1 commit
    • Ashish Agarwal's avatar
      BUG#11751793 - 42784: ARCHIVE TABLES CAUSE 100% CPU USAGE · cb660cc3
      Ashish Agarwal authored
                            AND HANG IN SHOW TABLE STATUS.
      
      ISSUE: Table corruption due to concurrent queries.
             Different threads running insert and check
             query leads to table corruption. Not properly locked,
             rows are inserted in between check query.
      
      SOLUTION: In check query mutex lock is acquired
                for a longer time to handle concurrent
                insert and check query.
      
      NOTE: Additionally we backported the fix for CHECKSUM
            issue(bug#11758979).
      cb660cc3
  18. 22 Nov, 2011 1 commit
  19. 18 Nov, 2011 2 commits
  20. 16 Nov, 2011 1 commit
  21. 10 Nov, 2011 2 commits
    • Marko Mäkelä's avatar
      Bug #12842206 INNODB LOCKING REGRESSION FOR INSERT IGNORE: Add a test case. · 0d0924e3
      Marko Mäkelä authored
      The bug was accidentally fixed by fixing
      Bug#11759688 52020: InnoDB can still deadlock on just INSERT...ON DUPLICATE KEY
      a.k.a. the reintroduction of
      Bug#7975 deadlock without any locking, simple select and update
      0d0924e3
    • Marko Mäkelä's avatar
      Bug#11759688 52020: InnoDB can still deadlock on just INSERT...ON DUPLICATE KEY · 87593f55
      Marko Mäkelä authored
      a.k.a. Bug#7975 deadlock without any locking, simple select and update
      
      Bug#7975 was reintroduced when the storage engine API was made
      pluggable in MySQL 5.1. Instead of looking at thd->lex directly, we
      rely on handler::extra(). But, we were looking at the wrong extra()
      flag, and we were ignoring the TRX_DUP_REPLACE flag in places where we
      should obey it.
      
      innodb_replace.test: Add tests for hopefully all affected statement
      types, so that bug should never ever resurface. This kind of tests
      should have been added when fixing Bug#7975 in MySQL 5.0.3 in the
      first place.
      
      rb:806 approved by Sunny Bains
      87593f55
  22. 08 Nov, 2011 1 commit
    • Marko Mäkelä's avatar
      Bug#13358468 ASSERTION FAILURE IN BTR_PCUR_GET_BLOCK · c75c8ce8
      Marko Mäkelä authored
      btr_pcur_restore_position_func(): When the cursor was positioned at
      the tree infimum or supremum, initialize pos_state and latch_mode. The
      assertion failed, because pos_state was BTR_PCUR_WAS_POSITIONED.  In
      the test failure of WL#5874, the purge thread attempted to restore the
      cursor position on the infimum record (the clustered index was empty).
      
      btr_pcur_detach(), btr_pcur_is_detached(): Unused functions, remove.
      
      rb:804 approved by Inaam Rana
      c75c8ce8