Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
branch: jfw-zero_byte_…
Commits on Sep 18, 2012
  1. Merge commit 'fe76786d7c4f1679a4d3c469ebb942021c06645b' into jfw-zero…

    Riak User authored
    …_byte_merge
Commits on Sep 17, 2012
  1. Merge remote-tracking branch 'origin/jfw-br-grace_timeout' into jfw-z…

    Jesse Williamson authored
    …ero_byte_merge
  2. Added instrumentation to help find the zero-byte bug.

    Jesse Williamson authored
Commits on Sep 13, 2012
  1. Seperates candidate finding function as per conversation with Reid;

    Jesse Williamson authored
    removes initials.
Commits on Sep 10, 2012
  1. NeedsMerge should use the grace calculation, but not the threshold

    Jesse Williamson authored
    computation.
  2. Corrects wrong getopt() value (thanks DaJoe!)

    Jesse Williamson authored
Commits on Sep 7, 2012
  1. Updated, should remove debugging code.

    Jesse Williamson authored
Commits on Sep 5, 2012
Commits on Jul 23, 2012
  1. @joecaswell
Commits on Jul 2, 2012
  1. @seancribbs

    Add chat bot notification.

    seancribbs authored
Commits on Jun 27, 2012
  1. @seancribbs

    Merge pull request #44 from basho/add-travis-ci

    seancribbs authored
    Add Travis CI hook and build status.
  2. @seancribbs
Commits on Mar 6, 2012
  1. @jaredmorrow

    Roll version 1.5.1

    jaredmorrow authored
  2. @jtuple
Commits on Mar 4, 2012
  1. @jtuple

    Fix incorrect NIF error tuples

    jtuple authored
Commits on Feb 19, 2012
  1. @jaredmorrow

    Roll version 1.5.0

    jaredmorrow authored
Commits on Feb 16, 2012
  1. @Vagabond

    Merge pull request #38 from basho/adt-fix-eqc-test

    Vagabond authored
    Fix incorrect timeout and remove flaky counterexample code
Commits on Feb 15, 2012
  1. @Vagabond

    Fix incorrect timeout and remove flaky counterexample code

    Vagabond authored
    Also, cleanup an unused var.
Commits on Feb 9, 2012
  1. @jonmeredith
  2. @jonmeredith

    Removed unused bitcask_fileops:temp_file function.

    jonmeredith authored
    Was used by the old hintfile code but is no longer needed.
  3. @jonmeredith
  4. @jonmeredith

    Restrict regex for finding bitcask files to starting with numbers.

    jonmeredith authored
    Thanks for the review Scott and Dan.
  5. @jonmeredith

    Tighten bitcask data file regex (currently picks up NNNN.bitcask.data*)

    jonmeredith authored
    Make sure the regex is tight so that if people move bitcask files
    out of the way during recovery e.g. 123.bitcask.data.bak then they
    are not included when deciding on the next filename.
Commits on Feb 8, 2012
  1. @jonmeredith
  2. @jonmeredith
Commits on Feb 6, 2012
  1. @jonmeredith

    Added require_hint_crc entry to bitcask.app.src and enabled for eqc t…

    jonmeredith authored
    …est.
    
    Without the setting EQC finds and edge case where it truncates
    the hint file on a hint record boundary.  required_hint_crc will
    be set to true by default in a future release.
  2. @jonmeredith

    Removed original dead hintfile creation code.

    jonmeredith authored
    In the distant past casks were written, then reread and a hint file
    was written for them.  Now hints are written concurrently with the
    main cask file so all of this code is dead.
  3. @jonmeredith

    Added env var to require strict hintfile checking.

    jonmeredith authored
    Otherwise it is possible to truncate at the end of a hintfile
    record and be treated as a hint file without CRCs.
  4. @jonmeredith

    Updated truncated_datafile_test for hintfile changes.

    jonmeredith authored
    With the new 'recovery' option for keyfolding, the cask files
    are scanned after the hint file read discovers an object beyond
    the end of the cask file.
  5. @jonmeredith

    Fixed truncated_merge_test.

    jonmeredith authored
    The truncated hint files are now detected so only the two
    data file corruptions are bad.
  6. @jonmeredith
  7. @jonmeredith

    Fixed typo in badcrc error return. Found a new counterexample.

    jonmeredith authored
    ```
    [{set,{var,1},{call,bitcask_qc_fsm,set_keys,[[<<"hØv">>]]}},
     {set,{var,2},
          {call,bitcask,open,
                ["/tmp/bitcask.qc",
                 [read_write,{open_timeout,0},{sync_strategy,none}]]}},
     {set,{var,10},{call,bitcask,delete,[{var,2},<<"hØv">>]}},
     {set,{var,30},{call,bitcask,close,[{var,2}]}},
     {set,{var,45},{call,bitcask_qc_fsm,corrupt_hint,[0,37]}},
     {set,{var,47},
          {call,bitcask,open,
                ["/tmp/bitcask.qc",
                 [read_write,{open_timeout,0},{sync_strategy,none}]]}},
     {set,{var,48},{call,bitcask,put,[{var,47},<<"hØv">>,<<>>]}}]
    {exception,{'EXIT',{{badmatch,already_exists},
                        [{bitcask,put,3},
                         {eqc_statem,f515_0,5},
                         {eqc_statem,f507_0,5},
                         {eqc_statem,run_commands,2},
                         {eqc_fsm,run_commands,2},
                         {bitcask_qc_fsm,'-prop_bitcask/0-fun-0-',1},
                         {eqc,'-f777_0/2-fun-4-',3},
                         {eqc_gen,'-f321_0/2-fun-0-',5}]}}} /= ok
    false
    ```
  8. @jonmeredith

    Added hintfile corruption test and found counterexample.

    jonmeredith authored
    ```
    12> eqc:check(bitcask_qc_fsm:prop_bitcask(), eqc:current_counterexample()).
    Corrupting from 112 to <<143>> at 23 size 42
    
    =ERROR REPORT==== 2-Feb-2012::10:11:15 ===
    Hintfile '/tmp/bitcask.qc/1.bitcask.hint' has bad CRC 486109250 expected 838574031
    Failed!
    [{set,{var,1},{call,bitcask_qc_fsm,set_keys,[[<<"±#ª:×p">>]]}},
     {set,{var,2},
          {call,bitcask,open,
                ["/tmp/bitcask.qc",
                 [read_write,{open_timeout,0},{sync_strategy,o_sync}]]}},
     {set,{var,8},{call,bitcask,put,[{var,2},<<"±#ª:×p">>,<<>>]}},
     {set,{var,34},{call,bitcask,close,[{var,2}]}},
     {set,{var,39},{call,bitcask_qc_fsm,corrupt_hint,[0,18]}},
     {set,{var,42},
          {call,bitcask,open,
                ["/tmp/bitcask.qc",
                 [read_write,{open_timeout,0},{sync_strategy,none}]]}},
     {set,{var,43},{call,bitcask,get,[{var,42},<<"±#ª:×p">>]}}]
    {postcondition,{expected,<<>>,got,not_found}} /= ok
    false
    ```
  9. @jonmeredith

    Add CRC to hintfile and check during startup.

    jonmeredith authored
    Calculate CRC of hintfile as it is written and write to
    special backward compatible trailer record at the end of
    the hints file.
    
    Changed the hint folding code to return {error, blah} more
    reliably and added a new fold_keys variant that will
    switch to scanning the cask files if there were any issues
    with the hint file.
Something went wrong with that request. Please try again.