Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FIX JENKINS-34855] Create a FileChannelWriter and use it for AtomicFileWriter "enforced" flushing #3170

Merged
merged 6 commits into from Jan 12, 2018

Commits on Dec 2, 2017

  1. Configuration menu
    Copy the full SHA
    22efbad View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    9fb07a2 View commit details
    Browse the repository at this point in the history

Commits on Dec 3, 2017

  1. New flag to FileChannel.force() on each Writer.flush() or not

    And disable FileChannel.force() in the case of AtomicFileWriter.
    See the committed javadoc for the full why.
    batmat committed Dec 3, 2017
    Configuration menu
    Copy the full SHA
    1191bb0 View commit details
    Browse the repository at this point in the history

Commits on Dec 4, 2017

  1. Bump to a bit longer

    (Note: mainly bumping for the CI to not fail since I was never able to
    see this test fail on my machine [takes ~17 with this change] anyway
    other than by running in Docker and aggressively reduce IOPS to 40 using
    Docker resource constraints.)
    
    Since we now *actually* sync to disk, this isn't really a regression IMO.
    From the very role of AtomicFileWriter, it looks more like a feature or
    an improvement than an issue.
    
    So I suspect that anyway 1) we won't see
    a lot of bad impact in the wild on most setups (as we generally already
    recommend SSDs and so on as per how Jenkins works) and 2) we win anyway
    in term of integrity by making sure (well, raising the chances, let's
    say) we do write to disk before renaming files.
    batmat committed Dec 4, 2017
    Configuration menu
    Copy the full SHA
    f555cb6 View commit details
    Browse the repository at this point in the history

Commits on Jan 4, 2018

  1. Introduce flags to disable force per instance or globally

    The goal here is to:
    * be able to selectively choose performance over integrity in some very
      specific cases
    * be able to globally disable AtomicFileWriter integrity, and basically
      revert to previous behaviour by setting a system property.
      This flag is meant as an emergency one in case something goes very
      wron on some production system.
    batmat committed Jan 4, 2018
    Configuration menu
    Copy the full SHA
    3a5189e View commit details
    Browse the repository at this point in the history

Commits on Jan 7, 2018

  1. Be less dramatic with the dataloss criteria

    As requested especially by Sam
    batmat committed Jan 7, 2018
    Configuration menu
    Copy the full SHA
    bd2cb36 View commit details
    Browse the repository at this point in the history