1. 07 Jan, 2011 2 commits
    • Michael Widenius's avatar
      Aria fixes: · 26f98859
      Michael Widenius authored
      - Don't delete pages without flushing that has had a tail or head information in pagecache_delete()
        This fixes a case where REPAIR could find old deleted rows.
      
      
      storage/maria/ha_maria.cc:
        Remove calls to depricated function ha_statistic_increment
      storage/maria/ma_blockrec.c:
        Don't delete pages without flushing that has had a tail or head information in pagecache_delete()
      storage/maria/ma_pagecache.c:
        Added possibility to mark pages to not be deleted by pagecache_delete() without beeing flushed.
      storage/maria/ma_pagecache.h:
        Added new prototype
      26f98859
    • Michael Widenius's avatar
      Merge with 5.1 · fdaaf48c
      Michael Widenius authored
      fdaaf48c
  2. 06 Jan, 2011 1 commit
    • Michael Widenius's avatar
      Bug fixing in Aria: · 5b0afd8a
      Michael Widenius authored
      - Fixed some bugs in recovery of blobs
      - Don't ASSERT() on checksum errors when running check table
      - Added to maria_read_log option --tables-to-redo=list-of-tables to only recover some tables (good for debugging)
      
      
      storage/maria/ma_blockrec.c:
        Don't ASSERT() on checksum errors when running check table
        Fixed bug in recovery of blog page that was not in dirty pages list
      storage/maria/ma_check.c:
        Don't ASSERT() on checksum errors when running check table
      storage/maria/ma_recovery.c:
        Handling of --tables-to-redo
      storage/maria/ma_recovery.h:
        Handling of --tables-to-redo
      storage/maria/ma_recovery_util.c:
        Give better warning if table was not in dirty pages list
      storage/maria/maria_def.h:
        Added in_check_table
      storage/maria/maria_read_log.c:
        Added --tables-to-redo=list-of-tables to only recover some tables (good for debugging)
        Cleaned up message when wrong arguments
      5b0afd8a
  3. 05 Jan, 2011 4 commits
  4. 04 Jan, 2011 2 commits
    • Michael Widenius's avatar
      Fixed recovery problem in Aria where bitmap had wrong information after recovery. · 1e0b42d9
      Michael Widenius authored
      LP#619731: Aria recovery corruption "Page 1: Row: 1 has an extent with wrong information in bitmap
      
      storage/maria/ma_bitmap.c:
        Don't send broadcast if no one is waiting for it
      storage/maria/ma_blockrec.c:
        Don't update bitmap if the page is not in the dirty_page list (or LSN is after checkpoint start)
        Fixes the case where we have in the log redo_free_block followed by another redo entry for the same page which is ignored.
        Also fixed that _ma_apply_redo_insert_row_blobs() doesn't update the bitmap in similar circumstances.
      storage/maria/ma_blockrec.h:
        Updated prototype
      storage/maria/ma_check.c:
        Added printing of bitmap information if used with maria_chk -vvv (for debugging)
      storage/maria/ma_recovery.c:
        Updated call parameters to _ma_apply_redo_free_blocks().
      1e0b42d9
    • Michael Widenius's avatar
      Updated README for MTR test suite · 427c6c78
      Michael Widenius authored
      427c6c78
  5. 03 Jan, 2011 1 commit
    • unknown's avatar
      Speed up `mtr --parallel=<lots>` by scheduling some slow tests earlier. · 92fc4263
      unknown authored
      The patch also fixes a race in rpl_stop_slave.test.
      
      On machines with lots of CPU and memory, something like `mtr --parallel=10`
      can speed up the test suite enormously. However, we have a few test cases
      that run for long (several minutes), and if we are unlucky and happen to
      schedule those towards the end of the test suite, we end up with most
      workers idle while waiting for the last slow test to end, significantly
      delaying the finish of the entire suite.
      
      Improve this by marking the offending tests as taking "long", and trying
      to schedule those tests early. This reduces the time towards the end of
      the test suite run where some workers are waiting with nothing to do for
      the remaining workers each to finish their last test.
      
      Also, the rpl_stop_slave test had a race which could cause it to take
      a 300 seconds debug_sync timeout; this is fixed.
      
      Testing on a 4-core 8GB machine, this patch speeds up the test suite with
      around 30% for --parallel=10 (debug build), allowing to run the entire
      suite in 5 minutes.
      92fc4263
  6. 31 Dec, 2010 1 commit
    • Sergei Golubchik's avatar
      virtual columns: · 31a78529
      Sergei Golubchik authored
       * move a capability from a virtual handler method to table_flags()
       * rephrase error messages to avoid hard-coded English parts
       * admit in test cases that they need xtradb, not innodb
      
      mysql-test/suite/vcol/t/rpl_vcol.test:
        this test needs xtradb, it will fail with innodb
      mysql-test/suite/vcol/t/vcol_blocked_sql_funcs_innodb.test:
        this test needs xtradb, it will fail with innodb
      mysql-test/suite/vcol/t/vcol_column_def_options_innodb.test:
        this test needs xtradb, it will fail with innodb
      mysql-test/suite/vcol/t/vcol_handler_innodb.test:
        this test needs xtradb, it will fail with innodb
      mysql-test/suite/vcol/t/vcol_ins_upd_innodb.test:
        this test needs xtradb, it will fail with innodb
      mysql-test/suite/vcol/t/vcol_keys_innodb.test:
        this test needs xtradb, it will fail with innodb
      mysql-test/suite/vcol/t/vcol_non_stored_columns_innodb.test:
        this test needs xtradb, it will fail with innodb
      mysql-test/suite/vcol/t/vcol_partition_innodb.test:
        this test needs xtradb, it will fail with innodb
      mysql-test/suite/vcol/t/vcol_select_innodb.test:
        this test needs xtradb, it will fail with innodb
      mysql-test/suite/vcol/t/vcol_supported_sql_funcs_innodb.test:
        this test needs xtradb, it will fail with innodb
      mysql-test/suite/vcol/t/vcol_trigger_sp_innodb.test:
        this test needs xtradb, it will fail with innodb
      mysql-test/suite/vcol/t/vcol_view_innodb.test:
        this test needs xtradb, it will fail with innodb
      sql/ha_partition.h:
        check_if_supported_virtual_columns() -> HA_CAN_VIRTUAL_COLUMNS
      sql/handler.h:
        check_if_supported_virtual_columns() -> HA_CAN_VIRTUAL_COLUMNS
      sql/share/errmsg.txt:
        no hard-coded english parts in the error messages (ER_UNSUPPORTED_ACTION_ON_VIRTUAL_COLUMN)
      sql/sql_table.cc:
        no hard-coded english parts in the error messages
      sql/table.cc:
        * check_if_supported_virtual_columns() -> HA_CAN_VIRTUAL_COLUMNS
        * no "csv workaround" is needed
        * no hard-coded english parts in the error messages
      storage/maria/ha_maria.cc:
        check_if_supported_virtual_columns() -> HA_CAN_VIRTUAL_COLUMNS
      storage/maria/ha_maria.h:
        check_if_supported_virtual_columns() -> HA_CAN_VIRTUAL_COLUMNS
      storage/myisam/ha_myisam.cc:
        check_if_supported_virtual_columns() -> HA_CAN_VIRTUAL_COLUMNS
      storage/myisam/ha_myisam.h:
        check_if_supported_virtual_columns() -> HA_CAN_VIRTUAL_COLUMNS
      storage/xtradb/handler/ha_innodb.cc:
        check_if_supported_virtual_columns() -> HA_CAN_VIRTUAL_COLUMNS
      storage/xtradb/handler/ha_innodb.h:
        check_if_supported_virtual_columns() -> HA_CAN_VIRTUAL_COLUMNS
      31a78529
  7. 27 Dec, 2010 1 commit
  8. 24 Dec, 2010 1 commit
    • Igor Babaev's avatar
      Fixed LP bug #639935 (bug #58727). · efbb3c6c
      Igor Babaev authored
      When the optimizer creates items out of other items it does
      not have to call the fix_fields method. Usually in these
      cases it calls quick_fix_field() that just marks the 
      created item as fixed. If the created item is an Item_func
      object then calling quick_fix_field() works fine if the
      arguments of the created functional item are already fixed.
      Otherwise some unfixed nodes remain in the item tree and
      it triggers an assertion failure whenever the item is 
      evaluated.
      
      Fixed the problem by making the method quick_fix_field
      virtual and providing an implementation for the class
      Item_func objects that recursively calls the method
      for unfixed arguments of any functional item.
      efbb3c6c
  9. 21 Dec, 2010 2 commits
  10. 20 Dec, 2010 1 commit
  11. 17 Dec, 2010 1 commit
  12. 13 Dec, 2010 3 commits
    • Michael Widenius's avatar
      merge with 5.1 · 09d2e7f6
      Michael Widenius authored
      (Includes patch for overrun detected by valgrind thanks to previous my_alloca() -> my_malloc() patch)
      09d2e7f6
    • Michael Widenius's avatar
      Fixed typo that caused compile failure in thr_lock.c · 0b20943e
      Michael Widenius authored
      mysys/thr_lock.c:
        Fixed typo that caused compile failure
      0b20943e
    • Michael Widenius's avatar
      When compiling with valgrind, change my_alloca() to use my_malloc() · ffb0cd61
      Michael Widenius authored
      - This allows us to detect missing my_afree() calls and also find overruns (when running with valgrind) to alloca() areas.
      - Added missing my_afree() calls
      - Fixed wrong call to my_afree()
      
      
      include/my_sys.h:
        When compiling with valgrind, change my_alloca() to use my_malloc()
      mysql-test/suite/innodb/t/innodb_bug57255.test:
        Speed up taste case (patch from Stewart Smith)
      mysql-test/suite/innodb_plugin/t/innodb_bug57255.test:
        Speed up taste case (patch from Stewart Smith)
      sql/ha_partition.cc:
        Removed casts from my_afree()
      sql/opt_range.cc:
        Add missing my_afree() calls.
      storage/maria/ma_rt_split.c:
        Fixed wrong parameter to my_afree()
      ffb0cd61
  13. 10 Dec, 2010 3 commits
    • Michael Widenius's avatar
      Fix for Lbug:#686010 maria.optimize corrupts stack around alloca() call · bd2034db
      Michael Widenius authored
      
      storage/maria/ma_check.c:
        Allocate also memory for nodflag and transid's
      storage/maria/ma_write.c:
        Allow nodflag and transid as part of key.
        (This has nothing to do with the bug report, but it's a safer check).
      storage/maria/maria_def.h:
        Define MARIA_MAX_POINTER_LENGTH (length of pointer to node)
        Added node pointer length to MARIA_INDEX_OVERHEAD_SIZE, as this is part of the key.
        (Safety fix)
      bd2034db
    • Michael Widenius's avatar
      Better warning message if lock test fails · 84edaac4
      Michael Widenius authored
      Made archive.test a bit more safe
      
      
      
      mysql-test/r/archive.result:
        Added removal of files to make rerun of failed test work
      mysql-test/t/archive.test:
        Added removal of files to make rerun of failed test work
      mysys/thr_lock.c:
        Better warning message if lock test fails
      84edaac4
    • unknown's avatar
      Fix wrong merge of patch for Bug#46639. · b78f6240
      unknown authored
      b78f6240
  14. 08 Dec, 2010 1 commit
    • unknown's avatar
      MBug#687320: Fix sporadic test failures in innodb_mysql.test and... · 1bbb55a2
      unknown authored
      MBug#687320: Fix sporadic test failures in innodb_mysql.test and partition_innodb_semi_consistent.test
      
      Problem is that these tests run with --innodb-lock-wait-timeout=2 in .opt
      (and this is necessary as built-in innodb does not allow to change this
      dynamically). This cases another part of the test to occasionally time
      out an UPDATE, which subsequently caused the test case to timeout due to
      waiting for a condition (successful UPDATE) that never occurs.
      
      Fixed by re-trying the update in case of timeout.
      
      Tested by inserting a sleep() in the connection that the UPDATE is waiting
      for, and checking that the retry loops a couple of times until the other
      connection is done and COMMITs.
      1bbb55a2
  15. 07 Dec, 2010 1 commit
  16. 06 Dec, 2010 8 commits
    • Vladislav Vaintroub's avatar
      merge LP Bug#686184 · 077d96c2
      Vladislav Vaintroub authored
      077d96c2
    • Vladislav Vaintroub's avatar
      Fix myisam_crash_before_flush_keys on Windows · 3fb8bc16
      Vladislav Vaintroub authored
      Problem : mtr reports test failure because it sees
      [ERROR] mysqld got exception 0x80000003 ;
      in the .err file
      
      The exception comes from DBUG_EXECUTE_IF (.. abort())
      
      Fix:  use DBUG_ABORT instead of abort() - it does not throw 
      any exceptions.
      3fb8bc16
    • Vladislav Vaintroub's avatar
      Fix LP Bug#686184 - merge_debug test fails. · 60722bca
      Vladislav Vaintroub authored
      The reason for failure is that DBUG_EXECUTE_IF in mi_open()
      only worked for Unix-formatted file names, due to strstr(name, "/crashed")
      
      The fix change strstr() above to strstr(name, "crashed"), to it can work with 
      Windows file names as well.
      60722bca
    • Vladislav Vaintroub's avatar
      merge · bfcc62c7
      Vladislav Vaintroub authored
      bfcc62c7
    • Vladislav Vaintroub's avatar
      merge · 6ad44811
      Vladislav Vaintroub authored
      6ad44811
    • Vladislav Vaintroub's avatar
      Bug#473914: mysql_client_test fail with in debug compilaton on windows x64 · 0eae06c4
      Vladislav Vaintroub authored
       
      Reason: inconsistent compilation, federatedx is compiled without SAFEMALLOC
      flag, while anything else is compiled with SAFEMALLOC.
      
      As a consequence, my_hash_init used inside federatedx initialization does not
      provide correct caller info parameters (file, line) , so they are initialized with 
      whatever is on stack. When info about allocated memory is output in
      COM_DEBUG command, the server crashes trying to output string starting at
      0xcccccccccccccccc.
      
      The fix is to remove SAFEMALLOC  preprocessor flags 
      from every CMakeLists.txt, except the top-level one.
      
      Also, SAFEMALLOC is not defined by default now, instead
      there is WITH_DEBUG_FULL CMake option which adds 
      -DSAFEMALLOC to C and C++ flags in debug compilation. 
      This option is off by  default, because 
      1) Debug C runtime already has heap debugging builtin with 
       overwrite and leak detection
      2)safemalloc considerably slows down the tests.
      
      
      Note also  that 
      - SAFEMALLOC is gone  in MySQL5.5
      - On Windows, heap related overflows can also be found using free pageheap utility
      (that is also part of application verifier). This is even more efficient if there are no other layers 
      on top of Windows heap allocator, e.g  it is most efficient with release version.
      0eae06c4
    • Michael Widenius's avatar
    • Michael Widenius's avatar
      Merge with 5.1-release · 42746a44
      Michael Widenius authored
      42746a44
  17. 05 Dec, 2010 3 commits
    • Michael Widenius's avatar
      Removed compiler warning · b3c72b9a
      Michael Widenius authored
      b3c72b9a
    • Michael Widenius's avatar
      merge with 5.1-release · 6061a11d
      Michael Widenius authored
      6061a11d
    • Michael Widenius's avatar
      Fixes to not trigger end-consistency testing of pagecache. · a585745d
      Michael Widenius authored
      - Moved end_pagecache() to after maria_close()
      - Flush page cache before closing files (in maria_pack)
      Fixed test suite failure for PBXT
      
      mysql-test/suite/pbxt/r/select.result:
        We mask out the 'rows' column because it may differ from run to run
      mysql-test/suite/pbxt/t/select.test:
        We mask out the 'rows' column because it may differ from run to run
      storage/maria/maria_chk.c:
        Moved end_pagecache() to after maria_close() to not trigger end-consistency testing of pagecache.
      storage/maria/maria_pack.c:
        Moved end_pagecache() to after maria_close() to not trigger end-consistency testing of pagecache.
        flush page cache before closing files.
      a585745d
  18. 04 Dec, 2010 4 commits