Uploaded image for project: 'WiredTiger'
  1. WiredTiger
  2. WT-3165

Error unexpected checkpoint ordering on recovery error path

    • Type: Icon: Bug Bug
    • Resolution: Duplicate
    • Priority: Icon: Major - P3 Major - P3
    • None
    • Affects Version/s: None
    • Component/s: None
    • Labels:
      None

      Running with the test program from WT-3157, and adding in a forced error in checkpoint_tree I get an assertion failure/core dump during error handling. The command is:
      ./test_wt2909_checkpoint_integrity -v -o 125 and the code change for the forced error is:

      diff --git a/src/txn/txn_ckpt.c b/src/txn/txn_ckpt.c
      index 59dcc23..de8b1b9 100644
      --- a/src/txn/txn_ckpt.c
      +++ b/src/txn/txn_ckpt.c
      @@ -524,6 +524,8 @@ __checkpoint_verbose_track(WT_SESSION_IMPL *session,
       #endif
       }
       
      +int ckpt_first = 0;
      +
       /*
        * __txn_checkpoint --
        *     Checkpoint a database or a list of objects in the database.
      @@ -1427,6 +1429,8 @@ __checkpoint_tree(
                      WT_ERR(__wt_cache_op(session, WT_SYNC_CHECKPOINT));
              else
                      WT_ERR(__wt_cache_op(session, WT_SYNC_CLOSE));
      +       if (++ckpt_first > 4)
      +               WT_ERR(EIO);
       
              /*
               * All blocks being written have been written; set the object's write
      

            Assignee:
            michael.cahill@mongodb.com Michael Cahill (Inactive)
            Reporter:
            sue.loverso@mongodb.com Susan LoVerso
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated:
              Resolved: