Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
None
-
None
-
Gentoo Linux, develop branch (035ebbd), Hadoop-2.6.0-SNAPSHOT (r1619002)
Description
Tried to start an Accumulo cluster:
slider create accumulo --image hdfs://localhost:8020/slider/agent/slider-agent.tar.gz --template /home/elserj/slider/app-packages/accumulo/target/apache-slider-accumulo-1.6.0-app-package-0.40/appConfig.json --resources /home/elserj/slider/app-packages/accumulo/target/apache-slider-accumulo-1.6.0-app-package-0.40/resources.json
SliderAM came up, but no Accumulo procs got started. Looking at the AM webapp, the Accumulo master container kept cycling. Dug around in the NM/container logs dir, and found the following stack:
Traceback (most recent call last): File ".../nm-local-dir/usercache/elserj/appcache/application_1408503547578_0002/container_1408503547578_0002_01_000021/app/definition/package/scripts/accumulo_master.py", line 24, in <module> AccumuloScript('master').execute() File ".../nm-local-dir/usercache/elserj/appcache/application_1408503547578_0002/container_1408503547578_0002_01_000021/infra/agent/slider-agent/resource_management/libraries/script/script.py", line 114, in execute method(env) File ".../nm-local-dir/usercache/elserj/appcache/application_1408503547578_0002/filecache/19/apache-slider-accumulo-1.6.0-app-package-0.40.zip/package/scripts/accumulo_script.py", line 82, in start self.configure(env) # for security File ".../nm-local-dir/usercache/elserj/appcache/application_1408503547578_0002/filecache/19/apache-slider-accumulo-1.6.0-app-package-0.40.zip/package/scripts/accumulo_script.py", line 76, in configure setup_conf_dir(name=self.component) File ".../tmp/nm-local-dir/usercache/elserj/appcache/application_1408503547578_0002/filecache/19/apache-slider-accumulo-1.6.0-app-package-0.40.zip/package/scripts/accumulo_configuration.py", line 31, in setup_conf_dir recursive = True File ".../nm-local-dir/usercache/elserj/appcache/application_1408503547578_0002/container_1408503547578_0002_01_000021/infra/agent/slider-agent/resource_management/core/base.py", line 148, in __init__ self.env.run() File ".../nm-local-dir/usercache/elserj/appcache/application_1408503547578_0002/container_1408503547578_0002_01_000021/infra/agent/slider-agent/resource_management/core/environment.py", line 149, in run self.run_action(resource, action) File ".../nm-local-dir/usercache/elserj/appcache/application_1408503547578_0002/container_1408503547578_0002_01_000021/infra/agent/slider-agent/resource_management/core/environment.py", line 109, in run_action resource.provider) File ".../nm-local-dir/usercache/elserj/appcache/application_1408503547578_0002/container_1408503547578_0002_01_000021/infra/agent/slider-agent/resource_management/core/providers/__init__.py", line 72, in find_provider if resource in provider[env.system.os_family]: KeyError: 'gentoo base system'
I'm rusty on my Python, but I believe this means that in slider-agent/src/main/python/resource_management/core/providers/_init_.py
if resource in provider[env.system.os_family]:
should be
if env.system.os_family in provider: if resource in provider[env.system.os_family]:
to avoid the Exception when the key doesn't exist (alternatively try/except, too), and get down to the default case.