Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
d9f030c
Re-enable surefire fork on hadoop-yarn-server-timelineservice-hbase-t…
pan3793 Oct 12, 2024
99f5125
GHA
pan3793 Oct 12, 2024
1846e81
exclude more tests
pan3793 Apr 22, 2026
a4026ef
split hdfs tests into slow and other groups
pan3793 Apr 22, 2026
27cddbb
exclude more tests
pan3793 Apr 22, 2026
bd167da
parallel 8
pan3793 Apr 22, 2026
f899d86
exclude more tests
pan3793 Apr 23, 2026
d693269
license
pan3793 Apr 23, 2026
265f38c
exclude more tests
pan3793 Apr 23, 2026
0d5dd5a
exclude more tests
pan3793 Apr 23, 2026
577e329
exclude more tests
pan3793 Apr 23, 2026
fb9cded
exclude more tests
pan3793 Apr 23, 2026
66e30f7
exclude more tests
pan3793 Apr 23, 2026
d3e6e6c
exclude more tests
pan3793 Apr 23, 2026
5856ddd
exclude more tests
pan3793 Apr 23, 2026
c194d52
exclude more tests
pan3793 Apr 24, 2026
080e4ad
update docs
pan3793 Apr 24, 2026
317930b
exclude more tests
pan3793 Apr 24, 2026
4a50266
empty
pan3793 Apr 24, 2026
0370115
exclude more tests
pan3793 Apr 24, 2026
a9fcd2f
exclude more tests
pan3793 Apr 24, 2026
d0fd3d6
empty
pan3793 Apr 24, 2026
98c1525
exclude more tests
pan3793 Apr 27, 2026
863d556
exclude more tests
pan3793 Apr 27, 2026
d25401e
exclude more tests
pan3793 Apr 27, 2026
1372fb3
exclude more tests
pan3793 Apr 27, 2026
31309e5
exclude more tests
pan3793 Apr 28, 2026
4273acc
surefire.rerunFailingTestsCount=2
pan3793 Apr 28, 2026
61d5086
exclude more tests
pan3793 Apr 29, 2026
3655c41
document slow tests
pan3793 May 8, 2026
d7960fb
test GITHUB_ACTIONS
pan3793 May 8, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
63 changes: 63 additions & 0 deletions .github/gha-tests/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->

### Excluded tests for GitHub Actions (GHA)

Initial excluded tests: run the GHA workflow, if a test fails or aborts, add it
to `exclude-tests.txt`. Repeat until 5 consecutive successes.

Contributors are encouraged to diagnose and improve the excluded tests, and remove
them from the excluded list once they are stable. Stability assessment: when deleting
tests from `exclude-tests.txt`, the GHA workflow was successfully executed 5 times
consecutively.

### Slow tests

Test classes takes more than 60s to complete in module `hadoop-hdfs-project/hadoop-hdfs`
are marked as slow tests, by adding JUnit5 annotation `@Tag("slow")` to the test class.

Slow tests are executed in a dedicated GHA job and roughly take 2.5 hours to complete.
Contributors are encouraged to diagnose and improve the slow tests to speed up the CI.

### Run test locally

Create a standard build environment using Docker.
```
$ cd <hadoop source code directory>
$ ./start-build-env.sh
... (wait for the container to start)
```

Run single test suite inside container
```
$ export MAVEN_ARGS="-Pnative -Drequire.fuse -Drequire.openssl -Drequire.snappy -Drequire.valgrind -Drequire.test.libhadoop"
$ ./mvnw $MAVEN_ARGS -pl :hadoop-common -am clean install -DskipTests
$ ./mvnw $MAVEN_ARGS -pl :hadoop-common test -Dtest=TestIPC
```

Run all tests inside container and save the log to a file, then extract the failed
test cases from the log file. This might take a dozen of hours, be patient.
```
$ export MAVEN_ARGS="-Pnative -Drequire.fuse -Drequire.openssl -Drequire.snappy -Drequire.valgrind -Drequire.test.libhadoop"
$ ./mvnw $MAVEN_ARGS clean install -DskipTests
$ ./mvnw $MAVEN_ARGS test --fail-at-end -Dmaven.test.failure.ignore=true \
-Dsurefire.excludesFile=$PWD/.github/gha-tests/exclude-tests.txt \
2>&1 | tee ~/hadoop-test.`date '+%Y%m%d'`.log
$ cat hadoop-test.`date '+%Y%m%d'`.log | \
grep -E 'surefire:3.5.3:test|<<< FAILURE! - in' | \
grep -o -E 'surefire:3.5.3:test.*|org.apache.hadoop.*'
```
206 changes: 206 additions & 0 deletions .github/gha-tests/exclude-tests.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,206 @@
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#

# hadoop-common
**/org/apache/hadoop/ipc/TestRPC.java
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Which of these are just slow, and which tests are flaky / failures? Would be good to leave comments here and separate into sections, e.g.

# hadoop-hdfs
...
# slow
...
# flaky

for each project.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

this list does not contain slow tests, only flaky or consistently failing cases

TBH, it will take a lot of effort to classify that, but it might not be worth doing. Contributors who want to improve it are easy to classify by running the test locally a few times, fixing a flaky or consistently failing test does not have much difference IMO

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Agreed. Please add a comment at the top of the file, e.g. "Flaky and/or broken tests needing attention.". The intention is that we will fix or remove these over time. Slow tests are handled with the annotation. 👍

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I updated the README.md under the same folder to explain that

**/org/apache/hadoop/security/ssl/TestDelegatingSSLSocketFactory.java

# hadoop-hdfs
**/org/apache/hadoop/fs/viewfs/TestViewFileSystemHdfs.java
**/org/apache/hadoop/hdfs/TestBlockStoragePolicy.java
**/org/apache/hadoop/hdfs/TestDecommission.java
**/org/apache/hadoop/hdfs/TestDecommissionWithBackoffMonitor.java
**/org/apache/hadoop/hdfs/TestDecommissionWithStriped.java
**/org/apache/hadoop/hdfs/TestDFSClientRetries.java
**/org/apache/hadoop/hdfs/TestDFSUtil.java
**/org/apache/hadoop/hdfs/TestFileCreation.java
**/org/apache/hadoop/hdfs/TestMaintenanceState.java
**/org/apache/hadoop/hdfs/TestPread.java
**/org/apache/hadoop/hdfs/TestReconstructStripedFile.java
**/org/apache/hadoop/hdfs/TestReconstructStripedFileWithRandomECPolicy.java
**/org/apache/hadoop/hdfs/TestReconstructStripedFileWithValidator.java
**/org/apache/hadoop/hdfs/TestReplaceDatanodeFailureReplication.java
**/org/apache/hadoop/hdfs/client/impl/TestBlockReaderLocal.java
**/org/apache/hadoop/hdfs/server/balancer/TestBalancer.java
**/org/apache/hadoop/hdfs/server/balancer/TestBalancerRPCDelay.java
**/org/apache/hadoop/hdfs/server/balancer/TestBalancerWithHANameNodes.java
**/org/apache/hadoop/hdfs/server/balancer/TestBalancerWithMultipleNameNodes.java
**/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockReportLease.java
**/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockTokenWithDFSStriped.java
**/org/apache/hadoop/hdfs/server/blockmanagement/TestBlockTokenWithShortCircuitRead.java
**/org/apache/hadoop/hdfs/server/datanode/TestBPOfferService.java
**/org/apache/hadoop/hdfs/server/datanode/TestDataNodeErasureCodingMetrics.java
**/org/apache/hadoop/hdfs/server/datanode/TestDataNodeVolumeFailureReporting.java
**/org/apache/hadoop/hdfs/server/datanode/TestDirectoryScanner.java
**/org/apache/hadoop/hdfs/server/namenode/TestEditLogRace.java
**/org/apache/hadoop/hdfs/server/namenode/TestFsck.java
**/org/apache/hadoop/hdfs/server/namenode/TestNameNodeMXBean.java
**/org/apache/hadoop/hdfs/server/namenode/ha/TestUpdateBlockTailing.java
**/org/apache/hadoop/hdfs/server/datanode/TestIncrementalBlockReports.java
**/org/apache/hadoop/hdfs/server/datanode/fsdataset/impl/TestFsVolumeList.java
**/org/apache/hadoop/hdfs/server/namenode/TestCacheDirectivesWithViewDFS.java
**/org/apache/hadoop/hdfs/server/namenode/TestCacheDirectives.java
**/org/apache/hadoop/hdfs/server/namenode/TestReconstructStripedBlocks.java
**/org/apache/hadoop/hdfs/server/namenode/TestFileTruncate.java
**/org/apache/hadoop/hdfs/server/namenode/ha/TestBootstrapStandbyWithQJM.java
**/org/apache/hadoop/hdfs/server/namenode/ha/TestDFSUpgradeWithHA.java
**/org/apache/hadoop/hdfs/server/namenode/ha/TestHAStateTransitions.java
**/org/apache/hadoop/hdfs/server/namenode/ha/TestObserverReadProxyProvider.java
**/org/apache/hadoop/hdfs/server/namenode/web/resources/TestWebHdfsDataLocality.java
**/org/apache/hadoop/hdfs/web/TestWebHdfsTimeouts.java
**/org/apache/hadoop/hdfs/web/TestFSMainOperationsWebHdfs.java

# hadoop-hdfs-httpfs
**/org/apache/hadoop/fs/http/client/TestHttpFSWithHttpFSFileSystem.java

# hadoop-yarn-common
**/org/apache/hadoop/yarn/util/TestProcfsBasedProcessTree.java
**/org/apache/hadoop/yarn/webapp/TestWebApp.java

# hadoop-yarn-server-common
**/org/apache/hadoop/yarn/server/federation/policies/router/TestPriorityRouterPolicy.java
**/org/apache/hadoop/yarn/server/federation/store/sql/TestFederationSQLServerScriptAccuracy.java

# hadoop-yarn-server-resourcemanager
**/org/apache/hadoop/yarn/server/resourcemanager/TestAppManager.java
**/org/apache/hadoop/yarn/server/resourcemanager/TestRMRestart.java
**/org/apache/hadoop/yarn/server/resourcemanager/monitor/invariants/TestMetricsInvariantChecker.java
**/org/apache/hadoop/yarn/server/resourcemanager/recovery/TestLeveldbRMStateStore.java
**/org/apache/hadoop/yarn/server/resourcemanager/reservation/TestCapacityOverTimePolicy.java
**/org/apache/hadoop/yarn/server/resourcemanager/scheduler/TestSchedulingWithAllocationRequestId.java
**/org/apache/hadoop/yarn/server/resourcemanager/scheduler/fair/TestContinuousScheduling.java
**/org/apache/hadoop/yarn/server/resourcemanager/security/TestDelegationTokenRenewer.java

# hadoop-yarn-server-router
**/org/apache/hadoop/yarn/server/router/webapp/TestFederationInterceptorREST.java
**/org/apache/hadoop/yarn/server/router/webapp/TestFederationWebApp.java
**/org/apache/hadoop/yarn/server/router/webapp/TestRouterWebServicesREST.java
**/org/apache/hadoop/yarn/server/router/subcluster/fair/TestYarnFederationWithFairScheduler.java

# hadoop-yarn-server-nodemanager
**/org/apache/hadoop/yarn/server/nodemanager/TestLinuxContainerExecutorWithMocks.java
**/org/apache/hadoop/yarn/server/nodemanager/TestNodeManagerResync.java
**/org/apache/hadoop/yarn/server/nodemanager/TestNodeStatusUpdater.java
**/org/apache/hadoop/yarn/server/nodemanager/amrmproxy/TestFederationInterceptor.java
**/org/apache/hadoop/yarn/server/nodemanager/amrmproxy/TestFederationInterceptorSecure.java
**/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestAuxServices.java
**/org/apache/hadoop/yarn/server/nodemanager/containermanager/TestContainerManagerRecovery.java
**/org/apache/hadoop/yarn/server/nodemanager/containermanager/launcher/TestContainerLaunch.java
**/org/apache/hadoop/yarn/server/nodemanager/containermanager/localizer/TestContainerLocalizer.java
**/org/apache/hadoop/yarn/server/nodemanager/containermanager/logaggregation/TestLogAggregationService.java
**/org/apache/hadoop/yarn/server/nodemanager/containermanager/monitor/TestContainersMonitor.java
**/org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/fpga/TestFpgaDiscoverer.java

# hadoop-yarn-server-tests
**/org/apache/hadoop/yarn/server/TestRMNMSecretKeys.java

# hadoop-yarn-services-core
**/org/apache/hadoop/yarn/service/TestYarnNativeServices.java

# hadoop-yarn-client
**/org/apache/hadoop/yarn/client/TestApplicationClientProtocolOnHA.java
**/org/apache/hadoop/yarn/client/TestApplicationMasterServiceProtocolForTimelineV2.java
**/org/apache/hadoop/yarn/client/TestApplicationMasterServiceProtocolOnHA.java
**/org/apache/hadoop/yarn/client/TestResourceTrackerOnHA.java
**/org/apache/hadoop/yarn/client/TestRMFailover.java
**/org/apache/hadoop/yarn/client/api/impl/TestAMRMClient.java

# hadoop-mapreduce-client-shuffle
**/org/apache/hadoop/mapred/TestShuffleChannelHandler.java

# hadoop-mapreduce-client-app
**/org/apache/hadoop/mapreduce/v2/app/TestJobEndNotifier.java

# hadoop-mapreduce-client-jobclient
**/org/apache/hadoop/mapred/TestJobSysDirWithDFS.java
**/org/apache/hadoop/mapred/TestMerge.java
**/org/apache/hadoop/mapred/TestMiniMRChildTask.java
**/org/apache/hadoop/mapred/TestClusterMapReduceTestCase.java
**/org/apache/hadoop/mapred/TestReduceFetchFromPartialMem.java
**/org/apache/hadoop/mapred/TestMiniMRWithDFSWithDistinctUsers.java
**/org/apache/hadoop/mapred/TestLazyOutput.java
**/org/apache/hadoop/mapred/TestJobName.java
**/org/apache/hadoop/mapred/TestMiniMRClasspath.java
**/org/apache/hadoop/mapred/TestJobCounters.java
**/org/apache/hadoop/mapred/TestMRTimelineEventHandling.java
**/org/apache/hadoop/mapred/TestMiniMRClientCluster.java
**/org/apache/hadoop/mapred/TestClusterMRNotification.java
**/org/apache/hadoop/mapred/TestJobCleanup.java
**/org/apache/hadoop/mapred/TestReduceFetch.java
**/org/apache/hadoop/mapred/pipes/TestPipeApplication.java
**/org/apache/hadoop/mapreduce/TestMRJobClient.java
**/org/apache/hadoop/mapreduce/lib/output/TestJobOutputCommitter.java
**/org/apache/hadoop/mapreduce/TestChild.java
**/org/apache/hadoop/mapreduce/v2/TestMROldApiJobs.java
**/org/apache/hadoop/mapreduce/v2/TestMiniMRProxyUser.java
**/org/apache/hadoop/mapreduce/v2/TestMRJobsWithHistoryService.java
**/org/apache/hadoop/mapreduce/v2/TestMRAMWithNonNormalizedCapabilities.java
**/org/apache/hadoop/mapreduce/v2/TestUberAM.java
**/org/apache/hadoop/mapreduce/v2/TestSpeculativeExecution.java
**/org/apache/hadoop/mapreduce/v2/TestMRJobsWithProfiler.java
**/org/apache/hadoop/mapreduce/security/TestMRCredentials.java
**/org/apache/hadoop/mapreduce/security/TestBinaryTokenFile.java
**/org/apache/hadoop/mapreduce/security/ssl/TestEncryptedShuffle.java
**/org/apache/hadoop/mapreduce/TestMapReduceLazyOutput.java
**/org/apache/hadoop/mapreduce/TestLargeSort.java

# hadoop-hdfs-rbf
**/org/apache/hadoop/hdfs/server/federation/router/TestConnectionManager.java
**/org/apache/hadoop/hdfs/server/federation/router/TestRouterClientRejectOverload.java
**/org/apache/hadoop/hdfs/server/federation/router/TestRouterFaultTolerant.java
**/org/apache/hadoop/hdfs/server/federation/router/TestRouterNamenodeHeartbeat.java
**/org/apache/hadoop/hdfs/server/federation/router/async/TestRouterAsyncRpcClient.java
**/org/apache/hadoop/hdfs/server/federation/router/async/TestRouterAsyncRPCMultipleDestinationMountTableResolver.java
**/org/apache/hadoop/hdfs/server/federation/router/security/token/TestSQLDelegationTokenSecretManagerImpl.java

# hadoop-yarn-server-timelineservice-documentstore
**/org/apache/hadoop/yarn/server/timelineservice/documentstore/TestDocumentStoreTimelineWriterImpl.java
**/org/apache/hadoop/yarn/server/timelineservice/documentstore/TestDocumentStoreCollectionCreator.java
**/org/apache/hadoop/yarn/server/timelineservice/documentstore/reader/cosmosdb/TestCosmosDBDocumentStoreReader.java
**/org/apache/hadoop/yarn/server/timelineservice/documentstore/writer/cosmosdb/TestCosmosDBDocumentStoreWriter.java
**/org/apache/hadoop/yarn/server/timelineservice/documentstore/TestDocumentStoreTimelineReaderImpl.java

# hadoop-yarn-applications-catalog-webapp
# skip module because it uses com.github.searls:jasmine-maven-plugin:2.1:test and requires Web Browser

# hadoop-streaming
**/org/apache/hadoop/streaming/TestMultipleArchiveFiles.java
**/org/apache/hadoop/streaming/TestMultipleCachefiles.java
**/org/apache/hadoop/streaming/TestSymLink.java
**/org/apache/hadoop/streaming/TestFileArgs.java

# hadoop-gridmix
**/org/apache/hadoop/mapred/gridmix/TestGridmixSubmission.java
**/org/apache/hadoop/mapred/gridmix/TestLoadJob.java
**/org/apache/hadoop/mapred/gridmix/TestSleepJob.java
**/org/apache/hadoop/mapred/gridmix/TestDistCacheEmulation.java

# hadoop-extras
**/org/apache/hadoop/tools/TestDistCh.java

# hadoop-sls
**/org/apache/hadoop/yarn/sls/TestSLSDagAMSimulator.java
**/org/apache/hadoop/yarn/sls/TestSLSGenericSynth.java
**/org/apache/hadoop/yarn/sls/TestSLSStreamAMSynth.java
**/org/apache/hadoop/yarn/sls/TestSLSRunner.java
**/org/apache/hadoop/yarn/sls/TestReservationSystemInvariants.java
**/org/apache/hadoop/yarn/sls/appmaster/TestAMSimulator.java

# hadoop-aws
**/org/apache/hadoop/fs/s3a/auth/TestIAMInstanceCredentialsProvider.java
Loading
Loading