Support Questions

Find answers, ask questions, and share your expertise

Restarting Knox gateway during upgrade to HDP 2.6.1.0 fails

avatar
Explorer

I am attempting to Express Upgrade from HDP 2.6.0.3 to HDP 2.6.1.0 and it fails when it gets to the "Restarting Knox Gateway on ..." step. The message in stderr is this:

Traceback (most recent call last):
  File "/var/lib/ambari-agent/cache/common-services/KNOX/0.5.0.2.2/package/scripts/knox_gateway.py", line 217, in <module>
    KnoxGateway().execute()
  File "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py", line 329, in execute
    method(env)
  File "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py", line 850, in restart
    self.start(env, upgrade_type=upgrade_type)
  File "/var/lib/ambari-agent/cache/common-services/KNOX/0.5.0.2.2/package/scripts/knox_gateway.py", line 135, in start
    self.configure(env)
  File "/usr/lib/python2.6/site-packages/resource_management/libraries/script/script.py", line 119, in locking_configure
    original_configure(obj, *args, **kw)
  File "/var/lib/ambari-agent/cache/common-services/KNOX/0.5.0.2.2/package/scripts/knox_gateway.py", line 67, in configure
    knox()
  File "/usr/lib/python2.6/site-packages/ambari_commons/os_family_impl.py", line 89, in thunk
    return fn(*args, **kwargs)
  File "/var/lib/ambari-agent/cache/common-services/KNOX/0.5.0.2.2/package/scripts/knox.py", line 100, in knox
    recursive_ownership = True,
  File "/usr/lib/python2.6/site-packages/resource_management/core/base.py", line 114, in __new__
    cls(names_list.pop(0), env, provider, **kwargs)
  File "/usr/lib/python2.6/site-packages/resource_management/core/base.py", line 147, in __init__
    raise Fail("%s received unsupported argument %s" % (self, key))
resource_management.core.exceptions.Fail: Directory['/usr/hdp/current/knox-server/data/'] received unsupported argument recursive

stdout doesn't look like it contains anything useful.

gateway.log shows nothing because it isn't getting to the point where it tries to start it.

If I manually start knox it seems to start fine.

1 ACCEPTED SOLUTION

avatar
Rising Star

@Aaron Norton - Looks like the knox.py script on your cluster is still referring to an older parameter named 'recursive'

There was a fix done as part of AMBARI-14396 where the parameter was modified from 'recursive' to 'create_parents'

Can you try the following?

On your knox gateway host open this file: /var/lib/ambari-agent/cache/common-services/KNOX/0.5.0.2.2/package/scripts/knox.py

Change to the following under line having text: os.path.join(params.knox_conf_dir, "topologies")],

owner = params.knox_user,
group = params.knox_group,
create_parents = True,
cd_access = "a",
mode = 0755,
recursive_ownership = True,

Ensure that the indentation is retained

See sample entry here

Thanks, Vivek

View solution in original post

3 REPLIES 3

avatar
Rising Star

@Aaron Norton - Looks like the knox.py script on your cluster is still referring to an older parameter named 'recursive'

There was a fix done as part of AMBARI-14396 where the parameter was modified from 'recursive' to 'create_parents'

Can you try the following?

On your knox gateway host open this file: /var/lib/ambari-agent/cache/common-services/KNOX/0.5.0.2.2/package/scripts/knox.py

Change to the following under line having text: os.path.join(params.knox_conf_dir, "topologies")],

owner = params.knox_user,
group = params.knox_group,
create_parents = True,
cd_access = "a",
mode = 0755,
recursive_ownership = True,

Ensure that the indentation is retained

See sample entry here

Thanks, Vivek

avatar
Explorer

I'm not sure how an old version of knox.py would have gotten there. Anyway I reverted snapshots back to before I did the upgrade and everything worked fine now. Something must have just gotten really messed up.

avatar
Rising Star

@Aaron Norton - Please accept the answer if you think it was relevant to your question