diff --git a/community/kernel/src/main/java/org/neo4j/graphdb/factory/GraphDatabaseSettings.java b/community/kernel/src/main/java/org/neo4j/graphdb/factory/GraphDatabaseSettings.java index c866303f3f783..8aecda9dd83b1 100644 --- a/community/kernel/src/main/java/org/neo4j/graphdb/factory/GraphDatabaseSettings.java +++ b/community/kernel/src/main/java/org/neo4j/graphdb/factory/GraphDatabaseSettings.java @@ -209,7 +209,7 @@ public abstract class GraphDatabaseSettings setting( "unsupported.dbms.transaction_start_timeout", DURATION, "1s" ); @Description("The maximum time interval of a transaction within which it should be completed.") - public static final Setting transaction_timeout = setting( "dbms.transaction.timeout", DURATION, "60s" ); + public static final Setting transaction_timeout = setting( "dbms.transaction.timeout", DURATION, "0" ); @Description( "The maximum amount of time to wait for running transactions to complete before allowing " + "initiated database shutdown to continue" ) @@ -452,9 +452,6 @@ private static String defaultPageCacheMemory() public static final Setting forced_kernel_id = setting("unsupported.dbms.kernel_id", STRING, NO_DEFAULT, illegalValueMessage("has to be a valid kernel identifier", matches("[a-zA-Z0-9]*"))); - @Internal - public static final Setting execution_guard_enabled = setting("unsupported.dbms.executiontime_limit.enabled", BOOLEAN, FALSE ); - @Description("Amount of time in ms the GC monitor thread will wait before taking another measurement.") @Internal public static final Setting gc_monitor_interval = MonitorGc.Configuration.gc_monitor_wait_time; diff --git a/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/DataSourceModule.java b/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/DataSourceModule.java index 00f39bde7a427..0cda5703c9eb1 100644 --- a/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/DataSourceModule.java +++ b/community/kernel/src/main/java/org/neo4j/kernel/impl/factory/DataSourceModule.java @@ -357,8 +357,9 @@ public Relationship newRelationshipProxy( long id, long startNodeId, int typeId, private Guard createGuard( Dependencies deps, Config config, Clock clock, LogService logging ) { - Boolean isGuardEnabled = config.get( GraphDatabaseSettings.execution_guard_enabled ); - Guard guard = isGuardEnabled ? createTimeoutGuard( clock, logging ) : EmptyGuard.EMPTY_GUARD; + long configuredTimeout = config.get( GraphDatabaseSettings.transaction_timeout ); + boolean isTimeoutConfigured = configuredTimeout > 0; + Guard guard = isTimeoutConfigured ? createTimeoutGuard( clock, logging ) : EmptyGuard.EMPTY_GUARD; deps.satisfyDependency( guard ); return guard; } diff --git a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/GuardIT.java b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/GuardIT.java index d14cc4bd88dc3..a0f1e1048a763 100644 --- a/community/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/GuardIT.java +++ b/community/kernel/src/test/java/org/neo4j/kernel/impl/api/integrationtest/GuardIT.java @@ -27,7 +27,6 @@ import org.neo4j.graphdb.DependencyResolver; import org.neo4j.graphdb.config.Setting; import org.neo4j.graphdb.factory.GraphDatabaseSettings; -import org.neo4j.kernel.configuration.Settings; import org.neo4j.kernel.guard.EmptyGuard; import org.neo4j.kernel.guard.Guard; import org.neo4j.kernel.guard.TimeoutGuard; @@ -101,11 +100,11 @@ private GraphDatabaseAPI startDataBase( Map,String> disabledGuardConf private Map,String> getEnabledGuardConfigMap() { - return genericMap( GraphDatabaseSettings.execution_guard_enabled, Settings.TRUE ); + return genericMap( GraphDatabaseSettings.transaction_timeout, "60s" ); } private Map,String> getDisabledGuardConfigMap() { - return genericMap( GraphDatabaseSettings.execution_guard_enabled, Settings.FALSE ); + return genericMap( GraphDatabaseSettings.transaction_timeout, "0" ); } } diff --git a/community/server/src/main/java/org/neo4j/server/database/CypherExecutor.java b/community/server/src/main/java/org/neo4j/server/database/CypherExecutor.java index ada5ba1ff36e4..ad91ffdaeab29 100644 --- a/community/server/src/main/java/org/neo4j/server/database/CypherExecutor.java +++ b/community/server/src/main/java/org/neo4j/server/database/CypherExecutor.java @@ -58,7 +58,7 @@ public CypherExecutor( Database database, Config config, LogProvider logProvider { this.database = database; log = logProvider.getLog( getClass() ); - guardEnabled = config.get( GraphDatabaseSettings.execution_guard_enabled ); + guardEnabled = config.get( GraphDatabaseSettings.transaction_timeout ) > 0; } public ExecutionEngine getExecutionEngine() diff --git a/community/server/src/test/java/org/neo4j/server/database/CypherExecutorTest.java b/community/server/src/test/java/org/neo4j/server/database/CypherExecutorTest.java index 46c2e380769d1..d3906f2c9508c 100644 --- a/community/server/src/test/java/org/neo4j/server/database/CypherExecutorTest.java +++ b/community/server/src/test/java/org/neo4j/server/database/CypherExecutorTest.java @@ -70,7 +70,7 @@ public void setUp() @Test public void startDefaultTransaction() throws Throwable { - Config config = getGuardEnabledConfig(); + Config config = getConfiguredGuardConfig(); CypherExecutor cypherExecutor = new CypherExecutor( database, config, logProvider ); cypherExecutor.start(); @@ -86,7 +86,7 @@ public void startTransactionWithCustomTimeout() throws Throwable when( request.getHeader( CypherExecutor.MAX_EXECUTION_TIME_HEADER ) ) .thenReturn( String.valueOf( CUSTOM_TRANSACTION_TIMEOUT ) ); - Config config = getGuardEnabledConfig(); + Config config = getConfiguredGuardConfig(); CypherExecutor cypherExecutor = new CypherExecutor( database, config, logProvider ); cypherExecutor.start(); @@ -103,7 +103,7 @@ public void startDefaultTransactionWhenHeaderHasIncorrectValue() throws Throwabl when( request.getHeader( CypherExecutor.MAX_EXECUTION_TIME_HEADER ) ) .thenReturn( "not a number" ); - Config config = getGuardEnabledConfig(); + Config config = getConfiguredGuardConfig(); CypherExecutor cypherExecutor = new CypherExecutor( database, config, logProvider ); cypherExecutor.start(); @@ -120,7 +120,7 @@ public void startDefaultTransactionIfTimeoutIsNegative() throws Throwable when( request.getHeader( CypherExecutor.MAX_EXECUTION_TIME_HEADER ) ) .thenReturn( "-2" ); - Config config = getGuardEnabledConfig(); + Config config = getConfiguredGuardConfig(); CypherExecutor cypherExecutor = new CypherExecutor( database, config, logProvider ); cypherExecutor.start(); @@ -150,9 +150,9 @@ private void initLogProvider() logProvider = new AssertableLogProvider( true ); } - private Config getGuardEnabledConfig() + private Config getConfiguredGuardConfig() { - return new Config( MapUtil.stringMap( GraphDatabaseSettings.execution_guard_enabled.name(), "true" ) ); + return new Config( MapUtil.stringMap( GraphDatabaseSettings.transaction_timeout.name(), "60s" ) ); } private void setUpMocks() diff --git a/integrationtests/src/test/java/org/neo4j/TransactionGuardIntegrationTest.java b/integrationtests/src/test/java/org/neo4j/TransactionGuardIntegrationTest.java index 82fac1752551a..58cb824437e86 100644 --- a/integrationtests/src/test/java/org/neo4j/TransactionGuardIntegrationTest.java +++ b/integrationtests/src/test/java/org/neo4j/TransactionGuardIntegrationTest.java @@ -43,7 +43,6 @@ import org.neo4j.helpers.collection.MapUtil; import org.neo4j.kernel.GraphDatabaseDependencies; import org.neo4j.kernel.configuration.Config; -import org.neo4j.kernel.configuration.Settings; import org.neo4j.kernel.guard.GuardTimeoutException; import org.neo4j.kernel.impl.factory.CommunityEditionModule; import org.neo4j.kernel.impl.factory.DataSourceModule; @@ -223,7 +222,6 @@ private Map,String> getSettingsMap() boltConnector.type, "BOLT", boltConnector.enabled, "true", boltConnector.encryption_level, GraphDatabaseSettings.BoltConnector.EncryptionLevel.DISABLED.name(), - GraphDatabaseSettings.execution_guard_enabled, Settings.TRUE, GraphDatabaseSettings.transaction_timeout, "2s", GraphDatabaseSettings.auth_enabled, "false" ); }