diff --git a/plugins/arrow-flight-rpc/build.gradle b/plugins/arrow-flight-rpc/build.gradle index 8ef99fb5829f0..a437ce9820108 100644 --- a/plugins/arrow-flight-rpc/build.gradle +++ b/plugins/arrow-flight-rpc/build.gradle @@ -60,6 +60,10 @@ dependencies { } } +tasks.internalClusterTest { + jvmArgs += ["--add-opens", "java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED"] +} + tasks.named('test').configure { jacoco { excludes = ['org/apache/arrow/flight/**'] diff --git a/plugins/arrow-flight-rpc/src/main/plugin-metadata/plugin-security.policy b/plugins/arrow-flight-rpc/src/main/plugin-metadata/plugin-security.policy index 984c7a6de89b9..5626d8cb250f6 100644 --- a/plugins/arrow-flight-rpc/src/main/plugin-metadata/plugin-security.policy +++ b/plugins/arrow-flight-rpc/src/main/plugin-metadata/plugin-security.policy @@ -16,7 +16,7 @@ grant codeBase "${codebase.grpc-core}" { permission java.lang.RuntimePermission "*", "setContextClassLoader"; }; -grant codeBase "${codebase.arrow-flight-rpc}" { +grant { // arrow flight service permissions permission java.util.PropertyPermission "arrow.allocation.manager.type", "write"; permission java.util.PropertyPermission "arrow.enable_null_check_for_get", "write"; diff --git a/plugins/arrow-flight-rpc/src/test/java/org/opensearch/arrow/flight/bootstrap/FlightClientManagerTests.java b/plugins/arrow-flight-rpc/src/test/java/org/opensearch/arrow/flight/bootstrap/FlightClientManagerTests.java index c189468195f98..f9bcc276b3776 100644 --- a/plugins/arrow-flight-rpc/src/test/java/org/opensearch/arrow/flight/bootstrap/FlightClientManagerTests.java +++ b/plugins/arrow-flight-rpc/src/test/java/org/opensearch/arrow/flight/bootstrap/FlightClientManagerTests.java @@ -219,7 +219,7 @@ public void testClusterChangedWithNodesChanged() throws Exception { for (DiscoveryNode node : newState.nodes()) { assertBusy( () -> { assertNotNull("Flight client isn't built in time limit", clientManager.getFlightClient(node.getId())); }, - 2, + 5, TimeUnit.SECONDS ); } @@ -375,17 +375,16 @@ public void testFailedClusterUpdateButSuccessfulDirectRequest() throws Exception ClusterChangedEvent event = new ClusterChangedEvent("test", newState, ClusterState.EMPTY_STATE); clientManager.clusterChanged(event); - + assertBusy(() -> { assertFalse("first call should be invoked", firstCall.get()); }, 5, TimeUnit.SECONDS); // Verify that the client can still be created successfully on direct request clientManager.buildClientAsync(nodeId); assertBusy( () -> { assertNotNull("Flight client should be created successfully on direct request", clientManager.getFlightClient(nodeId)); }, - 2, + 5, TimeUnit.SECONDS ); - assertFalse("first call should be invoked", firstCall.get()); } private void validateNodes() { diff --git a/plugins/arrow-flight-rpc/src/test/resources/org/opensearch/bootstrap/test.policy b/plugins/arrow-flight-rpc/src/test/resources/org/opensearch/bootstrap/test.policy deleted file mode 100644 index 5626d8cb250f6..0000000000000 --- a/plugins/arrow-flight-rpc/src/test/resources/org/opensearch/bootstrap/test.policy +++ /dev/null @@ -1,45 +0,0 @@ -/* - * SPDX-License-Identifier: Apache-2.0 - * - * The OpenSearch Contributors require contributions made to - * this file be licensed under the Apache-2.0 license or a - * compatible open source license. - */ - -grant codeBase "${codebase.grpc-netty-shaded}" { - permission java.net.SocketPermission "*", "accept,connect,listen,resolve"; - permission java.lang.RuntimePermission "*", "setContextClassLoader"; -}; - -grant codeBase "${codebase.grpc-core}" { - permission java.net.SocketPermission "*", "accept,connect,listen,resolve"; - permission java.lang.RuntimePermission "*", "setContextClassLoader"; -}; - -grant { - // arrow flight service permissions - permission java.util.PropertyPermission "arrow.allocation.manager.type", "write"; - permission java.util.PropertyPermission "arrow.enable_null_check_for_get", "write"; - permission java.util.PropertyPermission "arrow.enable_unsafe_memory_access", "write"; - permission java.util.PropertyPermission "arrow.memory.debug.allocator", "write"; - - permission java.util.PropertyPermission "io.netty.tryReflectionSetAccessible", "write"; - permission java.util.PropertyPermission "io.netty.allocator.numDirectArenas", "write"; - permission java.util.PropertyPermission "io.netty.noUnsafe", "write"; - permission java.util.PropertyPermission "io.netty.tryUnsafe", "write"; - - // Needed for netty based arrow flight server for netty configs related to buffer allocator - permission java.lang.reflect.ReflectPermission "suppressAccessChecks"; - permission java.util.PropertyPermission "arrow.allocation.manager.type", "write"; - - permission java.lang.RuntimePermission "modifyThreadGroup"; - permission java.lang.RuntimePermission "modifyThread"; - permission java.net.SocketPermission "*", "accept,connect,listen,resolve"; - - // Reflection access needed by Arrow - permission java.lang.RuntimePermission "accessDeclaredMembers"; - permission java.lang.reflect.ReflectPermission "suppressAccessChecks"; - - // Memory access - permission java.lang.RuntimePermission "accessClassInPackage.sun.misc"; -}; diff --git a/server/src/main/java/org/opensearch/common/util/FeatureFlags.java b/server/src/main/java/org/opensearch/common/util/FeatureFlags.java index 4f0462f0b5cdd..4be45aed70023 100644 --- a/server/src/main/java/org/opensearch/common/util/FeatureFlags.java +++ b/server/src/main/java/org/opensearch/common/util/FeatureFlags.java @@ -129,7 +129,7 @@ public class FeatureFlags { ); public static final String ARROW_STREAMS = "opensearch.experimental.feature.arrow.streams.enabled"; - public static final Setting ARROW_STREAMS_SETTING = Setting.boolSetting(ARROW_STREAMS, true, Property.NodeScope); + public static final Setting ARROW_STREAMS_SETTING = Setting.boolSetting(ARROW_STREAMS, false, Property.NodeScope); private static final List> ALL_FEATURE_FLAG_SETTINGS = List.of( REMOTE_STORE_MIGRATION_EXPERIMENTAL_SETTING,