Skip to content

Conversation

@cwperks
Copy link
Member

@cwperks cwperks commented Jul 15, 2025

Description

This is an attempt to fix CI issues seen on PRs like opensearch-project/k-NN#2792 and opensearch-project/job-scheduler#797 after running tests with JDK 24.

Ref workflow run: https://github.com/opensearch-project/k-NN/actions/runs/16281232544/job/45971164781?pr=2792

Full snapshot of error:

RemoteIndexHTTPClientTests > testGetAndCloseHttpclient_success FAILED
    java.lang.SecurityException: Denied DELETE access to file: C:\Users\RUNNER~1\AppData\Local\Temp\socket_1401950378, domain: ProtectionDomain  (file:/C:/Users/runneradmin/.gradle/caches/modules-2/files-2.1/junit/junit/4.13.2/8ac9e16d933b6fb43bc7f576336b8f4d7eb5ba12/junit-4.13.2.jar <no signer certificates>)
     jdk.internal.loader.ClassLoaders$AppClassLoader@659e0bfd
     <no principals>
     java.security.Permissions@2dfd8e0f (
    )
        at java.base/sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:110)
        at java.base/java.nio.file.Files.deleteIfExists(Files.java:1084)
        at java.base/sun.nio.ch.PipeImpl$Initializer$LoopbackConnector.run(PipeImpl.java:160)
        at java.base/sun.nio.ch.PipeImpl$Initializer.init(PipeImpl.java:78)
        at java.base/sun.nio.ch.PipeImpl.<init>(PipeImpl.java:186)
        at java.base/sun.nio.ch.WEPollSelectorImpl.<init>(WEPollSelectorImpl.java:78)
        at java.base/sun.nio.ch.WEPollSelectorProvider.openSelector(WEPollSelectorProvider.java:33)
        at java.base/java.nio.channels.Selector.open(Selector.java:295)
        at org.opensearch.nio.NioSelector.<init>(NioSelector.java:81)
        at org.opensearch.nio.NioSelectorGroup.<init>(NioSelectorGroup.java:112)
        at org.opensearch.nio.NioSelectorGroup.<init>(NioSelectorGroup.java:82)
        at org.opensearch.transport.nio.MockNioTransport.doStart(MockNioTransport.java:142)
        at org.opensearch.common.lifecycle.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:77)
        at org.opensearch.transport.TransportService.doStart(TransportService.java:306)
        at org.opensearch.common.lifecycle.AbstractLifecycleComponent.start(AbstractLifecycleComponent.java:77)
        at org.opensearch.node.Node.start(Node.java:1730)
        at org.opensearch.test.OpenSearchSingleNodeTestCase.newNode(OpenSearchSingleNodeTestCase.java:299)
        at com.carrotsearch.randomizedtesting.RandomizedContext.runWithPrivateRandomness(RandomizedContext.java:187)
        at com.carrotsearch.randomizedtesting.RandomizedContext.runWithPrivateRandomness(RandomizedContext.java:211)
        at org.opensearch.test.OpenSearchSingleNodeTestCase.startNode(OpenSearchSingleNodeTestCase.java:109)
        at org.opensearch.test.OpenSearchSingleNodeTestCase.setUp(OpenSearchSingleNodeTestCase.java:148)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base/java.lang.reflect.Method.invoke(Method.java:565)
        at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1750)
        at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:972)
        at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:988)
        at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
        at org.junit.rules.RunRules.evaluate(RunRules.java:20)
        at org.apache.lucene.tests.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:48)
        at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
        at org.apache.lucene.tests.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:45)
        at org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
        at org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
        at org.junit.rules.RunRules.evaluate(RunRules.java:20)
        at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
        at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368)
        at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:817)
        at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:468)
        at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:947)
        at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:832)
        at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:883)
        at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:894)
        at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
        at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
        at org.apache.lucene.tests.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:38)
        at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
        at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
        at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
        at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
        at org.apache.lucene.tests.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53)
        at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
        at org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
        at org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
        at org.apache.lucene.tests.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:47)
        at org.junit.rules.RunRules.evaluate(RunRules.java:20)
        at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
        at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368)
        at java.base/java.lang.Thread.run(Thread.java:1447)

Link to error seen in job-scheduler: https://github.com/opensearch-project/job-scheduler/actions/runs/16224765197/job/45813987316

Related to this change in the JDK: openjdk/jdk24u@922b12f#diff-e3b15b354f90e593cfde2784f4b18b0dfb79b9845c08c5e90aac94c0ee53065a

Check List

  • Functionality includes testing.
  • API changes companion pull request created, if applicable.
  • Public documentation issue/PR created, if applicable.

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.

@cwperks cwperks requested a review from a team as a code owner July 15, 2025 02:22
Signed-off-by: Craig Perkins <[email protected]>
grant codeBase "${codebase.opensearch-nio}" {
// opensearch-nio makes and accepts socket connections
permission java.net.SocketPermission "*", "accept,resolve,connect";
permission java.io.FilePermission "${java.io.tmpdir}${/}-", "delete";
Copy link
Member Author

Choose a reason for hiding this comment

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

Should this be full permission to tmp, not just delete?

Copy link
Contributor

Choose a reason for hiding this comment

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

Copy link
Member Author

Choose a reason for hiding this comment

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

Is that permission globally applicable?

In the case of job-scheduler its failing saying that the test-framework does not have permission.

nested: SecurityException[Denied DELETE access to file: C:\Users\RUNNER~1\AppData\Local\Temp\socket_352975284, domain: ProtectionDomain  (file:/C:/Users/runneradmin/.gradle/caches/modules-2/files-2.1/org.opensearch.test/framework/3.2.0-SNAPSHOT/9abe315135b637ba8f0541717563257b6c68262e/framework-3.2.0-SNAPSHOT.jar <no signer certificates>)
     jdk.internal.loader.ClassLoaders$AppClassLoader@1540e19d
     <no principals>
     java.security.Permissions@6ad8bb7e (
    )

    ];
        at __randomizedtesting.SeedInfo.seed([7BBA49E01B0C78C6:C0E9A00E7D144B7]:0)
        at app//org.opensearch.test.ExternalTestCluster.<init>(ExternalTestCluster.java:188)
        at app//org.opensearch.test.ExternalTestCluster.<init>(ExternalTestCluster.java:200)
        at app//org.opensearch.test.OpenSearchIntegTestCase.buildExternalCluster(OpenSearchIntegTestCase.java:2029)
        at app//org.opensearch.test.OpenSearchIntegTestCase.buildTestCluster(OpenSearchIntegTestCase.java:2060)
        at app//org.opensearch.test.OpenSearchTestClusterRule.lambda$buildWithPrivateContext$3(OpenSearchTestClusterRule.java:230)
        at app//com.carrotsearch.randomizedtesting.RandomizedContext.runWithPrivateRandomness(RandomizedContext.java:187)
        at app//com.carrotsearch.randomizedtesting.RandomizedContext.runWithPrivateRandomness(RandomizedContext.java:211)
        at app//org.opensearch.test.OpenSearchTestClusterRule.buildWithPrivateContext(OpenSearchTestClusterRule.java:230)
        at app//org.opensearch.test.OpenSearchTestClusterRule.buildAndPutCluster(OpenSearchTestClusterRule.java:272)
        at app//org.opensearch.test.OpenSearchTestClusterRule.beforeInternal(OpenSearchTestClusterRule.java:156)
        at app//org.opensearch.test.OpenSearchTestClusterRule.before(OpenSearchTestClusterRule.java:172)
        at app//org.opensearch.test.OpenSearchTestClusterRule$1.evaluate(OpenSearchTestClusterRule.java:365)
        at app//com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)

Copy link
Member Author

@cwperks cwperks Jul 15, 2025

Choose a reason for hiding this comment

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

@cwperks
Copy link
Member Author

cwperks commented Jul 15, 2025

Job Scheduler error is slightly different: https://github.com/opensearch-project/job-scheduler/actions/runs/16224765197/job/45813987316

JobSchedulerBackwardsCompatibilityIT > testBackwardsCompatibility FAILED
    java.lang.SecurityException: Denied DELETE access to file: C:\Users\RUNNER~1\AppData\Local\Temp\socket_435607244, domain: ProtectionDomain  (file:/C:/Users/runneradmin/.gradle/caches/modules-2/files-2.1/org.apache.httpcomponents.core5/httpcore5/5.3.4/ea47f0fe6e00ffb07cec3a0cb1bb801b1a9cc353/httpcore5-5.3.4.jar <no signer certificates>)
     jdk.internal.loader.ClassLoaders$AppClassLoader@1540e19d
     <no principals>
     java.security.Permissions@6605ca5f (
    )
        at java.base/sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:110)
        at java.base/java.nio.file.Files.deleteIfExists(Files.java:1084)
        at java.base/sun.nio.ch.PipeImpl$Initializer$LoopbackConnector.run(PipeImpl.java:160)
        at java.base/sun.nio.ch.PipeImpl$Initializer.init(PipeImpl.java:78)
        at java.base/sun.nio.ch.PipeImpl.<init>(PipeImpl.java:186)
        at java.base/sun.nio.ch.WEPollSelectorImpl.<init>(WEPollSelectorImpl.java:78)
        at java.base/sun.nio.ch.WEPollSelectorProvider.openSelector(WEPollSelectorProvider.java:33)
        at java.base/java.nio.channels.Selector.open(Selector.java:295)
        at org.apache.hc.core5.reactor.AbstractSingleCoreIOReactor.<init>(AbstractSingleCoreIOReactor.java:66)
        at org.apache.hc.core5.reactor.SingleCoreIOReactor.<init>(SingleCoreIOReactor.java:79)
        at org.apache.hc.core5.reactor.DefaultConnectingIOReactor.<init>(DefaultConnectingIOReactor.java:71)
        at org.apache.hc.client5.http.impl.async.HttpAsyncClientBuilder.build(HttpAsyncClientBuilder.java:1070)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:74)
        at org.opensearch.client.RestClientBuilder.createHttpClient(RestClientBuilder.java:344)
        at java.base/java.security.AccessController.doPrivileged(AccessController.java:74)
        at org.opensearch.client.RestClientBuilder.build(RestClientBuilder.java:272)
        at org.opensearch.jobscheduler.sampleextension.SampleExtensionIntegTestCase.buildClient(SampleExtensionIntegTestCase.java:119)
        at org.opensearch.test.rest.OpenSearchRestTestCase.initClient(OpenSearchRestTestCase.java:211)
        at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104)
        at java.base/java.lang.reflect.Method.invoke(Method.java:565)
        at com.carrotsearch.randomizedtesting.RandomizedRunner.invoke(RandomizedRunner.java:1750)
        at com.carrotsearch.randomizedtesting.RandomizedRunner$9.evaluate(RandomizedRunner.java:972)
        at com.carrotsearch.randomizedtesting.RandomizedRunner$10.evaluate(RandomizedRunner.java:988)
        at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
        at org.junit.rules.RunRules.evaluate(RunRules.java:20)
        at org.apache.lucene.tests.util.TestRuleSetupTeardownChained$1.evaluate(TestRuleSetupTeardownChained.java:48)
        at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
        at org.apache.lucene.tests.util.TestRuleThreadAndTestName$1.evaluate(TestRuleThreadAndTestName.java:45)
        at org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
        at org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
        at org.junit.rules.RunRules.evaluate(RunRules.java:20)
        at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
        at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368)
        at com.carrotsearch.randomizedtesting.ThreadLeakControl.forkTimeoutingTask(ThreadLeakControl.java:817)
        at com.carrotsearch.randomizedtesting.ThreadLeakControl$3.evaluate(ThreadLeakControl.java:468)
        at com.carrotsearch.randomizedtesting.RandomizedRunner.runSingleTest(RandomizedRunner.java:947)
        at com.carrotsearch.randomizedtesting.RandomizedRunner$5.evaluate(RandomizedRunner.java:832)
        at com.carrotsearch.randomizedtesting.RandomizedRunner$6.evaluate(RandomizedRunner.java:883)
        at com.carrotsearch.randomizedtesting.RandomizedRunner$7.evaluate(RandomizedRunner.java:894)
        at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
        at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
        at org.apache.lucene.tests.util.TestRuleStoreClassName$1.evaluate(TestRuleStoreClassName.java:38)
        at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
        at com.carrotsearch.randomizedtesting.rules.NoShadowingOrOverridesOnMethodsRule$1.evaluate(NoShadowingOrOverridesOnMethodsRule.java:40)
        at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
        at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
        at org.apache.lucene.tests.util.TestRuleAssertionsRequired$1.evaluate(TestRuleAssertionsRequired.java:53)
        at org.apache.lucene.tests.util.AbstractBeforeAfterRule$1.evaluate(AbstractBeforeAfterRule.java:43)
        at org.apache.lucene.tests.util.TestRuleMarkFailure$1.evaluate(TestRuleMarkFailure.java:44)
        at org.apache.lucene.tests.util.TestRuleIgnoreAfterMaxFailures$1.evaluate(TestRuleIgnoreAfterMaxFailures.java:60)
        at org.apache.lucene.tests.util.TestRuleIgnoreTestSuites$1.evaluate(TestRuleIgnoreTestSuites.java:47)
        at org.junit.rules.RunRules.evaluate(RunRules.java:20)
        at com.carrotsearch.randomizedtesting.rules.StatementAdapter.evaluate(StatementAdapter.java:36)
        at com.carrotsearch.randomizedtesting.ThreadLeakControl$StatementRunner.run(ThreadLeakControl.java:368)
        at java.base/java.lang.Thread.run(Thread.java:1447)

@github-actions
Copy link
Contributor

❌ Gradle check result for b0d4384: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

@github-actions
Copy link
Contributor

❌ Gradle check result for b0d4384: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

@github-actions
Copy link
Contributor

❌ Gradle check result for 914e3e6: null

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

@github-actions
Copy link
Contributor

❌ Gradle check result for 30e4602: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

Signed-off-by: Craig Perkins <[email protected]>
@github-actions
Copy link
Contributor

❌ Gradle check result for a96524b: FAILURE

Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change?

@github-actions
Copy link
Contributor

✅ Gradle check result for c5f2545: SUCCESS

@codecov
Copy link

codecov bot commented Jul 15, 2025

Codecov Report

Attention: Patch coverage is 50.00000% with 2 lines in your changes missing coverage. Please review.

Project coverage is 72.77%. Comparing base (8f69dcf) to head (c5f2545).
Report is 4 commits behind head on main.

Files with missing lines Patch % Lines
.../src/main/java/org/opensearch/nio/NioSelector.java 50.00% 2 Missing ⚠️
Additional details and impacted files
@@             Coverage Diff              @@
##               main   #18752      +/-   ##
============================================
- Coverage     72.79%   72.77%   -0.03%     
+ Complexity    68525    68491      -34     
============================================
  Files          5574     5563      -11     
  Lines        314807   314440     -367     
  Branches      45675    45627      -48     
============================================
- Hits         229178   228830     -348     
- Misses        67046    67054       +8     
+ Partials      18583    18556      -27     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@cwperks
Copy link
Member Author

cwperks commented Jul 16, 2025

Closing in favor of #18764

@cwperks cwperks closed this Jul 16, 2025
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.

2 participants