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 non-corruption in testCurrentHeaderVersion #50883

Conversation

DaveCTurner
Copy link
Contributor

Today we make multiple attempts to corrupt the translog header in
TranslogHeaderTests#testCurrentHeaderVersion, but if we are extraordinarily
unlucky then this sequence of corruptions may restore the file to its original
state. An example of such an extraordinarily unlucky run is as follows.

./gradlew ':server:test' --tests "org.elasticsearch.index.translog.TranslogHeaderTests.testCurrentHeaderVersion"
    -Dtests.seed=FA72F7F56C4B3643 -Dtests.security.manager=true -Dtests.jvms=4
    -Dtests.locale=es-GT -Dtests.timezone=Europe/Budapest -Dcompiler.java=13

Log output:

1> [2020-01-11T00:58:32,320][INFO ][o.e.i.t.TranslogHeaderTests] [testCurrentHeaderVersion] before test
1> [2020-01-11T00:58:32,322][INFO ][o.e.i.t.TranslogHeaderTests] [testCurrentHeaderVersion] corruptFile: corrupting file /home/davidturner/elasticsearch/server/build/testrun/test/temp/org.elasticsearch.index.translog.TranslogHeaderTests_FA72F7F56C4B3643-001/tempDir-002/translog-6712189936700025777.tlog at position 6 turning 0x72 into 0x63
1> [2020-01-11T00:58:32,323][INFO ][o.e.i.t.TranslogHeaderTests] [testCurrentHeaderVersion] corruptFile: corrupting file /home/davidturner/elasticsearch/server/build/testrun/test/temp/org.elasticsearch.index.translog.TranslogHeaderTests_FA72F7F56C4B3643-001/tempDir-002/translog-6712189936700025777.tlog at position 6 turning 0x63 into 0x72
1> [2020-01-11T00:58:32,324][INFO ][o.e.i.t.TranslogHeaderTests] [testCurrentHeaderVersion] after test

This change adjusts the test to only corrupt the file once, which is certain
not to leave the file in its original state.

Today we make multiple attempts to corrupt the translog header in
`TranslogHeaderTests#testCurrentHeaderVersion`, but if we are extraordinarily
unlucky then this sequence of corruptions may restore the file to its original
state. An example of such an extraordinarily unlucky run is as follows.

    ./gradlew ':server:test' --tests "org.elasticsearch.index.translog.TranslogHeaderTests.testCurrentHeaderVersion"
        -Dtests.seed=FA72F7F56C4B3643 -Dtests.security.manager=true -Dtests.jvms=4
        -Dtests.locale=es-GT -Dtests.timezone=Europe/Budapest -Dcompiler.java=13

Log output:

    1> [2020-01-11T00:58:32,320][INFO ][o.e.i.t.TranslogHeaderTests] [testCurrentHeaderVersion] before test
    1> [2020-01-11T00:58:32,322][INFO ][o.e.i.t.TranslogHeaderTests] [testCurrentHeaderVersion] corruptFile: corrupting file /home/davidturner/elasticsearch/server/build/testrun/test/temp/org.elasticsearch.index.translog.TranslogHeaderTests_FA72F7F56C4B3643-001/tempDir-002/translog-6712189936700025777.tlog at position 6 turning 0x72 into 0x63
    1> [2020-01-11T00:58:32,323][INFO ][o.e.i.t.TranslogHeaderTests] [testCurrentHeaderVersion] corruptFile: corrupting file /home/davidturner/elasticsearch/server/build/testrun/test/temp/org.elasticsearch.index.translog.TranslogHeaderTests_FA72F7F56C4B3643-001/tempDir-002/translog-6712189936700025777.tlog at position 6 turning 0x63 into 0x72
    1> [2020-01-11T00:58:32,324][INFO ][o.e.i.t.TranslogHeaderTests] [testCurrentHeaderVersion] after test

This change adjusts the test to only corrupt the file once, which is certain
not to leave the file in its original state.
@DaveCTurner DaveCTurner added >test Issues or PRs that are addressing/adding tests :Distributed Indexing/Engine Anything around managing Lucene and the Translog in an open shard. v8.0.0 v7.6.0 labels Jan 11, 2020
@DaveCTurner DaveCTurner requested a review from dnhatn January 11, 2020 00:54
@elasticmachine
Copy link
Collaborator

Pinging @elastic/es-distributed (:Distributed/Engine)

Copy link
Member

@dnhatn dnhatn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. Thank you for taking care of this 👍.

@DaveCTurner DaveCTurner merged commit 602cb62 into elastic:master Jan 12, 2020
@DaveCTurner DaveCTurner deleted the 2020-01-11-fix-testCurrentHeaderVersion branch January 12, 2020 12:37
DaveCTurner added a commit that referenced this pull request Jan 12, 2020
Today we make multiple attempts to corrupt the translog header in
`TranslogHeaderTests#testCurrentHeaderVersion`, but if we are extraordinarily
unlucky then this sequence of corruptions may restore the file to its original
state. This change adjusts the test to only corrupt the file once, which is
certain not to leave the file in its original state.
SivagurunathanV pushed a commit to SivagurunathanV/elasticsearch that referenced this pull request Jan 23, 2020
Today we make multiple attempts to corrupt the translog header in
`TranslogHeaderTests#testCurrentHeaderVersion`, but if we are extraordinarily
unlucky then this sequence of corruptions may restore the file to its original
state. This change adjusts the test to only corrupt the file once, which is
certain not to leave the file in its original state.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
:Distributed Indexing/Engine Anything around managing Lucene and the Translog in an open shard. >test Issues or PRs that are addressing/adding tests v7.6.0 v8.0.0-alpha1
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants