Skip to content

HDFS-11161. Incorporate Baidu BOS file system implementation.#8347

Open
yangdong2398 wants to merge 2 commits intoapache:trunkfrom
yangdong2398:HDFS-11161-hadoop-bos-clean
Open

HDFS-11161. Incorporate Baidu BOS file system implementation.#8347
yangdong2398 wants to merge 2 commits intoapache:trunkfrom
yangdong2398:HDFS-11161-hadoop-bos-clean

Conversation

@yangdong2398
Copy link

Description of PR

JIRA: https://issues.apache.org/jira/browse/HDFS-11161

Add hadoop-bos module to hadoop-cloud-storage-project providing Baidu Object Storage (BOS) FileSystem implementation using the bos:// URI scheme.

Key features:

  • BaiduBosFileSystem: core Hadoop FileSystem implementation for BOS
  • Support for both flat and hierarchical namespace modes
  • Multipart upload for large files
  • CRC32C checksum compatible with HDFS for DistCp
  • Pluggable credential providers (configuration-based and environment-variable-based)
  • Hadoop FileSystem contract tests
  • Shaded BOS SDK and transitive dependencies (jackson, httpcomponents, guava, commons-logging, commons-lang, commons-codec) under bfs.* prefix to avoid classpath conflicts

Build integration:

  • Integrated into hadoop-project/pom.xml (dependency management), hadoop-cloud-storage-project/pom.xml (module), hadoop-cloud-storage/pom.xml (umbrella dependency), hadoop-cloud-storage-dist/pom.xml (dist packaging)
  • Standard core-site.xml + XInclude auth-keys.xml test credential pattern
  • tests-off/tests-on profiles to auto-skip tests when credentials are absent

How was this patch tested?

  • Unit test: TestConfigurationCredentialsProvider validates credential provider loading from Hadoop configuration
  • Contract tests: Full set of Hadoop FileSystem contract tests (TestBosContractCreate, TestBosContractDelete, TestBosContractRename, TestBosContractSeek, etc.) — require valid BOS credentials in auth-keys.xml
  • CI: Apache Yetus pre-commit checks pass (compile, javadoc JDK 17/21, SpotBugs, checkstyle, ASF license, whitespace)

Dependencies and Licensing

All new dependencies (Baidu BOS SDK) and transitive dependencies are properly shaded under bfs.* prefix. BOS SDK is under Apache License 2.0, compatible with ASF 2.0 license requirements. No changes required to LICENSE, LICENSE-binary, or NOTICE-binary files as dependencies are shaded and not exposed in distribution.

Add hadoop-bos module to hadoop-cloud-storage-project providing Baidu
Object Storage (BOS) FileSystem implementation using the bos:// URI
scheme.

The module includes:
- BaiduBosFileSystem: core FileSystem implementation for BOS
- Support for both flat and hierarchical namespace modes
- Multipart upload for large files
- CRC32C checksum compatible with HDFS for DistCp
- Pluggable credential providers (configuration-based and env-variable-based)
- Hadoop FileSystem contract tests
- Shaded BOS SDK and transitive dependencies (jackson, httpcomponents,
  guava, commons-logging, commons-lang, commons-codec) under bfs.* prefix
  to avoid classpath conflicts
- Integration into hadoop-project, hadoop-cloud-storage, and
  hadoop-cloud-storage-dist parent POMs
- Standard core-site.xml + XInclude auth-keys.xml test credential pattern
- tests-off/tests-on profiles to auto-skip tests when credentials absent

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@hadoop-yetus
Copy link

🎊 +1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 13m 29s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 detsecrets 0m 1s detect-secrets was not available.
+0 🆗 xmllint 0m 1s xmllint 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 21 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 2m 26s Maven dependency ordering for branch
+1 💚 mvninstall 43m 19s trunk passed
+1 💚 compile 17m 7s trunk passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 compile 17m 9s trunk passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 checkstyle 5m 26s trunk passed
+1 💚 mvnsite 3m 37s trunk passed
+1 💚 javadoc 3m 28s trunk passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javadoc 3m 31s trunk passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+0 🆗 spotbugs 0m 51s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+0 🆗 spotbugs 0m 50s branch/hadoop-cloud-storage-project/hadoop-cloud-storage no spotbugs output file (spotbugsXml.xml)
+0 🆗 spotbugs 0m 50s branch/hadoop-cloud-storage-project/hadoop-cloud-storage-dist no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 28m 14s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 32s Maven dependency ordering for patch
+1 💚 mvninstall 6m 26s the patch passed
+1 💚 compile 15m 6s the patch passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javac 15m 6s the patch passed
+1 💚 compile 16m 27s the patch passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 javac 16m 27s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 5m 20s /results-checkstyle-root.txt root: The patch generated 42 new + 0 unchanged - 0 fixed = 42 total (was 0)
+1 💚 mvnsite 4m 35s the patch passed
+1 💚 javadoc 4m 30s the patch passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javadoc 4m 33s the patch passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+0 🆗 spotbugs 0m 47s hadoop-project has no data from spotbugs
+0 🆗 spotbugs 0m 50s hadoop-cloud-storage-project/hadoop-cloud-storage has no data from spotbugs
+0 🆗 spotbugs 0m 50s hadoop-cloud-storage-project/hadoop-cloud-storage-dist has no data from spotbugs
+1 💚 shadedclient 28m 23s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 48s hadoop-project in the patch passed.
+1 💚 unit 0m 53s hadoop-bos in the patch passed.
+1 💚 unit 2m 20s hadoop-cloud-storage-project in the patch passed.
+1 💚 unit 0m 48s hadoop-cloud-storage in the patch passed.
+1 💚 unit 0m 47s hadoop-cloud-storage-dist in the patch passed.
+1 💚 asflicense 1m 14s The patch does not generate ASF License warnings.
250m 25s
Subsystem Report/Notes
Docker ClientAPI=1.54 ServerAPI=1.54 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8347/1/artifact/out/Dockerfile
GITHUB PR #8347
Optional Tests dupname asflicense codespell detsecrets xmllint compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle markdownlint
uname Linux 2766637407e5 5.15.0-173-generic #183-Ubuntu SMP Fri Mar 6 13:29:34 UTC 2026 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / afb04c0
Default Java Ubuntu-17.0.18+8-Ubuntu-124.04.1
Multi-JDK versions /usr/lib/jvm/java-21-openjdk-amd64:Ubuntu-21.0.10+7-Ubuntu-124.04 /usr/lib/jvm/java-17-openjdk-amd64:Ubuntu-17.0.18+8-Ubuntu-124.04.1
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8347/1/testReport/
Max. process+thread count 638 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-cloud-storage-project/hadoop-bos hadoop-cloud-storage-project hadoop-cloud-storage-project/hadoop-cloud-storage hadoop-cloud-storage-project/hadoop-cloud-storage-dist U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8347/1/console
versions git=2.43.0 maven=3.9.11 spotbugs=4.9.7
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

@LuciferYang
Copy link

cc @steveloughran Could you help recommend someone who can review this PR? Thanks ~

@LuciferYang
Copy link

I notice that all the commits under this directory are tagged with HADOOP-XXX. It seems that none of them use tickets labeled HDFS-XXX.

@slfan1989
Copy link
Contributor

@yangdong2398 @LuciferYang Thank you for your contribution! As this PR is fairly large, we will need to initiate a DISCUSS and VOTE thread in accordance with the project process before proceeding to the next steps. You may refer to this email for the general format and workflow:

https://lists.apache.org/thread/t4xopqkcd2r3gttlfpwgk6cbf0fx2tbm

cc: @steveloughran @roryqi

@LuciferYang
Copy link

@yangdong2398 I have conducted some analysis on the dependencies of this module with cc and summarized them as follows:

Compile-Scope Dependency Tree

org.apache.hadoop:hadoop-bos:3.6.0-SNAPSHOT
└── com.baidubce:bce-java-sdk:0.10.330
    ├── org.apache.commons:commons-lang3:3.18.0
    ├── org.slf4j:slf4j-api:1.7.36
    ├── commons-codec:commons-codec:1.15
    ├── commons-io:commons-io:2.16.1
    ├── org.apache.httpcomponents:httpasyncclient:4.0.2
    │   ├── org.apache.httpcomponents:httpcore:4.4.13
    │   ├── org.apache.httpcomponents:httpcore-nio:4.3.2
    │   ├── org.apache.httpcomponents:httpclient:4.5.13
    │   └── commons-logging:commons-logging:1.3.0
    ├── joda-time:joda-time:2.3
    ├── org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.1
    ├── javax.validation:validation-api:1.1.0.Final
    └── org.bouncycastle:bcprov-jdk15on:1.59

License Summary

Artifact Version License ASF Category APL 2.0?
com.baidubce:bce-java-sdk 0.10.330 Apache License 2.0 A Yes
org.apache.commons:commons-lang3 3.18.0 Apache License 2.0 A Yes
org.slf4j:slf4j-api 1.7.36 MIT License A Compatible
commons-codec:commons-codec 1.15 Apache License 2.0 A Yes
commons-io:commons-io 2.16.1 Apache License 2.0 A Yes
org.apache.httpcomponents:httpasyncclient 4.0.2 Apache License 2.0 A Yes
org.apache.httpcomponents:httpcore 4.4.13 Apache License 2.0 A Yes
org.apache.httpcomponents:httpcore-nio 4.3.2 Apache License 2.0 A Yes
org.apache.httpcomponents:httpclient 4.5.13 Apache License 2.0 A Yes
commons-logging:commons-logging 1.3.0 Apache License 2.0 A Yes
joda-time:joda-time 2.3 Apache License 2.0 A Yes
org.eclipse.paho:org.eclipse.paho.client.mqttv3 1.2.1 EPL 1.0 / EDL 1.0 B No
javax.validation:validation-api 1.1.0.Final Apache License 2.0 A Yes
org.bouncycastle:bcprov-jdk15on 1.59 MIT License (Bouncy Castle Licence) A Compatible

Result: 12 of 14 dependencies are Apache License 2.0. Two (slf4j-api, bcprov-jdk15on) are MIT — ASF Category A, fully compatible. One dependency (org.eclipse.paho:org.eclipse.paho.client.mqttv3) is EPL 1.0 — ASF Category B, requiring special handling.


Open-Source License Risks

Risk 1: org.eclipse.paho:org.eclipse.paho.client.mqttv3:1.2.1 — EPL 1.0 (ASF Category B)

JAR: org.eclipse.paho.client.mqttv3-1.2.1.jar

Risk: This library is dual-licensed under EPL 1.0 (Eclipse Public License) and EDL 1.0 (Eclipse Distribution License / BSD-3-Clause). EPL 1.0 is classified as ASF Category B — weak copyleft. Per ASF third-party licensing policy:

  • Category B dependencies must not appear in source releases
  • Category B dependencies may appear in binary distributions, but must be prominently labeled in LICENSE-binary and/or NOTICE-binary
  • The PR description claims "No changes required to LICENSE, LICENSE-binary, or NOTICE-binary files as dependencies are shaded and not exposed in distribution"this is incorrect. Shading does not eliminate licensing obligations; the EPL-licensed bytecode is still present in the shaded JAR

How to address (Option A — Preferred): Exclude the dependency in pom.xml. This is an MQTT client library with no obvious relevance to a Baidu Object Storage connector — it is almost certainly an unused transitive dependency of bce-java-sdk:

<dependency>
  <groupId>com.baidubce</groupId>
  <artifactId>bce-java-sdk</artifactId>
  <version>${bce-java-sdk.version}</version>
  <exclusions>
    <!-- existing exclusions... -->
    <exclusion>
      <groupId>org.eclipse.paho</groupId>
      <artifactId>org.eclipse.paho.client.mqttv3</artifactId>
    </exclusion>
  </exclusions>
</dependency>

How to address (Option B — If exclusion is not possible): If the BOS SDK demonstrably requires this library at runtime:

  1. Add an EPL 1.0 entry to LICENSE-binary documenting the inclusion
  2. Add an entry to NOTICE-binary if the library carries a NOTICE file
  3. Ensure the JAR is only included in binary distributions, never in source releases
  4. The shading relocation must also be documented (the EPL license text applies to the relocated classes under bfs.org.eclipse.paho.*)

Risk 2: org.bouncycastle:bcprov-jdk15on:1.59 — Known CVEs

JAR: bcprov-jdk15on-1.59.jar

Risk: While the Bouncy Castle Licence (MIT-style) is ASF Category A and license-compatible, version 1.59 (released 2018) has multiple known security vulnerabilities:

This is not a license risk per se, but a security and compliance risk — including a dependency with known, unpatched CVEs may fail OWASP dependency-check and could be flagged in ASF release audits.

How to address (Option A — Preferred): Exclude the dependency if it is not actually used by the hadoop-bos code path:

<exclusion>
  <groupId>org.bouncycastle</groupId>
  <artifactId>bcprov-jdk15on</artifactId>
</exclusion>

How to address (Option B): If the BOS SDK requires it at runtime, upgrade to a non-vulnerable version. Note that bcprov-jdk15on is EOL; the replacement artifact is bcprov-jdk18on (currently at 1.78+). This would need to be coordinated with the BOS SDK's compatibility.


Risk 3: Shading does not neutralize licensing obligations — PR description is misleading

Affected JARs: All shaded transitive dependencies

Risk: The PR description states: "No changes required to LICENSE, LICENSE-binary, or NOTICE-binary files as dependencies are shaded and not exposed in distribution." This reflects a fundamental misunderstanding of ASF licensing policy. Shading (bytecode relocation) changes the package namespace but does not change the license that applies to the code. Specifically:

  • The EPL 1.0 code from Eclipse Paho remains EPL 1.0 after relocation to bfs.org.eclipse.paho.*
  • The MIT code from Bouncy Castle and SLF4J remains MIT-licensed after relocation
  • Any NOTICE files from transitive dependencies must still be aggregated

How to address:

  1. If Risk 1 is resolved by excluding Eclipse Paho, the remaining dependencies are all Category A (APL 2.0 or MIT), which do not require LICENSE-binary entries but still require NOTICE-binary aggregation if they carry NOTICE files
  2. Audit each shaded dependency for NOTICE files and aggregate them
  3. Correct the PR description to accurately reflect licensing obligations

-->
<FindBugsFilter>
<Match>
<Class name="org.apache.hadoop.fs.bos.BosInputStream"/>

Choose a reason for hiding this comment

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

Which issues can be fixed? Additionally, it's better to suppress issues as precisely as possible rather than using broad suppressions.

BaiduBosConstants.BOS_STS_TOKEN_ENV);

if (LOG.isDebugEnabled()) {
LOG.debug("accessKey:{}", accessKey);

Choose a reason for hiding this comment

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

Access key, secret key, and session token are logged at DEBUG level. Credentials must never appear in logs.

* @throws IOException if an I/O error occurs during close
*/
@Override
public synchronized void close() throws IOException {

Choose a reason for hiding this comment

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

When close() encounters an exception (e.g., upload part failure), the multipart upload seems never aborted. Will the uploadId remain active on the server side, leading to storage leakage?

index);
}
} catch (Exception e) {
LOG.warn(

Choose a reason for hiding this comment

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

Exceptions from future.get() are caught and only logged as WARN. Seems execution continues to completeMultipartUpload, which will either succeed with incomplete data or throw IllegalStateException (unchecked, violating the OutputStream.close() contract).

LoggerFactory.getLogger(BosOutputStream.class);

/** The backing native file system store. */
public final BosNativeFileSystemStore store;

Choose a reason for hiding this comment

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

Nearly every field (store, key, uploadId, eTags, closed, etc.) is public. It is possible to change them to private (or private final).

@Override
public boolean truncate(Path f, long newLength)
throws IOException {
throw new IOException("Not supported");

Choose a reason for hiding this comment

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

should be UnsupportedOperationException

String key = pathToKey(absolutePath);
FileStatus status = this.getFileStatus(f);
if (status.isFile()) {
return new ContentSummary(status.getLen(), 1L, 0L);

Choose a reason for hiding this comment

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

can we use ContentSummary.Builder, 3-arg ContentSummary constructor already deprecated

* multipart upload. Data is written to an output buffer and
* then moved to an input buffer for uploading.
*/
public class BosBlockBuffer {

Choose a reason for hiding this comment

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

I think BosBlockBuffer should implements Closeable and close outBuffer and inBuffer in close() method

boundedThreadPool =
BlockingThreadPoolExecutorService.newInstance(
activeTasks,
waitingTasks,

Choose a reason for hiding this comment

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

Integer.MAX_VALUE / 2? Will it only increase the risk of OOM?

}

}
return response;

Choose a reason for hiding this comment

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

This method will silently returns null on invalid upload ID?

@roryqi
Copy link

roryqi commented Mar 19, 2026

There is also the risk of JAR package conflicts, such as the compatibility risks between Log4j 1.x and 2.x versions, as well as whether there are conflicts with some common packages and whether shading has been applied.

- Exclude EPL-licensed paho and CVE-affected bcprov-jdk15on deps
- Relocate shaded packages to org.apache.hadoop.fs.bos.shaded.*
- Remove jackson/commons-logging from shade (unused/bridged)
- Use skipITs instead of maven.test.skip following AWS model
- Fix BosOutputStream close() to abort multipart upload on failure
- Fix BceCredentialsProvider mutual recursion causing StackOverflow
- Fix BosInputStream close() synchronization and skip statistics
- Restore interrupt flag on InterruptedException in retry loops
- Cancel all futures on rename failure in NonHierarchyStore
- Shut down thread pool in BosNativeFileSystemStore.close()
- Add abortMultipartUpload to BosClientProxy interface
- Throw IOException on invalid upload ID in completeMultipartUpload
- Remove credential values from debug logs
- Fix delete() to check existence in hierarchy+recursive path
- Change BosOutputStream fields from public to private/private final
- Use UnsupportedOperationException for append() and truncate()
- Use ContentSummary.Builder instead of deprecated constructor
- Implement Closeable on BosBlockBuffer
- Use ThreadLocalRandom instead of Random in BosRandomRetryPolicy
- Remove misleading constructor from BaiduBosFileSystemAdapter
- Make findbugs-exclude.xml suppressions more precise
- Use getDeclaredConstructor().newInstance() instead of deprecated API
- Fix EnvironmentVariableCredentialsProvider logger class

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@hadoop-yetus
Copy link

💔 -1 overall

Vote Subsystem Runtime Logfile Comment
+0 🆗 reexec 0m 51s Docker mode activated.
_ Prechecks _
+1 💚 dupname 0m 1s No case conflicting files found.
+0 🆗 codespell 0m 1s codespell was not available.
+0 🆗 detsecrets 0m 1s detect-secrets was not available.
+0 🆗 xmllint 0m 1s xmllint 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 21 new or modified test files.
_ trunk Compile Tests _
+0 🆗 mvndep 2m 18s Maven dependency ordering for branch
+1 💚 mvninstall 51m 32s trunk passed
+1 💚 compile 18m 33s trunk passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 compile 18m 17s trunk passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 checkstyle 5m 53s trunk passed
+1 💚 mvnsite 3m 8s trunk passed
+1 💚 javadoc 3m 6s trunk passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javadoc 2m 59s trunk passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+0 🆗 spotbugs 0m 45s branch/hadoop-project no spotbugs output file (spotbugsXml.xml)
+0 🆗 spotbugs 0m 41s branch/hadoop-cloud-storage-project/hadoop-cloud-storage no spotbugs output file (spotbugsXml.xml)
+0 🆗 spotbugs 0m 43s branch/hadoop-cloud-storage-project/hadoop-cloud-storage-dist no spotbugs output file (spotbugsXml.xml)
+1 💚 shadedclient 33m 25s branch has no errors when building and testing our client artifacts.
_ Patch Compile Tests _
+0 🆗 mvndep 0m 35s Maven dependency ordering for patch
+1 💚 mvninstall 8m 5s the patch passed
+1 💚 compile 16m 51s the patch passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javac 16m 51s the patch passed
+1 💚 compile 18m 8s the patch passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+1 💚 javac 18m 8s the patch passed
+1 💚 blanks 0m 0s The patch has no blanks issues.
-0 ⚠️ checkstyle 5m 49s /results-checkstyle-root.txt root: The patch generated 25 new + 0 unchanged - 0 fixed = 25 total (was 0)
+1 💚 mvnsite 4m 0s the patch passed
+1 💚 javadoc 3m 52s the patch passed with JDK Ubuntu-21.0.10+7-Ubuntu-124.04
+1 💚 javadoc 4m 9s the patch passed with JDK Ubuntu-17.0.18+8-Ubuntu-124.04.1
+0 🆗 spotbugs 0m 43s hadoop-project has no data from spotbugs
-1 ❌ spotbugs 2m 24s /new-spotbugs-hadoop-cloud-storage-project.html hadoop-cloud-storage-project generated 1 new + 0 unchanged - 0 fixed = 1 total (was 0)
+0 🆗 spotbugs 0m 45s hadoop-cloud-storage-project/hadoop-cloud-storage has no data from spotbugs
+0 🆗 spotbugs 0m 45s hadoop-cloud-storage-project/hadoop-cloud-storage-dist has no data from spotbugs
+1 💚 shadedclient 33m 16s patch has no errors when building and testing our client artifacts.
_ Other Tests _
+1 💚 unit 0m 39s hadoop-project in the patch passed.
-1 ❌ unit 1m 5s /patch-unit-hadoop-cloud-storage-project_hadoop-bos.txt hadoop-bos in the patch passed.
-1 ❌ unit 2m 26s /patch-unit-hadoop-cloud-storage-project.txt hadoop-cloud-storage-project in the patch passed.
+1 💚 unit 0m 43s hadoop-cloud-storage in the patch passed.
+1 💚 unit 0m 43s hadoop-cloud-storage-dist in the patch passed.
+1 💚 asflicense 1m 11s The patch does not generate ASF License warnings.
260m 49s
Reason Tests
SpotBugs module:hadoop-cloud-storage-project
Dead store to status in org.apache.hadoop.fs.bos.BaiduBosFileSystem.delete(Path, boolean) At BaiduBosFileSystem.java:org.apache.hadoop.fs.bos.BaiduBosFileSystem.delete(Path, boolean) At BaiduBosFileSystem.java:[line 284]
Failed junit tests hadoop.fs.bos.contract.TestBosContractCreate
hadoop.fs.bos.contract.TestBosContractUnbuffer
hadoop.fs.bos.contract.TestBosContractConcat
hadoop.fs.bos.contract.TestBosContractGetFileStatus
hadoop.fs.bos.contract.TestBosContractMkdir
hadoop.fs.bos.contract.TestBosContractAppend
hadoop.fs.bos.contract.TestBosContractRootDir
hadoop.fs.bos.contract.TestBosContractOpen
hadoop.fs.bos.contract.TestBosContractContentSummary
hadoop.fs.bos.contract.TestBosContractSeek
hadoop.fs.bos.contract.TestBosContractSetTimes
hadoop.fs.bos.contract.TestBosContractRename
hadoop.fs.bos.contract.TestBosContractDelete
hadoop.fs.bos.contract.TestBosContractCreate
hadoop.fs.bos.contract.TestBosContractUnbuffer
hadoop.fs.bos.contract.TestBosContractConcat
hadoop.fs.bos.contract.TestBosContractGetFileStatus
hadoop.fs.bos.contract.TestBosContractMkdir
hadoop.fs.bos.contract.TestBosContractAppend
hadoop.fs.bos.contract.TestBosContractRootDir
hadoop.fs.bos.contract.TestBosContractOpen
hadoop.fs.bos.contract.TestBosContractContentSummary
hadoop.fs.bos.contract.TestBosContractSeek
hadoop.fs.bos.contract.TestBosContractSetTimes
hadoop.fs.bos.contract.TestBosContractRename
hadoop.fs.bos.contract.TestBosContractDelete
Subsystem Report/Notes
Docker ClientAPI=1.54 ServerAPI=1.54 base: https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8347/2/artifact/out/Dockerfile
GITHUB PR #8347
Optional Tests dupname asflicense codespell detsecrets xmllint compile javac javadoc mvninstall mvnsite unit shadedclient spotbugs checkstyle markdownlint
uname Linux d04ef8913be7 5.15.0-164-generic #174-Ubuntu SMP Fri Nov 14 20:25:16 UTC 2025 x86_64 x86_64 x86_64 GNU/Linux
Build tool maven
Personality dev-support/bin/hadoop.sh
git revision trunk / 62aad1a
Default Java Ubuntu-17.0.18+8-Ubuntu-124.04.1
Multi-JDK versions /usr/lib/jvm/java-21-openjdk-amd64:Ubuntu-21.0.10+7-Ubuntu-124.04 /usr/lib/jvm/java-17-openjdk-amd64:Ubuntu-17.0.18+8-Ubuntu-124.04.1
Test Results https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8347/2/testReport/
Max. process+thread count 572 (vs. ulimit of 5500)
modules C: hadoop-project hadoop-cloud-storage-project/hadoop-bos hadoop-cloud-storage-project hadoop-cloud-storage-project/hadoop-cloud-storage hadoop-cloud-storage-project/hadoop-cloud-storage-dist U: .
Console output https://ci-hadoop.apache.org/job/hadoop-multibranch/job/PR-8347/2/console
versions git=2.43.0 maven=3.9.11 spotbugs=4.9.7
Powered by Apache Yetus 0.14.1 https://yetus.apache.org

This message was automatically generated.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants