An error occurred fetching the project authors.
  1. 06 Jun, 2008 1 commit
    • Guilhem Bichot's avatar
      Verify that if Maria table is absent or initially empty, CREATE SELECT and... · ece42abb
      Guilhem Bichot authored
      Verify that if Maria table is absent or initially empty, CREATE SELECT and INSERT SELECT with enough
      rows cause no logging
      
      mysql-test/include/maria_empty_logs.inc:
        don't assume that mysqltest is the default db
      mysql-test/r/maria-no-logging.result:
        result. Without the optimization of disabling logging in ha_maria::start_bulk_insert(),
        we see 24k instead of 16k, in the cases where the table is empty.
      mysql-test/r/maria-purge.result:
        side effect of change to maria_empty_logs.inc
      mysql-test/t/maria-purge.test:
        maria-purge.test used to fail when run in a group like this "--big t/*maria*.test" because
        SHOW ENGINE MARIA LOGS was influenced by previous tests; deleting logs to fix that.
      ece42abb
  2. 02 Jun, 2008 1 commit
    • Guilhem Bichot's avatar
      WL#4374 "Maria - force start if Recovery fails multiple times" · dc9d69c2
      Guilhem Bichot authored
      http://forge.mysql.com/worklog/task.php?id=4374
      new option --maria-force-start-after-recovery-failures=N; number of consecutive recovery failures (failures
      of log reading or recovery processing, anything in [translog_init(),maria_recovery_from_log()])
      is stored in the control file; if at a Maria start they are more than N, logs are removed. This is for automated
      systems which have to run whatever happens. As tables risk staying corrupted, --maria-recover should also
      be used on them: this revision makes maria-recover work (it was disabled).
      Fixed bug in translog_is_log_files(). translog_init() now prints message to error log if failed.
      Removed \0 in the output of SHOW ENGINE MARIA LOGS; removed hard-coded engine name there.
      
      KNOWN_BUGS.txt:
        As option --maria-force-start-after-recovery-failures is added, it corresponds to the wish "we should fix that if this happens etc".
        LOAD INDEX is not ignored since a few weeks. Listed concurrency bugs have been fixed some time ago.
        Recovery of fulltext and GIS indexes works since a few weeks.
      mysql-test/include/maria_make_snapshot.inc:
        configurable prefix in table's name (so far 't' or 't_corrupted')
      mysql-test/include/maria_make_snapshot_for_comparison.inc:
        configurable prefix in table's name (so far 't' or 't_corrupted')
      mysql-test/include/maria_make_snapshot_for_feeding_recovery.inc:
        configurable prefix in table's name (so far 't' or 't_corrupted')
      mysql-test/include/maria_verify_recovery.inc:
        configurable prefix in table's name (so far 't' or 't_corrupted')
      mysql-test/lib/mtr_report.pl:
        new test maria-recover.test generates expected corruption warnings in the error log. maria-recovery.test's corrupted table is renamed to t_corrupted1 instead of t1.
      mysql-test/r/maria-preload.result:
        result update. maria_pagecache_read* values are similar to the previous version of this file, though a bit bigger
        because using the information_schema and the join leads to some internal maria temp table being used, and thus some
        blocks of it being read.
      mysql-test/r/maria-purge.result:
        engine's name in SHOW ENGINE MARIA LOGS changed.
      mysql-test/r/maria-recover.result:
        result for new test. We see corruption messages at first SELECT and then none at second SELECT, expected.
      mysql-test/r/maria-recovery.result:
        result update
      mysql-test/r/maria.result:
        new variables show up
      mysql-test/t/disabled.def:
        BUG#34911 is not fixed but the test had been made independent of the bug (workaround). A new bug (crash) has popped recently, so it has to stay
        disabled (BUG#35107).
      mysql-test/t/maria-preload.test:
        Work around BUG#34911 "FLUSH STATUS doesn't flush what it should":
        compute differences in status variables before and after relevant queries
      mysql-test/t/maria-recover-master.opt:
        test --maria-recover
      mysql-test/t/maria-recover.test:
        Test of the --maria-recover option (build a corrupted table and see if it is auto-repaired)
      mysql-test/t/maria-recovery-big.test:
        update for new API of include/maria*.inc
      mysql-test/t/maria-recovery-bitmap.test:
        update for new API of include/maria*.inc
      mysql-test/t/maria-recovery.test:
        update for new API of include/maria*.inc. Corrupted table t1 renamed to t_corrupted1, so that mtr_report.pl
        does not blindly remove all corruption messages for t1 which is
        a common name.
      storage/maria/ha_maria.cc:
        Enabling maria-recover.
        Adding option and global variable --maria_force_start_after_recovery_failures: ha_maria_init()
        calls mark_recovery_start() and mark_recovery_success() to keep track of failed consecutive recoveries
        and remove logs if needed.
        Removed \0 in the output of SHOW ENGINE MARIA LOGS; removed hard-coded engine name there.
      storage/maria/ma_checkpoint.c:
        new prototype
      storage/maria/ma_control_file.c:
        Storing in one byte in the control file, the number of consecutive recovery failures.
      storage/maria/ma_control_file.h:
        new prototype
      storage/maria/ma_init.c:
        new prototype
      storage/maria/ma_locking.c:
        Need to update open_count on disk at first write and close for transactional tables, like we already did for
        non-transactional tables, otherwise we cannot notice that the table is dubious.
      storage/maria/ma_loghandler.c:
        translog_is_log_files() is made more generic to serve either to search or to delete logs (the latter is
        for --maria-force-start-after-recovery-failures). It also had a bug (always returned FALSE).
      storage/maria/ma_loghandler.h:
        export function because ha_maria::mark_recovery_start() needs it
      storage/maria/ma_recovery.c:
        changing name of maria_recover() to distinguish from the maria-recover option.
      storage/maria/ma_recovery.h:
        changing name of maria_recover() to distinguish from the maria-recover option.
      storage/maria/ma_test_force_start.pl:
        Test of --maria-force-start-after-recovery-failures (and also, to be realistic, of --maria-recover).
        This is standalone because mysql-test-run does not support testing that multiple mysqld restarts expectedly failed.
        I'll have to run it on my machine and also on a Windows machine.
      storage/maria/unittest/ma_control_file-t.c:
        adding recovery_failures to the test
      storage/maria/unittest/ma_test_loghandler_multigroup-t.c:
        fix for compiler warning (unused variable in non-debug build)
      dc9d69c2
  3. 30 Dec, 2007 1 commit
    • unknown's avatar
      Maria: when logs have been manually deleted, last_logno and last_checkpoint_lsn · 1bba97d5
      unknown authored
      must be updated correctly. And Recovery should not assume that
      log 1 is available but just use first available log.
      
      
      mysql-test/r/maria-purge.result:
        result update
      mysql-test/t/maria-purge.test:
        like in other Maria tests (4294967296 is too big, causes warning)
      storage/maria/ma_loghandler.c:
        When log handler starts and discovers that logs are missing though
        control file says they should be there (they have been manually
        deleted), it decides to create a log
        with number last_logno+1. It needs to update control file with
        this new number, and also reset last_checkpoint_lsn to LSN_IMPOSSIBLE
        (last checkpoint went away when log was deleted).
        Fix for when translog_init() fails before allocating id_to_share
        (translog_destroy() tried to free NULL).
      storage/maria/ma_recovery.c:
        When logs have been manually deleted, translog_first_theoretical_lsn()
        always fails (it looks for log number 1). Recovery now uses
        translog_first_lsn_in_log() which just picks the first available log.
      1bba97d5
  4. 13 Dec, 2007 2 commits
    • unknown's avatar
      Fixed maximum file size change. Now it flush buffer after · 4bc16ac8
      unknown authored
        switching to new one which prevent deadlock.
      
      
      mysql-test/r/maria-purge.result:
        Fixed test which use setting maria_checkpoint_interval to force
          checkpoint now.
      mysql-test/t/maria-purge.test:
        Fixed test which use setting maria_checkpoint_interval to force
          checkpoint now.
      4bc16ac8
    • unknown's avatar
      Postreview changes. · ae618cf1
      unknown authored
      mysql-test/r/maria-big.result:
        Change to make maria-purge more stable: increasing file size
          to let all records fit in one log.
      mysql-test/r/maria-connect.result:
        Change to make maria-purge more stable: increasing file size
          to let all records fit in one log.
      mysql-test/r/maria-purge.result:
        Change to make maria-purge more stable.
      mysql-test/r/maria.result:
        Change to make maria-purge more stable: increasing file size
          to let all records fit in one log.
      mysql-test/r/ps_maria.result:
        Change to make maria-purge more stable: increasing file size
          to let all records fit in one log.
      mysql-test/t/maria-big.test:
        Change to make maria-purge more stable: increasing file size
          to let all records fit in one log.
      mysql-test/t/maria-connect.test:
        Change to make maria-purge more stable: increasing file size
          to let all records fit in one log.
      mysql-test/t/maria-purge.test:
        Change to make maria-purge more stable.
      mysql-test/t/maria-recovery.test:
        Change to make maria-purge more stable: increasing file size
          to let all records fit in one log.
      mysql-test/t/maria.test:
        Change to make maria-purge more stable: increasing file size
          to let all records fit in one log.
      mysql-test/t/ps_maria.test:
        Change to make maria-purge more stable: increasing file size
          to let all records fit in one log.
      ae618cf1
  5. 09 Dec, 2007 1 commit
    • unknown's avatar
      Manageable transactional log purge and file size · f621c59d
      unknown authored
      support added to maria.
      
      
      mysql-test/r/maria.result:
        New variables added.
      storage/maria/ha_maria.cc:
        Variable for transactional log purge method added.
        Variable for transactional log size added.
        SHOW for engine logs added.
        Log flush purge logs in case of "ondemand" type of
          log processing.
      storage/maria/ma_checkpoint.c:
        log purge call enabled.
      storage/maria/ma_loghandler.c:
        Support for different methods of log purge added.
        Functions for getting information about logs state added.
        Functions for getting/setting log size.
      storage/maria/ma_loghandler.h:
        Fixed defines.
        Functions for for transactional log mannegment added.
      storage/maria/ma_recovery.c:
        Dependence on TRANSLOG_FILE_SIZE removed.
      mysql-test/r/maria-purge.result:
        New BitKeeper file ``mysql-test/r/maria-purge.result''
      mysql-test/t/maria-purge.test:
        New BitKeeper file ``mysql-test/t/maria-purge.test''
      f621c59d