Repository: incubator-slider Updated Branches: refs/heads/develop 446574013 -> 523790145
SLIDER-1052 Deadlock in slider AM Project: http://git-wip-us.apache.org/repos/asf/incubator-slider/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-slider/commit/136013b7 Tree: http://git-wip-us.apache.org/repos/asf/incubator-slider/tree/136013b7 Diff: http://git-wip-us.apache.org/repos/asf/incubator-slider/diff/136013b7 Branch: refs/heads/develop Commit: 136013b7a4c32f8280cdf3a0e670f403c69165a0 Parents: 7e86e9f Author: Steve Loughran <ste...@apache.org> Authored: Thu Jan 14 13:14:51 2016 -0800 Committer: Steve Loughran <ste...@apache.org> Committed: Thu Jan 14 14:44:01 2016 -0800 ---------------------------------------------------------------------- .../slider/server/appmaster/SliderAppMaster.java | 2 +- .../services/workflow/WorkflowCompositeService.java | 16 ++++++++++++++++ .../slider/common/tools/TestZKIntegration.groovy | 2 +- 3 files changed, 18 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/136013b7/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java index a01dde9..729d46e 100644 --- a/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java +++ b/slider-core/src/main/java/org/apache/slider/server/appmaster/SliderAppMaster.java @@ -839,7 +839,7 @@ public class SliderAppMaster extends AbstractSliderLaunchedService login(principal, localKeytabFile); // obtain new FS reference that should be kerberos based and different // than the previously cached reference - fs = getClusterFS(); + fs = new SliderFileSystem(serviceConf); } } http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/136013b7/slider-core/src/main/java/org/apache/slider/server/services/workflow/WorkflowCompositeService.java ---------------------------------------------------------------------- diff --git a/slider-core/src/main/java/org/apache/slider/server/services/workflow/WorkflowCompositeService.java b/slider-core/src/main/java/org/apache/slider/server/services/workflow/WorkflowCompositeService.java index a7d9545..9c653f3 100644 --- a/slider-core/src/main/java/org/apache/slider/server/services/workflow/WorkflowCompositeService.java +++ b/slider-core/src/main/java/org/apache/slider/server/services/workflow/WorkflowCompositeService.java @@ -19,6 +19,7 @@ package org.apache.slider.server.services.workflow; import com.google.common.base.Preconditions; +import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.service.CompositeService; import org.apache.hadoop.service.Service; import org.apache.hadoop.service.ServiceStateChangeListener; @@ -46,6 +47,11 @@ public class WorkflowCompositeService extends CompositeService LoggerFactory.getLogger(WorkflowCompositeService.class); /** + * Deadlock-avoiding overridden config for slider services; see SLIDER-1052 + */ + private volatile Configuration configuration; + + /** * Construct an instance * @param name name of this service instance */ @@ -53,6 +59,16 @@ public class WorkflowCompositeService extends CompositeService super(name); } + @Override + public Configuration getConfig() { + return configuration; + } + + @Override + protected void setConfig(Configuration conf) { + super.setConfig(conf); + configuration = conf; + } /** * Construct an instance with the default name. http://git-wip-us.apache.org/repos/asf/incubator-slider/blob/136013b7/slider-core/src/test/groovy/org/apache/slider/common/tools/TestZKIntegration.groovy ---------------------------------------------------------------------- diff --git a/slider-core/src/test/groovy/org/apache/slider/common/tools/TestZKIntegration.groovy b/slider-core/src/test/groovy/org/apache/slider/common/tools/TestZKIntegration.groovy index 1ea9001..7f506b8 100644 --- a/slider-core/src/test/groovy/org/apache/slider/common/tools/TestZKIntegration.groovy +++ b/slider-core/src/test/groovy/org/apache/slider/common/tools/TestZKIntegration.groovy @@ -151,7 +151,7 @@ class TestZKIntegration extends YarnZKMiniClusterTestBase implements KeysForTest } @Override - public synchronized Configuration getConfig() { + public Configuration getConfig() { new Configuration(); }