This is an automated email from the ASF dual-hosted git repository. stevel pushed a commit to branch branch-3.4 in repository https://gitbox.apache.org/repos/asf/hadoop.git
The following commit(s) were added to refs/heads/branch-3.4 by this push: new 8194b823e92 HADOOP-19557. S3A: S3ABlockOutputStream to never log/reject hflush() calls (#7662) 8194b823e92 is described below commit 8194b823e92445c962d89c1dcbb0837ff183a237 Author: Steve Loughran <ste...@cloudera.com> AuthorDate: Thu May 1 11:52:58 2025 +0100 HADOOP-19557. S3A: S3ABlockOutputStream to never log/reject hflush() calls (#7662) S3A output streams no longer logs warnings on use of hflush() or, if fs.s3a.downgrade.syncable.exceptions = false, raises an UnsupportedOperationException . hsync() is still reported with a warning or rejected. That method is absolutely unsupported when writing to S3. Contributed by Steve Loughran --- .../main/java/org/apache/hadoop/fs/s3a/S3ABlockOutputStream.java | 5 +++-- .../java/org/apache/hadoop/fs/s3a/TestS3ABlockOutputStream.java | 6 +++--- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3ABlockOutputStream.java b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3ABlockOutputStream.java index 9574485eb9d..b58070a7b09 100644 --- a/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3ABlockOutputStream.java +++ b/hadoop-tools/hadoop-aws/src/main/java/org/apache/hadoop/fs/s3a/S3ABlockOutputStream.java @@ -829,7 +829,8 @@ public boolean hasCapability(String capability) { @Override public void hflush() throws IOException { statistics.hflushInvoked(); - handleSyncableInvocation(); + // do not reject these, but downgrade to a no-oop + LOG.debug("Hflush invoked"); } @Override @@ -839,7 +840,7 @@ public void hsync() throws IOException { } /** - * Shared processing of Syncable operation reporting/downgrade. + * Processing of Syncable operation reporting/downgrade. * @throws UnsupportedOperationException if required. */ private void handleSyncableInvocation() { diff --git a/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/TestS3ABlockOutputStream.java b/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/TestS3ABlockOutputStream.java index dc1cb2f54bf..73ce8f24ce6 100644 --- a/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/TestS3ABlockOutputStream.java +++ b/hadoop-tools/hadoop-aws/src/test/java/org/apache/hadoop/fs/s3a/TestS3ABlockOutputStream.java @@ -148,7 +148,7 @@ public void testCallingCloseAfterCallingAbort() throws Exception { /** * Unless configured to downgrade, the stream will raise exceptions on - * Syncable API calls. + * Syncable.hsync() API calls. */ @Test public void testSyncableUnsupported() throws Exception { @@ -156,13 +156,13 @@ public void testSyncableUnsupported() throws Exception { builder = mockS3ABuilder(); builder.withDowngradeSyncableExceptions(false); stream = spy(new S3ABlockOutputStream(builder)); - intercept(UnsupportedOperationException.class, () -> stream.hflush()); + stream.hflush(); intercept(UnsupportedOperationException.class, () -> stream.hsync()); } /** * When configured to downgrade, the stream downgrades on - * Syncable API calls. + * Syncable.hsync() API calls. */ @Test public void testSyncableDowngrade() throws Exception { --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org