salt fails on startup with transport: raet

Created on 30 Jul 2015  路  18Comments  路  Source: saltstack/salt

2015-07-30 02:18:40,318 [salt.log.setup                           ][ERROR   ][4964] An un-handled exception was caught by salt's global exception handler:
TypeError: decode() takes no keyword arguments
Traceback (most recent call last):
  File "/usr/bin/salt-master", line 10, in <module>
    salt_master()
  File "/usr/lib/python2.6/site-packages/salt/scripts.py", line 50, in salt_master
    master.start()
  File "/usr/lib/python2.6/site-packages/salt/cli/daemons.py", line 152, in start
    self.master.start()
  File "/usr/lib/python2.6/site-packages/salt/daemons/flo/__init__.py", line 96, in start
    consolepath=consolepath,
  File "/usr/lib/python2.6/site-packages/ioflo/app/run.py", line 137, in run
    skedder.run()
  File "/usr/lib/python2.6/site-packages/ioflo/base/skedding.py", line 273, in run
    status = tasker.runner.send(tasker.desire)
  File "/usr/lib/python2.6/site-packages/ioflo/base/framing.py", line 630, in makeRunner
    self.enterAll() #activates, resets .done state also .desire may change here
  File "/usr/lib/python2.6/site-packages/ioflo/base/framing.py", line 411, in enterAll
    self.enter(self.actives)
  File "/usr/lib/python2.6/site-packages/ioflo/base/framing.py", line 423, in enter
    frame.enter()
  File "/usr/lib/python2.6/site-packages/ioflo/base/framing.py", line 1244, in enter
    act() #call entryAction
  File "/usr/lib/python2.6/site-packages/ioflo/base/acting.py", line 99, in __call__
    return (self.actor(**self.parms))
  File "/usr/lib/python2.6/site-packages/ioflo/base/acting.py", line 524, in __call__
    return self.action(**kwa)
  File "/usr/lib/python2.6/site-packages/salt/daemons/flo/core.py", line 175, in action
    stackname=name)
  File "/usr/lib/python2.6/site-packages/salt/daemons/salting.py", line 62, in __init__
    self.saltRaetKey = RaetKey(opts)
  File "/usr/lib/python2.6/site-packages/salt/key.py", line 891, in __init__
    Key.__init__(self, opts)
  File "/usr/lib/python2.6/site-packages/salt/key.py", line 453, in __init__
    listen=False)
  File "/usr/lib/python2.6/site-packages/salt/utils/event.py", line 119, in get_event
    opts=opts)
  File "/usr/lib/python2.6/site-packages/salt/utils/raetevent.py", line 47, in __init__
    self.__prep_stack()
  File "/usr/lib/python2.6/site-packages/salt/utils/raetevent.py", line 57, in __prep_stack
    self.stack = transport.jobber_stack = self._setup_stack(ryn=self.ryn)
  File "/usr/lib/python2.6/site-packages/salt/utils/raetevent.py", line 94, in _setup_stack
    name = 'event' + nacling.uuid(size=18)
  File "/usr/lib/python2.6/site-packages/raet/nacling.py", line 576, in uuid
    return ((front + back)[:size]).decode(encoding='ISO-8859-1')
TypeError: decode() takes no keyword arguments
Bug Confirmed Core P2 P3 RAET Transport severity-high

Most helpful comment

Confirmed:

  1. This is not fixed.
  2. This is a RAET bug.

Sicne version 0.5.1 raet uses string.decode with kwargs. Python 2.6 supports the only positional arguments in decode. Have to be moved to raet.

All 18 comments

[root@inf-vm-sam-1 salt]# salt-call test.versions_report
local:
               Salt: 2015.5.1
             Python: 2.6.6 (r266:84292, Jan 22 2014, 09:42:36)
             Jinja2: 2.7.3
           M2Crypto: 0.20.2
     msgpack-python: 0.4.6
       msgpack-pure: Not Installed
           pycrypto: 2.0.1
            libnacl: 1.4.3
             PyYAML: 3.11
              ioflo: 1.3.8
              PyZMQ: 14.3.1
               RAET: 0.6.3
                ZMQ: 4.0.4
               Mako: Not Installed

@ahammond, thanks for the report. It looks like this may be raet-specific, so we may want to transfer it to https://github.com/saltstack/raet/issues.

Dmitry, can you verify that this is no longer an issue?

I'll check.

Confirmed:

  1. This is not fixed.
  2. This is a RAET bug.

Sicne version 0.5.1 raet uses string.decode with kwargs. Python 2.6 supports the only positional arguments in decode. Have to be moved to raet.

Fixed in raet.

It looks it was a bad idea to close this before the Raet issue and PR has closed...

@meggiebot, @cachedout could somebody merge the saltstack/raet#70?

Merged. Closing.

@DmitryKuzmenko

This bug fix in source code, but not update python-raet rpm package in CentOS6/7 Repo.

python-raet-0.6.3-2.el6/7.noarch.rpm package still has this problem: https://github.com/saltstack/raet/issues/67

http://repo.saltstack.com/yum/redhat/6/x86_64/2016.11/python-raet-0.6.3-2.el6.noarch.rpm
http://repo.saltstack.com/yum/redhat/7/x86_64/2016.11/python-raet-0.6.3-2.el7.noarch.rpm

Please help update python-raet rpm package.

Thanks.

@lvii thank you for note this.
@meggiebot could you please assign this to an appropriate person?

@lvii / @DmitryKuzmenko thanks for pointing this out. @dmurphy18 will be updating the raet package for CentOS 6/7 and it will go out with our upcoming releases 2016.11.1 and 2016.3.5.

salt-minion -l debug
[DEBUG ] Reading configuration from /etc/salt/minion
[DEBUG ] Including configuration from '/etc/salt/minion.d/_schedule.conf'
[DEBUG ] Reading configuration from /etc/salt/minion.d/_schedule.conf
[DEBUG ] Configuration file path: /etc/salt/minion
[WARNING ] Insecure logging configuration detected! Sensitive data may be logged.
[INFO ] Setting up the Salt Minion "l168-225-103.lq.autohome.cc"
[DEBUG ] Created pidfile: /var/run/salt-minion.pid
[INFO ] Starting up the Salt Minion
[DEBUG ] Reading configuration from /etc/salt/minion
[DEBUG ] Including configuration from '/etc/salt/minion.d/_schedule.conf'
[DEBUG ] Reading configuration from /etc/salt/minion.d/_schedule.conf
[DEBUG ] Initializing new Schedule
[DEBUG ] LazyLoaded timezone.get_offset
[DEBUG ] LazyLoaded cmd.run
[INFO ] Executing command ['date', '+%z'] in directory '/root'
[DEBUG ] output: +0800
[DEBUG ] LazyLoaded config.merge
Process Process-1:
Traceback (most recent call last):
File "/usr/lib64/python2.6/multiprocessing/process.py", line 232, in _bootstrap
self.run()
File "/usr/lib64/python2.6/multiprocessing/process.py", line 88, in run
self._target(self._args, self._kwargs)
File "/usr/lib/python2.6/site-packages/salt/scripts.py", line 129, in minion_process
minion.start()
File "/usr/lib/python2.6/site-packages/salt/cli/daemons.py", line 345, in start
self.minion.tune_in()
File "/usr/lib/python2.6/site-packages/salt/daemons/flo/__init__.py", line 146, in tune_in
consolepath=consolepath,
File "/usr/lib/python2.6/site-packages/ioflo/app/run.py", line 137, in run
skedder.run()
File "/usr/lib/python2.6/site-packages/ioflo/base/skedding.py", line 273, in run
status = tasker.runner.send(tasker.desire)
File "/usr/lib/python2.6/site-packages/ioflo/base/framing.py", line 630, in makeRunner
self.enterAll() #activates, resets .done state also .desire may change here
File "/usr/lib/python2.6/site-packages/ioflo/base/framing.py", line 411, in enterAll
self.enter(self.actives)
File "/usr/lib/python2.6/site-packages/ioflo/base/framing.py", line 423, in enter
frame.enter()
File "/usr/lib/python2.6/site-packages/ioflo/base/framing.py", line 1244, in enter
act() #call entryAction
File "/usr/lib/python2.6/site-packages/ioflo/base/acting.py", line 99, in __call__
return (self.actor(
self.parms))
File "/usr/lib/python2.6/site-packages/ioflo/base/acting.py", line 524, in __call__
return self.action(
*kwa)
File "/usr/lib/python2.6/site-packages/salt/daemons/flo/core.py", line 292, in action
stackname=name)
File "/usr/lib/python2.6/site-packages/salt/daemons/salting.py", line 62, in __init__
self.saltRaetKey = RaetKey(opts)
File "/usr/lib/python2.6/site-packages/salt/key.py", line 940, in __init__
Key.__init__(self, opts)
File "/usr/lib/python2.6/site-packages/salt/key.py", line 372, in __init__
listen=False)
File "/usr/lib/python2.6/site-packages/salt/utils/event.py", line 145, in get_event
opts=opts)
File "/usr/lib/python2.6/site-packages/salt/utils/raetevent.py", line 50, in __init__
self.__prep_stack(listen)
File "/usr/lib/python2.6/site-packages/salt/utils/raetevent.py", line 60, in __prep_stack
self.stack = transport.jobber_stack = self._setup_stack(ryn=self.ryn)
File "/usr/lib/python2.6/site-packages/salt/utils/raetevent.py", line 98, in _setup_stack
name = 'event' + nacling.uuid(size=18)
File "/usr/lib/python2.6/site-packages/raet/nacling.py", line 576, in uuid
return ((front + back)[:size]).decode(encoding='ISO-8859-1')
TypeError: decode() takes no keyword arguments

salt --versions-report
Salt Version:
Salt: 2016.11.1

Dependency Versions:
cffi: 1.9.1
cherrypy: 3.2.2
dateutil: 1.4.1
gitdb: Not Installed
gitpython: Not Installed
ioflo: 1.3.8
Jinja2: 2.2.1
libgit2: Not Installed
libnacl: 1.4.3
M2Crypto: 0.20.2
Mako: Not Installed
msgpack-pure: Not Installed
msgpack-python: 0.4.6
mysql-python: 1.2.3c1
pycparser: 2.17
pycrypto: 2.6.1
pygit2: Not Installed
Python: 2.6.6 (r266:84292, Jul 23 2015, 15:22:56)
python-gnupg: Not Installed
PyYAML: 3.10
PyZMQ: 14.3.1
RAET: 0.6.6
smmap: Not Installed
timelib: Not Installed
Tornado: 4.2.1
ZMQ: 3.2.5

System Versions:
dist: centos 6.6 Final
machine: x86_64
release: 2.6.32-504.30.3.el6.x86_64
system: Linux
version: CentOS 6.6 Final

reopening saltstack/salt-pack#184 since suggested fix of later version of raet did not resolve the issue

The changes in https://github.com/saltstack/raet/pull/70 are not reflected in the latest version of raet v0.6.6. To resolve this issue, need to patch raet on Redhat 6 & 5 where python 2.6 is in use.

@ahammond Can you test if the currently released Salt 2016.11.2 for Redhat 6 with raet resolves this issue. I patched the latest version of raet to resolve this issue. If the issue is resolved, can you close it ?

@dmurphy18 We gave up on raet more than a year ago. I can't justify testing time at this point.

Was this page helpful?
0 / 5 - 0 ratings