vmware-archive / salt-pack

Salt Package Builder
Apache License 2.0
55 stars 23 forks source link

Missing dependency on python-concurrent.futures #597

Closed wwentland closed 5 years ago

wwentland commented 5 years ago

Hi,

when installing the newest version (i.e. 2018.3.3) of salt-minion we observed ImportErrors when the service is restarted. This error will fill up logs quite rapidly and might thereby cause issues in production.

The problem is probably due to changes introduced in https://github.com/saltstack/salt/commit/70c603451bef8860a44e91e7c86f6eaaebd7ca89 which imports the concurrent module. The salt packaging has not been adjusted accordingly and therefore does not ensure that the concurrent Python module is pulled in via suitable dependencies.

On Debian Stretch the installation of python-concurrent.futures provides a suitable workaround.

Salt Version

# apt-cache policy salt-minion
salt-minion:
  Installed: 2018.3.3+ds-2
  Candidate: 2018.3.3+ds-2
  Version table:
 *** 2018.3.3+ds-2 500
        500 http://repo.saltstack.com/apt/debian/9/amd64/2018.3 stretch/main amd64 Packages
        100 /var/lib/dpkg/status
     2016.11.2+ds-1+deb9u2 500
        500 http://deb.debian.org/debian stretch/main amd64 Packages

# salt --versions-report
Salt Version:
           Salt: 2018.3.3

Dependency Versions:
           cffi: Not Installed
       cherrypy: Not Installed
       dateutil: 2.5.3
      docker-py: Not Installed
          gitdb: 2.0.0
      gitpython: 2.1.1
          ioflo: Not Installed
         Jinja2: 2.9.4
        libgit2: Not Installed
        libnacl: Not Installed
       M2Crypto: Not Installed
           Mako: Not Installed
   msgpack-pure: Not Installed
 msgpack-python: 0.4.8
   mysql-python: Not Installed
      pycparser: Not Installed
       pycrypto: 2.6.1
   pycryptodome: Not Installed
         pygit2: Not Installed
         Python: 2.7.13 (default, Sep 26 2018, 18:42:22)
   python-gnupg: Not Installed
         PyYAML: 3.12
          PyZMQ: 16.0.2
           RAET: Not Installed
          smmap: 2.0.1
        timelib: Not Installed
        Tornado: 4.4.3
            ZMQ: 4.2.1

System Versions:
           dist: debian 9.5 
         locale: UTF-8
        machine: x86_64
        release: 4.9.0-5-amd64
         system: Linux
        version: debian 9.5 

Log Output

salt-minion[3457]: Traceback (most recent call last):
salt-minion[3457]:   File "/usr/lib/python2.7/dist-packages/salt/minion.py", line 997, in _connect_minion
salt-minion[3457]:     yield minion.connect_master(failed=failed)
salt-minion[3457]:   File "/usr/lib/python2.7/dist-packages/tornado/gen.py", line 1015, in run
salt-minion[3457]:     value = future.result()
salt-minion[3457]:   File "/usr/lib/python2.7/dist-packages/tornado/concurrent.py", line 237, in result
salt-minion[3457]:     raise_exc_info(self._exc_info)
salt-minion[3457]:   File "/usr/lib/python2.7/dist-packages/tornado/gen.py", line 1021, in run
salt-minion[3457]:     yielded = self.gen.throw(*exc_info)
salt-minion[3457]:   File "/usr/lib/python2.7/dist-packages/salt/minion.py", line 1188, in connect_master
salt-minion[3457]:     master, self.pub_channel = yield self.eval_master(self.opts, self.timeout, self.safe, failed)
salt-minion[3457]:   File "/usr/lib/python2.7/dist-packages/tornado/gen.py", line 1015, in run
salt-minion[3457]:     value = future.result()
salt-minion[3457]:   File "/usr/lib/python2.7/dist-packages/tornado/concurrent.py", line 237, in result
salt-minion[3457]:     raise_exc_info(self._exc_info)
salt-minion[3457]:   File "/usr/lib/python2.7/dist-packages/tornado/gen.py", line 285, in wrapper
salt-minion[3457]:     yielded = next(result)
salt-minion[3457]:   File "/usr/lib/python2.7/dist-packages/salt/minion.py", line 697, in eval_master
salt-minion[3457]:     pub_channel = salt.transport.client.AsyncPubChannel.factory(self.opts, **factory_kwargs)
salt-minion[3457]:   File "/usr/lib/python2.7/dist-packages/salt/transport/client.py", line 161, in factory
salt-minion[3457]:     import salt.transport.zeromq
salt-minion[3457]:   File "/usr/lib/python2.7/dist-packages/salt/transport/zeromq.py", line 31, in <module>
salt-minion[3457]:     import salt.transport.mixins.auth
salt-minion[3457]:   File "/usr/lib/python2.7/dist-packages/salt/transport/mixins/auth.py", line 16, in <module>
salt-minion[3457]:     import salt.master
salt-minion[3457]:   File "/usr/lib/python2.7/dist-packages/salt/master.py", line 35, in <module>
salt-minion[3457]:     import salt.client.ssh.client
salt-minion[3457]:   File "/usr/lib/python2.7/dist-packages/salt/client/ssh/__init__.py", line 47, in <module>
salt-minion[3457]:     import salt.utils.thin
salt-minion[3457]:   File "/usr/lib/python2.7/dist-packages/salt/utils/thin.py", line 16, in <module>
salt-minion[3457]:     import concurrent
salt-minion[3457]: ImportError: No module named concurrent
wwentland commented 5 years ago

Addressed in #593