An error occurred fetching the project authors.
  1. 01 Jul, 2008 1 commit
    • Guilhem Bichot's avatar
      Back-port of changes made to 6.0-maria (to remove compiler warnings or fix simple test failures) · c837db0d
      Guilhem Bichot authored
      in the last days: substitution in tests has to work for absolute datadir (/dev/shm/...);
      internal temp tables (like information_schema) can be Maria; Maria may not be compiled in; splitting
      too long maria.test in two; mtr --embedded runs in mysql-test not mysql-test/var/master-data
      so we need some absolute paths in tests; can't restart mysqld in --embedded; missing DBUG_VOID_RETURN in
      mysqltest.c (fix from Serg); is_collation_character_set_applicability.test was too long name
      which broke tar's 99-char limit.
      c837db0d
  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. 04 Feb, 2008 1 commit
    • unknown's avatar
      Minor test fixes · 438acd2d
      unknown authored
      mysql-test/include/wait_until_connected_again.inc:
        On Windows, mysqladmin does not wait on pid file when it has shut down
        mysqld. Thus, in maria_empty_logs.inc, wait_until_connected_again.inc
        can run while mysqld is shutting down (has not finished) and so
        get "shutdown in progress" instead of "can't connect".
      mysql-test/t/maria-recovery-big.test:
        it is a big test
      storage/maria/unittest/ma_test_recovery.pl:
        We want to see the result of 'cmp', like in the shell version
      438acd2d
  4. 29 Jan, 2008 1 commit
    • unknown's avatar
      Fix for BUG#34114 "maria_chk reports false error when several tables on · f5c820cd
      unknown authored
      command-line" and BUG#34062 "Maria table corruption on master".
      Use 5 bytes (instead of 4) to store page's number in the checkpoint
      record, to allow bigger table (1PB with maria-block-size=1kB).
      Help pushbuild not run out of memory by moving the portion of
      maria-recovery.test which generates lots of data into a -big.test.
      
      
      mysql-test/r/maria-recovery.result:
        result moved
      mysql-test/t/maria-recovery.test:
        piece which generates much data moved to maria-recovery-big.test
      mysys/my_pread.c:
        To fix BUG#34062, where a 1.1TB file was generated due to a wrong
        pwrite offset, it was useful to not lose precision on 'offset' in
        DBUG_PRINT, so that the crazy value is visible.
      mysys/my_read.c:
        To fix BUG#34062, where a 1.1TB file was generated due to a wrong
        pwrite offset, it was useful to not lose precision on 'offset' in
        DBUG_PRINT, so that the crazy value is visible.
      mysys/my_write.c:
        To fix BUG#34062, where a 1.1TB file was generated due to a wrong
        pwrite offset, it was useful to not lose precision on 'offset' in
        DBUG_PRINT, so that the crazy value is visible.
      storage/maria/ha_maria.cc:
        When starting a bulk insert, we throw away dirty index pages from the
        cache. Unique (non disabled) key insertions thus read out-of-date
        pages from the disk leading to BUG#34062 "Maria table corruption on
        master": a DELETE in procedure viewer_sp() had deleted all rows of
        viewer_tbl2 one by one, putting index page 1 into key_del; that page
        was thrown away at start of INSERT SELECT, then the INSERT SELECT
        needed a page to insert keys, looked at key_del, found 1, read page 1
        from disk, and its out-of-date content was used to set the new value of
        key_del (crazy value of 1TB), then a later insertion needed another
        index page, tried to read page at this crazy offset and failed, leading
        to corruption mark.
        The fix is to destroy out-of-date pages and make the state consistent
        with that, i.e. call maria_delete_all_rows().
      storage/maria/ma_blockrec.c:
        Special hook for UNDO_BULK_INSERT
      storage/maria/ma_blockrec.h:
        special hook for UNDO_BULK_INSERT
      storage/maria/ma_check.c:
        Fix for BUG#34114 "maria_chk reports false error when several tables on
        command-line": if the Nth (on the command line) table was BLOCK_RECORD
        it would start checks by using the param->record_checksum computed by
        checks of table N-1.
      storage/maria/ma_delete_all.c:
        comment
      storage/maria/ma_loghandler.c:
        special hook for UNDO_BULK_INSERT
      storage/maria/ma_page.c:
        comment
      storage/maria/ma_pagecache.c:
        page number is 5 bytes in checkpoint record now (allows bigger tables)
      storage/maria/ma_recovery.c:
        page number is 5 bytes in checkpoint record now
      storage/maria/ma_recovery_util.c:
        page number is 5 bytes now
      storage/maria/ma_write.c:
        typo
      mysql-test/r/maria-recovery-big.result:
        result is correct
      mysql-test/t/maria-recovery-big-master.opt:
        usual options for recovery tests
      mysql-test/t/maria-recovery-big.test:
        Moving out the big blob test to a -big test (it exhausts memory when
        using /dev/shm on certain machines)
      f5c820cd