From c45777f33402b1326e637b8bd5314c295608d9a7 Mon Sep 17 00:00:00 2001 From: Aled Sage Date: Wed, 12 Oct 2016 14:16:52 +0100 Subject: [PATCH 1/2] JcloudsByonLocationResolverStubbedRebindTest: avoid taking 5 minutes --- .../JcloudsByonLocationResolverStubbedRebindTest.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/JcloudsByonLocationResolverStubbedRebindTest.java b/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/JcloudsByonLocationResolverStubbedRebindTest.java index 26da5e9d1c..6d9fabdcc6 100644 --- a/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/JcloudsByonLocationResolverStubbedRebindTest.java +++ b/locations/jclouds/src/test/java/org/apache/brooklyn/location/jclouds/JcloudsByonLocationResolverStubbedRebindTest.java @@ -55,6 +55,7 @@ import org.testng.annotations.Test; import com.google.common.base.Predicate; +import com.google.common.base.Predicates; import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableSet; @@ -137,7 +138,10 @@ protected NodeMetadata newNode(String group, Template template) { @Test public void testRebind() throws Exception { String spec = "jcloudsByon:(provider=\""+SOFTLAYER_PROVIDER+"\",region=\""+SOFTLAYER_AMS01_REGION_NAME+"\",user=\"myuser\",password=\"mypassword\",hosts=\""+nodeId+"\")"; - Map specFlags = ImmutableMap.of(JcloudsLocationConfig.COMPUTE_SERVICE_REGISTRY, computeServiceRegistry); + Map specFlags = ImmutableMap.builder() + .put(JcloudsLocationConfig.COMPUTE_SERVICE_REGISTRY, computeServiceRegistry) + .put(JcloudsLocation.POLL_FOR_FIRST_REACHABLE_ADDRESS_PREDICATE, Predicates.alwaysTrue()) + .build(); FixedListMachineProvisioningLocation location = getLocationManaged(spec, specFlags); JcloudsSshMachineLocation machine = (JcloudsSshMachineLocation) Iterables.getOnlyElement(location.getAllMachines()); From 0edce9879670560c245f2f6f4df3eae9fd2c27a8 Mon Sep 17 00:00:00 2001 From: Aled Sage Date: Wed, 12 Oct 2016 14:17:01 +0100 Subject: [PATCH 2/2] BROOKLYN-356: workaround, by increasing timeout --- .../objs/AbstractConfigurationSupportInternal.java | 2 +- .../apache/brooklyn/enricher/stock/Transformer.java | 2 +- .../brooklyn/util/core/task/ValueResolver.java | 12 +++++++++++- 3 files changed, 13 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/org/apache/brooklyn/core/objs/AbstractConfigurationSupportInternal.java b/core/src/main/java/org/apache/brooklyn/core/objs/AbstractConfigurationSupportInternal.java index 1b87d3c527..61dc513f78 100644 --- a/core/src/main/java/org/apache/brooklyn/core/objs/AbstractConfigurationSupportInternal.java +++ b/core/src/main/java/org/apache/brooklyn/core/objs/AbstractConfigurationSupportInternal.java @@ -111,7 +111,7 @@ public T call() { .tag(BrooklynTaskTags.TRANSIENT_TASK_TAG) .build()); try { - T result = t.get(ValueResolver.PRETTY_QUICK_WAIT); + T result = t.get(ValueResolver.NON_BLOCKING_WAIT); return Maybe.of(result); } catch (TimeoutException e) { t.cancel(true); diff --git a/core/src/main/java/org/apache/brooklyn/enricher/stock/Transformer.java b/core/src/main/java/org/apache/brooklyn/enricher/stock/Transformer.java index 84450766db..9c4e657a9e 100644 --- a/core/src/main/java/org/apache/brooklyn/enricher/stock/Transformer.java +++ b/core/src/main/java/org/apache/brooklyn/enricher/stock/Transformer.java @@ -90,7 +90,7 @@ public String toString() { return (U) Tasks.resolving(targetValueRaw).as(targetSensor.getType()) .context(entity) .description("Computing sensor "+targetSensor+" from "+targetValueRaw) - .timeout(ValueResolver.PRETTY_QUICK_WAIT) + .timeout(ValueResolver.NON_BLOCKING_WAIT) .getMaybe().orNull(); } public String toString() { diff --git a/core/src/main/java/org/apache/brooklyn/util/core/task/ValueResolver.java b/core/src/main/java/org/apache/brooklyn/util/core/task/ValueResolver.java index 73309ef0ae..2942b232fd 100644 --- a/core/src/main/java/org/apache/brooklyn/util/core/task/ValueResolver.java +++ b/core/src/main/java/org/apache/brooklyn/util/core/task/ValueResolver.java @@ -83,7 +83,17 @@ public class ValueResolver implements DeferredSupplier { *

* See {@link #REAL_QUICK_WAIT}. */ public static Duration PRETTY_QUICK_WAIT = Duration.millis(200); - + + /** + * Period to wait if we're expecting the operation to be non-blocking, so want to abort if the + * invoked task/supplier is taking too long (likely because its value is not yet ready, and + * the invoked task is blocked waiting for it). + *

+ * See {@link #REAL_QUICK_WAIT} and BROOKLYN-356. + */ + @Beta + public static final Duration NON_BLOCKING_WAIT = Duration.millis(500); + /** Period to wait when we have to poll but want to give the illusion of no wait. * See {@link Repeater#DEFAULT_REAL_QUICK_PERIOD} */ public static Duration REAL_QUICK_PERIOD = Repeater.DEFAULT_REAL_QUICK_PERIOD;