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

Fast truncate can lead to never resolved prepared operations

    • Type: Icon: Build Failure Build Failure
    • Resolution: Fixed
    • Priority: Icon: Major - P3 Major - P3
    • WT10.0.0, 4.4.1, 4.7.0
    • Affects Version/s: None
    • Component/s: None
    • 5
    • Storage - Ra 2020-06-29, Storage - Ra 2020-07-13, Storage - Ra 2020-07-27

      format-stress-sanitizer-test failed on Ubuntu 18.04 Stress tests

      Host: ec2-54-167-174-27.compute-1.amazonaws.com
      Project: WiredTiger (develop)
      Commit: diff: WT-6302 move format operations tracing into WiredTiger log files (#5712)

      • Change format's logging configuration to create a second WiredTiger database used only to log
        format operations. There's an optional configuration that puts the format logging information
        into the primary's database logs, more about that in a second.

      Add a new wiredtiger_open() configuration, "debug_mode.log_retain=##" which configures how
      many log files we keep.

      Add the "-m" option to the wt utility printlog command to minimize the output, discarding
      everything but the message content.

      Add a new WT_SESSION method, "WT_SESSION.log_vprintf" so it's easy to push a variadic argument
      list into the log.

      Refactor the format database open/close code so all of the code is consistently opening and
      closing databases.

      • Moving operation logging into the WiredTiger log files means we no longer need to get the
        extension API reference.
      • Use "oplog" as a prefix instead of "wts_log", try to differentiate operation logging from general
        logging configuration.
      • The only handle we init/teardown is the replay RNG file handle, cleanup up the calls and naming.
      • This branch is likely to be merged, fix a random typo in a comment.
      • wts.c:461:21: error: variable 'session' may be uninitialized when used here
      • Remove the -r (replay) option. There's enough random number generation being done during
        configuration that it no longer works as originally intended and it's not a particularly
        useful test scenario any more.
      • Naming pass: use "trace" for operations logging instead of "logging"/"oplog", there are too
        many kinds of logging already to add another one.
      • Remove "debug_mode.log_verbose", that work will get done in a separate ticket.
      • I forgot to put the in-memory configuration support back in, fix it.
      • Fix a function header comment.
      • Comment wordsmithing.
      • Switch -L/-l to -T/-t, trace not log.
      • Correct a comment to match the code.
      • Add a comment.
      • Alphabetize.
      • Switch from "log_retain" to "log_retention" and "debug_log_retain" to "debug_log_cnt",
        for consistency with checkpoint's log retention naming.
      • Fix a comment.
      • Simplify the trace macros.
      • Remove WT_SESSION.log_vprintf() API.

      Allow WT_SESSION.log_printf() after WT_SESSION.prepare().

      • Add warnings to the code and documentation that debug_mod.log_retain can potentially remove
        log files required for recovery, if the number of log files exceeds the configured value and
        no checkpoint has yet been performed.
      • Document the meaning of debug_mode.log_retention=0. | 27 May 20 17:05 UTC
        Evergreen Subscription: ; Evergreen Event:

      Task Logs

            ravi.giri@mongodb.com Ravi Giri
            xgen-evg-user Xgen-Evergreen-User
            0 Vote for this issue
            9 Start watching this issue