Skip to content

HADOOP-17597. Optionally downgrade on S3A Syncable calls #2801

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

Merged

Conversation

steveloughran
Copy link
Contributor

Adds a new option fs.s3a.downgrade.syncable.exceptions
Which converts calls to Syncable hsync/hflush on S3A output streams to

  • log once at warn (for entire process life, not just the stream)
  • increment IOStats with the relevant operation counter

With the downgrade not enabled (default)

  • IOStats also incremented
  • The UnsupportedOperationException current raised includes a link to this
    JIRA

@steveloughran
Copy link
Contributor Author

Testing: new tests all happy. Now regression testing with s3 london

@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 1m 20s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 2 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 14m 8s Maven dependency ordering for branch
+1 💚 mvninstall 23m 58s trunk passed
+1 💚 compile 24m 45s trunk passed with JDK Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04
+1 💚 compile 20m 54s trunk passed with JDK Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
+1 💚 checkstyle 4m 23s trunk passed
+1 💚 mvnsite 2m 45s trunk passed
-1 ❌ javadoc 1m 7s /branch-javadoc-hadoop-common-project_hadoop-common-jdkUbuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04.txt hadoop-common in trunk failed with JDK Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04.
+1 💚 javadoc 2m 20s trunk passed with JDK Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
+1 💚 spotbugs 3m 41s trunk passed
+1 💚 shadedclient 18m 19s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 23s Maven dependency ordering for patch
+1 💚 mvninstall 1m 32s the patch passed
+1 💚 compile 22m 8s the patch passed with JDK Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04
+1 💚 javac 22m 8s the patch passed
+1 💚 compile 19m 7s the patch passed with JDK Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
+1 💚 javac 19m 7s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 3m 55s /results-checkstyle-root.txt root: The patch generated 2 new + 13 unchanged - 2 fixed = 15 total (was 15)
+1 💚 mvnsite 2m 16s the patch passed
-1 ❌ javadoc 0m 57s /patch-javadoc-hadoop-common-project_hadoop-common-jdkUbuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04.txt hadoop-common in the patch failed with JDK Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04.
+1 💚 javadoc 2m 8s the patch passed with JDK Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
+1 💚 spotbugs 4m 2s the patch passed
+1 💚 shadedclient 17m 30s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 17m 19s hadoop-common in the patch passed.
+1 💚 unit 2m 9s hadoop-aws in the patch passed.
+1 💚 asflicense 0m 50s The patch does not generate ASF License warnings.
215m 55s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2801/1/artifact/out/Dockerfile
GITHUB PR #2801
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell
uname Linux ed608e3d2bfe 4.15.0-112-generic #113-Ubuntu SMP Thu Jul 9 23:41:39 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 91c7e74261efd63daf448cce321e4b6e7f4158ed
Default Java Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2801/1/testReport/
Max. process+thread count 1274 (vs. ulimit of 5500)
modules C: hadoop-common-project/hadoop-common hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2801/1/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

@steveloughran
Copy link
Contributor Author

Test s3 london with test options -Dparallel-tests -DtestsThreadCount=8 -Dmarkers=keep -Dscale

Failures

[ERROR] Errors:
[ERROR]   ITestDelegatedMRJob.testCommonCrawlLookup:239 » AWSRedirect getFileStatus on s...
[ERROR]   ITestDelegatedMRJob.testCommonCrawlLookup:239 » AWSRedirect getFileStatus on s...
[ERROR]   ITestDelegatedMRJob.testCommonCrawlLookup:239 » AWSRedirect getFileStatus on s...
[ERROR]   ITestDelegatedMRJob.testJobSubmissionCollectsTokens:286 » AWSRedirect getFileS...
[ERROR]   ITestDelegatedMRJob.testJobSubmissionCollectsTokens:286 » AWSRedirect getFileS...
[ERROR]   ITestDelegatedMRJob.testJobSubmissionCollectsTokens:286 » AWSRedirect getFileS...
[ERROR]   ITestRoleDelegationInFileystem>ITestSessionDelegationInFileystem.testDelegatedFileSystem:314->ITestSessionDelegationInFileystem.readLandsatMetadata:578 » AWSRedirect
[ERROR]   ITestSessionDelegationInFileystem.testDelegatedFileSystem:314->readLandsatMetadata:578 » AWSRedirect
[INFO]

cause is fixed in #2778.
run with s3guard also hit #2777

@mukund-thakur mukund-thakur self-requested a review March 23, 2021 13:49
@steveloughran steveloughran force-pushed the s3/HADOOP-17597-s3a-syncable branch from 91c7e74 to 9cbca3e Compare March 23, 2021 17:30
@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 1m 16s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 0s codespell was not available.
+0 🆗 markdownlint 0m 0s markdownlint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 2 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 14m 41s Maven dependency ordering for branch
+1 💚 mvninstall 35m 25s trunk passed
+1 💚 compile 42m 41s trunk passed with JDK Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04
+1 💚 compile 34m 11s trunk passed with JDK Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
+1 💚 checkstyle 6m 45s trunk passed
+1 💚 mvnsite 3m 41s trunk passed
+1 💚 javadoc 2m 6s trunk passed with JDK Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04
+1 💚 javadoc 2m 46s trunk passed with JDK Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
+1 💚 spotbugs 4m 49s trunk passed
+1 💚 shadedclient 21m 22s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 28s Maven dependency ordering for patch
+1 💚 mvninstall 2m 1s the patch passed
+1 💚 compile 32m 16s the patch passed with JDK Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04
+1 💚 javac 32m 16s the patch passed
+1 💚 compile 28m 36s the patch passed with JDK Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
+1 💚 javac 28m 36s the patch passed
-1 ❌ blanks 0m 0s /blanks-eol.txt The patch has 1 line(s) that end in blanks. Use git apply --whitespace=fix <<patch_file>>. Refer https://git-scm.com/docs/git-apply
+1 💚 checkstyle 5m 0s root: The patch generated 0 new + 13 unchanged - 2 fixed = 13 total (was 15)
+1 💚 mvnsite 2m 47s the patch passed
+1 💚 javadoc 1m 25s the patch passed with JDK Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04
+1 💚 javadoc 2m 6s the patch passed with JDK Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
+1 💚 spotbugs 3m 49s the patch passed
+1 💚 shadedclient 16m 49s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 17m 1s hadoop-common in the patch passed.
+1 💚 unit 2m 11s hadoop-aws in the patch passed.
+1 💚 asflicense 0m 48s The patch does not generate ASF License warnings.
288m 11s
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2801/2/artifact/out/Dockerfile
GITHUB PR #2801
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell markdownlint
uname Linux 6006de908d1f 4.15.0-136-generic #140-Ubuntu SMP Thu Jan 28 05:20:47 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 9cbca3e4d955e0ab8c6349099468e96c828f8205
Default Java Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2801/2/testReport/
Max. process+thread count 2191 (vs. ulimit of 5500)
modules C: hadoop-common-project/hadoop-common hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2801/2/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

Copy link
Member

@joshelser joshelser left a comment

Choose a reason for hiding this comment

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

Looks great to me.

Copy link
Contributor

@mukund-thakur mukund-thakur left a comment

Choose a reason for hiding this comment

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

LGTM +1


These recommendations _apply to all filesystems_.

To downgrade the S3A connector to simplying warning of the use of
Copy link
Contributor

Choose a reason for hiding this comment

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

nit : typo simply warn the?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

fixed

}

@Test
public void testHFlushDowngrade() throws Throwable {
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: add describe

}

@Test
public void testHSyncDowngrade() throws Throwable {
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: add describe test

}

/**
* When configured to downgrade, the stream downgrades on.
Copy link
Contributor

Choose a reason for hiding this comment

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

nit: no fullstop in the end.

@steveloughran
Copy link
Contributor Author

thanks, will update the PR with the comments.

@steveloughran
Copy link
Contributor Author

build failed. Will rebase and resubmit

Adds a new option fs.s3a.downgrade.syncable.exceptions
Which converts calls to Syncable hsync/hflush on S3A output streams to

* log once at warn (for entire process life, not just the stream)
* increment IOStats with the relevant operation counter

With the downgrade not enabled (default)
* IOStats also incremented
* The UnsupportedOperationException current raised includes a link to this
  JIRA

Change-Id: I650a8da55cf32725d4ac9c9db3f466cc427669fd
Checkstyle and troubleshooting

Change-Id: Ibb11fe85531a07acc9cf66d2fc941103784a3d27
Change-Id: Ibb0fd0c47d6da129c9ab77d45011e2b9f8d4bab1
@steveloughran steveloughran force-pushed the s3/HADOOP-17597-s3a-syncable branch from 2a46669 to 9643ec0 Compare April 23, 2021 11:27
@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 52s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 0s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 markdownlint 0m 1s markdownlint was not available.
+1 💚 @author 0m 0s The patch does not contain any @author tags.
+1 💚 test4tests 0m 0s The patch appears to include 2 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 15m 13s Maven dependency ordering for branch
+1 💚 mvninstall 22m 42s trunk passed
+1 💚 compile 22m 38s trunk passed with JDK Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04
+1 💚 compile 19m 15s trunk passed with JDK Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
+1 💚 checkstyle 3m 58s trunk passed
+1 💚 mvnsite 2m 16s trunk passed
+1 💚 javadoc 1m 25s trunk passed with JDK Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04
+1 💚 javadoc 2m 7s trunk passed with JDK Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
+1 💚 spotbugs 3m 29s trunk passed
+1 💚 shadedclient 16m 52s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 21s Maven dependency ordering for patch
+1 💚 mvninstall 1m 26s the patch passed
+1 💚 compile 21m 43s the patch passed with JDK Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04
+1 💚 javac 21m 43s the patch passed
+1 💚 compile 19m 4s the patch passed with JDK Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
+1 💚 javac 19m 4s the patch passed
-1 ❌ blanks 0m 0s /blanks-eol.txt The patch has 1 line(s) that end in blanks. Use git apply --whitespace=fix <<patch_file>>. Refer https://git-scm.com/docs/git-apply
+1 💚 checkstyle 3m 56s root: The patch generated 0 new + 13 unchanged - 1 fixed = 13 total (was 14)
+1 💚 mvnsite 2m 13s the patch passed
+1 💚 javadoc 1m 24s the patch passed with JDK Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04
+1 💚 javadoc 2m 7s the patch passed with JDK Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
+1 💚 spotbugs 3m 52s the patch passed
+1 💚 shadedclient 18m 5s patch has no errors when building and testing our client artifacts.
_ Other Tests _
-1 ❌ unit 18m 12s /patch-unit-hadoop-common-project_hadoop-common.txt hadoop-common in the patch passed.
+1 💚 unit 2m 9s hadoop-aws in the patch passed.
+1 💚 asflicense 0m 48s The patch does not generate ASF License warnings.
208m 50s
Reason Tests
Failed junit tests hadoop.security.TestRaceWhenRelogin
Subsystem Report/Notes
Docker ClientAPI=1.41 ServerAPI=1.41 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2801/4/artifact/out/Dockerfile
GITHUB PR #2801
Optional Tests dupname asflicense compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle codespell markdownlint
uname Linux de220dfaefc7 4.15.0-136-generic #140-Ubuntu SMP Thu Jan 28 05:20:47 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 9643ec0
Default Java Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
Multi-JDK versions /usr/lib/jvm/java-11-openjdk-amd64:Ubuntu-11.0.10+9-Ubuntu-0ubuntu1.20.04 /usr/lib/jvm/java-8-openjdk-amd64:Private Build-1.8.0_282-8u282-b08-0ubuntu1~20.04-b08
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2801/4/testReport/
Max. process+thread count 3134 (vs. ulimit of 5500)
modules C: hadoop-common-project/hadoop-common hadoop-tools/hadoop-aws U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-2801/4/console
versions git=2.25.1 maven=3.6.3 spotbugs=4.2.2
Powered by Apache Yetus 0.14.0-SNAPSHOT https://yetus.apache.org

This message was automatically generated.

@steveloughran
Copy link
Contributor Author

test failure was in hadoop common and kerberos auth related, ignoring. Merging

@steveloughran steveloughran merged commit 027c8fb into apache:trunk Apr 23, 2021
asfgit pushed a commit that referenced this pull request Apr 24, 2021
Followup to HADOOP-13327, which changed S3A output stream hsync/hflush calls
to raise an exception.

Adds a new option fs.s3a.downgrade.syncable.exceptions

When true, calls to Syncable hsync/hflush on S3A output streams will
log once at warn (for entire process life, not just the stream), then
increment IOStats with the relevant operation counter

With the downgrade option false (default)
* IOStats are incremented
* The UnsupportedOperationException current raised includes a link to the
  JIRA.

Contributed by Steve Loughran.

Change-Id: I967e077eda1d1a1a3795b4d22e003fe7997b6679
@steveloughran steveloughran deleted the s3/HADOOP-17597-s3a-syncable branch April 26, 2021 12:02
kiran-maturi pushed a commit to kiran-maturi/hadoop that referenced this pull request Nov 24, 2021
Followup to HADOOP-13327, which changed S3A output stream hsync/hflush calls
to raise an exception.

Adds a new option fs.s3a.downgrade.syncable.exceptions

When true, calls to Syncable hsync/hflush on S3A output streams will
log once at warn (for entire process life, not just the stream), then
increment IOStats with the relevant operation counter

With the downgrade option false (default)
* IOStats are incremented
* The UnsupportedOperationException current raised includes a link to the
  JIRA.

Contributed by Steve Loughran.
jojochuang pushed a commit to jojochuang/hadoop that referenced this pull request May 23, 2023
…pache#2801)

Followup to HADOOP-13327, which changed S3A output stream hsync/hflush calls
to raise an exception.

Adds a new option fs.s3a.downgrade.syncable.exceptions

When true, calls to Syncable hsync/hflush on S3A output streams will
log once at warn (for entire process life, not just the stream), then
increment IOStats with the relevant operation counter

With the downgrade option false (default)
* IOStats are incremented
* The UnsupportedOperationException current raised includes a link to the
  JIRA.

Contributed by Steve Loughran.

Change-Id: I650a8da55cf32725d4ac9c9db3f466cc427669fd
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants