Bug 278149 - sysutils/py-salt: new version [3007] totally broken
Summary: sysutils/py-salt: new version [3007] totally broken
Status: Closed FIXED
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Many People
Assignee: Kirill Ponomarev
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2024-04-03 18:05 UTC by Johan Ström
Modified: 2024-04-28 07:20 UTC (History)
14 users (show)

See Also:
bugzilla: maintainer-feedback? (krion)


Attachments
patch to revert to 3006.07 + fix GH issue #66153 (4.98 KB, patch)
2024-04-10 21:11 UTC, Nick Hilliard
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Johan Ström 2024-04-03 18:05:53 UTC
After upgrading py-salt from 3006.5 to 3007, neither master nor minion starts:

 # service salt_master restart
Stopping salt_master.
Waiting for PIDS: 3735.
Starting salt_master.
Traceback (most recent call last):
  File "/usr/local/bin/salt-master", line 33, in <module>
    sys.exit(load_entry_point('salt==3007.0', 'console_scripts', 'salt-master')())
  File "/usr/local/lib/python3.9/site-packages/salt/scripts.py", line 79, in salt_master
    import salt.cli.daemons
  File "/usr/local/lib/python3.9/site-packages/salt/cli/daemons.py", line 14, in <module>
    from salt.utils.process import HAS_PSUTIL
  File "/usr/local/lib/python3.9/site-packages/salt/utils/process.py", line 23, in <module>
    from tornado import gen
ModuleNotFoundError: No module named 'tornado'
[ERROR   ] An un-handled exception was caught by Salt's global exception handler:
ModuleNotFoundError: No module named 'tornado'
Traceback (most recent call last):
  File "/usr/local/bin/salt-master", line 33, in <module>
    sys.exit(load_entry_point('salt==3007.0', 'console_scripts', 'salt-master')())
  File "/usr/local/lib/python3.9/site-packages/salt/scripts.py", line 79, in salt_master
    import salt.cli.daemons
  File "/usr/local/lib/python3.9/site-packages/salt/cli/daemons.py", line 14, in <module>
    from salt.utils.process import HAS_PSUTIL
  File "/usr/local/lib/python3.9/site-packages/salt/utils/process.py", line 23, in <module>
    from tornado import gen
ModuleNotFoundError: No module named 'tornado'
/usr/local/etc/rc.d/salt_master: WARNING: failed to start salt_master


After installing py39-tornado (6.3.3), both master and minion starts.
But does not work properly. Executing 'salt' on the master seems to dispatch a job to the minion (I can see output in minion logs), but the salt CLI command only shows errors:

[WARNING ] TCP Publish Client encountered an exception while connecting to /var/run/salt/master/master_event_pub.ipc: StreamClosedError('Stream is closed'), will reconnect in 1 seconds -   File "/usr/local/bin/salt", line 33, in <module>                                                                                  
    sys.exit(load_entry_point('salt==3007.0', 'console_scripts', 'salt')())                                                                                    
...

Did not find anything obvious, my master config file is more or less empty with only pillar & state path pointed out.
At this point I gave up and reverted to 3006.5, which seems to work.
Comment 1 Paul Mather 2024-04-04 19:54:36 UTC
I have the same problem since upgrading to Salt 3007.0.  In my case, I am running py310-salt-3007.0, built via Poudriere and installed via pkg.
Comment 2 Nick Hilliard 2024-04-10 17:22:53 UTC
I've tested locally with tornado 6.4, and both salt-master/salt-minion will start, but any salt command request then crashes out with:

>  File "/usr/local/lib/python3.9/site-packages/salt/transport/tcp.py", line 374, in recv
>    events, _, _ = select.select([self._stream.socket], [], [], 0)
> TypeError: argument must be an int, or have a fileno() method.

Other than this, looking through open GH issues in the salt repo, salt 3007 is badly broken and has the following show-stoppers for my installs: 

github.com/saltstack/salt/issues/66237
github.com/saltstack/salt/issues/66194

Any possibility of reverting to 3006?
Comment 3 Nick Hilliard 2024-04-10 18:05:08 UTC
this patch would be great for salt-3006, btw (already merged into saltstack:3006.x branch):

https://github.com/saltstack/salt/pull/66153/files

Otherwise, 3006.6 clients can't talk to a 3006.7 master.
Comment 4 Paul Mather 2024-04-10 19:57:42 UTC
(In reply to Nick Hilliard from comment #2)

I echo the request: would it be possible to revert to the previous, known-working version, until 3007 is confirmed to work (at least start up) properly?
Comment 5 Nick Hilliard 2024-04-10 21:11:19 UTC
Created attachment 249884 [details]
patch to revert to 3006.07 + fix GH issue #66153

this patch downgrades to 3006.7 + applies a patch to fix GH issue #66153.

PORTEPOCH isn't set. It may be necessary to set PORTEPOCH.
Comment 6 Ofloo 2024-04-13 10:21:59 UTC
(In reply to Paul Mather from comment #4)
if you installed from pkg the previous pkg should be under /var/cache/pkg/ unless you've done pkg clean
Comment 7 Ofloo 2024-04-13 10:38:02 UTC
I reverted back to the previous version for the time being, ..

This gives the following error on the server side, however it is functional.

```ERROR   ] Module/package collision: '/usr/local/lib/python3.9/site-packages/salt/utils/vault.py' and '/usr/local/lib/python3.9/site-packages/salt/utils/vault'
[ERROR   ] Module/package collision: '/usr/local/lib/python3.9/site-packages/salt/utils/__pycache__/vault.cpython-39.pyc' and '/usr/local/lib/python3.9/site-packages/salt/utils/vault'
[ERROR   ] Module/package collision: '/usr/local/lib/python3.9/site-packages/salt/utils/vault.py' and '/usr/local/lib/python3.9/site-packages/salt/utils/vault'
[ERROR   ] Module/package collision: '/usr/local/lib/python3.9/site-packages/salt/utils/__pycache__/vault.cpython-39.pyc' and '/usr/local/lib/python3.9/site-packages/salt/utils/vault'
```

Did pkg lock py39-salt for the time being on salt server. That way I can still pkg upgrade without accidentally upgrading the salt pkg.
Comment 8 Michele Possamai 2024-04-16 13:57:14 UTC
was this even tested before pushing it upstream? It's completely broken
Comment 9 Danny McGrath 2024-04-16 17:01:27 UTC
On the plus side, at least I don't have a bunch of our infrastructure managed by salt....wait! :/

Is there an ETA on a fix for this?
Comment 10 Paul Mather 2024-04-16 20:40:24 UTC
(In reply to Ofloo from comment #6)

Thanks for the suggestion.  Unfortunately, I'm post-"pkg clean", and I build my ports packages via Poudriere, so at this point I'm looking at rolling back my /usr/ports to undo commit 4eb79f15c612dc1b91ae4156e75f95387136a806...
Comment 11 Danny McGrath 2024-04-16 20:52:32 UTC
(In reply to Paul Mather from comment #10)
I only tested it on a minion that was non important, but I was able to install the 2024Q1 version (3006.6) and then pkg lock that while upgrading the rest of my hosts to Q2, without issue.

Any chance you have zfs snapshots around?
Comment 12 Ofloo 2024-04-24 10:42:10 UTC
Cloned my system made new upgrade but now i'm missing

pkg_resources.DistributionNotFound: The 'pyzmq>=25.1.2' distribution was not found and is required by salt
Comment 13 Ofloo 2024-04-24 10:51:32 UTC
After installing cmake, because it was required to install the latest pyzmq from pip ..

# python3.9 -m pip install pyzmq --upgrade
Requirement already satisfied: pyzmq in /usr/local/lib/python3.9/site-packages (25.0.2)
Collecting pyzmq
  Using cached pyzmq-26.0.2.tar.gz (266 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Building wheels for collected packages: pyzmq
  Building wheel for pyzmq (pyproject.toml) ... done
  Created wheel for pyzmq: filename=pyzmq-26.0.2-cp39-cp39-freebsd_14_0_release_p6_amd64.whl size=290525 sha256=fdbfc51e83c86d75144f2df02df045ae426ae76928beb93f73e8f77167e3e430
  Stored in directory: /root/.cache/pip/wheels/91/a1/50/7deb937b13e6f21d9463ef937e18d2b801310c2e8170ae2efd
Successfully built pyzmq
Installing collected packages: pyzmq
  Attempting uninstall: pyzmq
    Found existing installation: pyzmq 25.0.2
    Uninstalling pyzmq-25.0.2:
      Successfully uninstalled pyzmq-25.0.2
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
salt 3007.0 requires aiohttp>=3.9.0, which is not installed.
salt 3007.0 requires cherrypy>=18.6.1, which is not installed.
salt 3007.0 requires setproctitle>=1.2.3, which is not installed.
salt 3007.0 requires pyopenssl>=24.0.0, but you have pyopenssl 23.2.0 which is incompatible.
Successfully installed pyzmq-26.0.2
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv

After running:
# python3.9 -m pip install salt --upgrade
Requirement already satisfied: salt in /usr/local/lib/python3.9/site-packages (3007.0)
Ignoring rpm-vercmp: markers 'sys_platform == "linux"' don't match your environment
Ignoring pywin32: markers 'sys_platform == "win32"' don't match your environment
Ignoring wmi: markers 'sys_platform == "win32"' don't match your environment
Ignoring pythonnet: markers 'sys_platform == "win32"' don't match your environment
Ignoring pymssql: markers 'sys_platform == "win32"' don't match your environment
Ignoring pymysql: markers 'sys_platform == "win32"' don't match your environment
Ignoring lxml: markers 'sys_platform == "win32"' don't match your environment
Ignoring xmltodict: markers 'sys_platform == "win32"' don't match your environment
Requirement already satisfied: Jinja2 in /usr/local/lib/python3.9/site-packages (from salt) (3.1.3)
Requirement already satisfied: jmespath in /usr/local/lib/python3.9/site-packages (from salt) (1.0.1)
Requirement already satisfied: msgpack>=1.0.0 in /usr/local/lib/python3.9/site-packages (from salt) (1.0.8)
Requirement already satisfied: PyYAML in /usr/local/lib/python3.9/site-packages (from salt) (6.0.1)
Requirement already satisfied: MarkupSafe in /usr/local/lib/python3.9/site-packages (from salt) (2.1.5)
Requirement already satisfied: requests>=2.25.1 in /usr/local/lib/python3.9/site-packages (from salt) (2.31.0)
Requirement already satisfied: distro>=1.0.1 in /usr/local/lib/python3.9/site-packages (from salt) (1.9.0)
Requirement already satisfied: psutil>=5.0.0 in /usr/local/lib/python3.9/site-packages (from salt) (5.9.8)
Requirement already satisfied: packaging>=21.3 in /usr/local/lib/python3.9/site-packages (from salt) (23.2)
Requirement already satisfied: looseversion in /usr/local/lib/python3.9/site-packages (from salt) (1.3.0)
Requirement already satisfied: tornado>=6.3.3 in /usr/local/lib/python3.9/site-packages (from salt) (6.4)
Collecting aiohttp>=3.9.0 (from salt)
  Downloading aiohttp-3.9.5.tar.gz (7.5 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 7.5/7.5 MB 36.7 MB/s eta 0:00:00
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Installing backend dependencies ... done
  Preparing metadata (pyproject.toml) ... done
Collecting setproctitle>=1.2.3 (from salt)
  Downloading setproctitle-1.3.3.tar.gz (27 kB)
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
  Preparing metadata (pyproject.toml) ... done
Requirement already satisfied: timelib>=0.2.5 in /usr/local/lib/python3.9/site-packages (from salt) (0.3.0)
Collecting pyopenssl>=24.0.0 (from salt)
  Downloading pyOpenSSL-24.1.0-py3-none-any.whl.metadata (12 kB)
Requirement already satisfied: python-dateutil>=2.8.1 in /usr/local/lib/python3.9/site-packages (from salt) (2.9.0)
Requirement already satisfied: python-gnupg>=0.4.7 in /usr/local/lib/python3.9/site-packages (from salt) (0.5.1)
Collecting cherrypy>=18.6.1 (from salt)
  Downloading CherryPy-18.9.0-py3-none-any.whl.metadata (8.8 kB)
Requirement already satisfied: importlib-metadata>=3.3.0 in /usr/local/lib/python3.9/site-packages (from salt) (7.1.0)
Requirement already satisfied: cryptography>=42.0.0 in /usr/local/lib/python3.9/site-packages (from salt) (42.0.5)
Requirement already satisfied: pyzmq>=25.1.2 in /usr/local/lib/python3.9/site-packages (from salt) (26.0.2)
Requirement already satisfied: pycryptodomex>=3.9.8 in /usr/local/lib/python3.9/site-packages (from salt) (3.20.0)
Collecting aiosignal>=1.1.2 (from aiohttp>=3.9.0->salt)
  Downloading aiosignal-1.3.1-py3-none-any.whl.metadata (4.0 kB)
Requirement already satisfied: attrs>=17.3.0 in /usr/local/lib/python3.9/site-packages (from aiohttp>=3.9.0->salt) (23.2.0)
Collecting frozenlist>=1.1.1 (from aiohttp>=3.9.0->salt)
  Downloading frozenlist-1.4.1-py3-none-any.whl.metadata (12 kB)
Collecting multidict<7.0,>=4.5 (from aiohttp>=3.9.0->salt)
  Downloading multidict-6.0.5-py3-none-any.whl.metadata (4.2 kB)
Collecting yarl<2.0,>=1.0 (from aiohttp>=3.9.0->salt)
  Downloading yarl-1.9.4-py3-none-any.whl.metadata (31 kB)
Requirement already satisfied: async-timeout<5.0,>=4.0 in /usr/local/lib/python3.9/site-packages (from aiohttp>=3.9.0->salt) (4.0.3)
Collecting cheroot>=8.2.1 (from cherrypy>=18.6.1->salt)
  Downloading cheroot-10.0.1-py3-none-any.whl.metadata (7.1 kB)
Collecting portend>=2.1.1 (from cherrypy>=18.6.1->salt)
  Downloading portend-3.2.0-py3-none-any.whl.metadata (3.6 kB)
Collecting more-itertools (from cherrypy>=18.6.1->salt)
  Downloading more_itertools-10.2.0-py3-none-any.whl.metadata (34 kB)
Collecting zc.lockfile (from cherrypy>=18.6.1->salt)
  Downloading zc.lockfile-3.0.post1-py3-none-any.whl.metadata (6.2 kB)
Collecting jaraco.collections (from cherrypy>=18.6.1->salt)
  Downloading jaraco.collections-5.0.1-py3-none-any.whl.metadata (3.8 kB)
Requirement already satisfied: cffi>=1.12 in /usr/local/lib/python3.9/site-packages (from cryptography>=42.0.0->salt) (1.16.0)
Requirement already satisfied: zipp>=0.5 in /usr/local/lib/python3.9/site-packages (from importlib-metadata>=3.3.0->salt) (3.18.1)
Requirement already satisfied: six>=1.5 in /usr/local/lib/python3.9/site-packages (from python-dateutil>=2.8.1->salt) (1.16.0)
Requirement already satisfied: charset_normalizer<4,>=2 in /usr/local/lib/python3.9/site-packages (from requests>=2.25.1->salt) (3.3.2)
Requirement already satisfied: idna<4,>=2.5 in /usr/local/lib/python3.9/site-packages (from requests>=2.25.1->salt) (3.7)
Requirement already satisfied: urllib3<3,>=1.21.1 in /usr/local/lib/python3.9/site-packages (from requests>=2.25.1->salt) (1.26.18)
Requirement already satisfied: certifi>=2017.4.17 in /usr/local/lib/python3.9/site-packages (from requests>=2.25.1->salt) (2024.2.2)
Requirement already satisfied: pycparser in /usr/local/lib/python3.9/site-packages (from cffi>=1.12->cryptography>=42.0.0->salt) (2.22)
Collecting jaraco.functools (from cheroot>=8.2.1->cherrypy>=18.6.1->salt)
  Downloading jaraco.functools-4.0.1-py3-none-any.whl.metadata (2.9 kB)
Collecting tempora>=1.8 (from portend>=2.1.1->cherrypy>=18.6.1->salt)
  Downloading tempora-5.5.1-py3-none-any.whl.metadata (3.0 kB)
Collecting jaraco.text (from jaraco.collections->cherrypy>=18.6.1->salt)
  Downloading jaraco.text-3.12.0-py3-none-any.whl.metadata (4.0 kB)
Requirement already satisfied: setuptools in /usr/local/lib/python3.9/site-packages (from zc.lockfile->cherrypy>=18.6.1->salt) (63.1.0)
Requirement already satisfied: pytz in /usr/local/lib/python3.9/site-packages (from tempora>=1.8->portend>=2.1.1->cherrypy>=18.6.1->salt) (2024.1)
Collecting jaraco.context>=4.1 (from jaraco.text->jaraco.collections->cherrypy>=18.6.1->salt)
  Downloading jaraco.context-5.3.0-py3-none-any.whl.metadata (4.0 kB)
Collecting autocommand (from jaraco.text->jaraco.collections->cherrypy>=18.6.1->salt)
  Downloading autocommand-2.2.2-py3-none-any.whl.metadata (15 kB)
Collecting inflect (from jaraco.text->jaraco.collections->cherrypy>=18.6.1->salt)
  Downloading inflect-7.2.1-py3-none-any.whl.metadata (21 kB)
Collecting backports.tarfile (from jaraco.context>=4.1->jaraco.text->jaraco.collections->cherrypy>=18.6.1->salt)
  Downloading backports.tarfile-1.1.1-py3-none-any.whl.metadata (2.0 kB)
Collecting typeguard>=4.0.1 (from inflect->jaraco.text->jaraco.collections->cherrypy>=18.6.1->salt)
  Downloading typeguard-4.2.1-py3-none-any.whl.metadata (3.7 kB)
Requirement already satisfied: typing-extensions in /usr/local/lib/python3.9/site-packages (from inflect->jaraco.text->jaraco.collections->cherrypy>=18.6.1->salt) (4.11.0)
Downloading CherryPy-18.9.0-py3-none-any.whl (348 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 348.8/348.8 kB 1.2 MB/s eta 0:00:00
Downloading pyOpenSSL-24.1.0-py3-none-any.whl (56 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 56.9/56.9 kB 1.7 MB/s eta 0:00:00
Downloading aiosignal-1.3.1-py3-none-any.whl (7.6 kB)
Downloading cheroot-10.0.1-py3-none-any.whl (104 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 104.8/104.8 kB 4.7 MB/s eta 0:00:00
Downloading frozenlist-1.4.1-py3-none-any.whl (11 kB)
Downloading more_itertools-10.2.0-py3-none-any.whl (57 kB)
   ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 57.0/57.0 kB 6.5 MB/s eta 0:00:00
Downloading multidict-6.0.5-py3-none-any.whl (9.7 kB)
Downloading portend-3.2.0-py3-none-any.whl (5.3 kB)
Downloading yarl-1.9.4-py3-none-any.whl (31 kB)
Downloading jaraco.collections-5.0.1-py3-none-any.whl (10 kB)
Downloading zc.lockfile-3.0.post1-py3-none-any.whl (9.8 kB)
Downloading tempora-5.5.1-py3-none-any.whl (13 kB)
Downloading jaraco.functools-4.0.1-py3-none-any.whl (9.8 kB)
Downloading jaraco.text-3.12.0-py3-none-any.whl (11 kB)
Downloading jaraco.context-5.3.0-py3-none-any.whl (6.5 kB)
Downloading autocommand-2.2.2-py3-none-any.whl (19 kB)
Downloading inflect-7.2.1-py3-none-any.whl (34 kB)
Downloading typeguard-4.2.1-py3-none-any.whl (34 kB)
Downloading backports.tarfile-1.1.1-py3-none-any.whl (29 kB)
Building wheels for collected packages: aiohttp, setproctitle
  Building wheel for aiohttp (pyproject.toml) ... done
  Created wheel for aiohttp: filename=aiohttp-3.9.5-cp39-cp39-freebsd_14_0_release_p6_amd64.whl size=406505 sha256=cd0ba8eeb2ff08cef9ab4336f903195a768675eb6daeaa2ea2c0d72d0ad050f0
  Stored in directory: /root/.cache/pip/wheels/56/5e/43/18555983d002ba95a19bf758a33c3251fa81e39847e3b46f23
  Building wheel for setproctitle (pyproject.toml) ... done
  Created wheel for setproctitle: filename=setproctitle-1.3.3-cp39-cp39-freebsd_14_0_release_p6_amd64.whl size=13442 sha256=69cbd69488ff1977414161867feac7de22785821982ff0c14ff4b5f897f8e42b
  Stored in directory: /root/.cache/pip/wheels/6a/ee/ec/0bd85bda0ff784b07950d664e4b009e23a6400f1d1f9474a25
Successfully built aiohttp setproctitle
Installing collected packages: zc.lockfile, setproctitle, multidict, more-itertools, frozenlist, backports.tarfile, autocommand, yarl, typeguard, jaraco.functools, jaraco.context, aiosignal, tempora, pyopenssl, inflect, cheroot, aiohttp, portend, jaraco.text, jaraco.collections, cherrypy
  Attempting uninstall: pyopenssl
    Found existing installation: pyOpenSSL 23.2.0
    Uninstalling pyOpenSSL-23.2.0:
      Successfully uninstalled pyOpenSSL-23.2.0
ERROR: pip's dependency resolver does not currently take into account all the packages that are installed. This behaviour is the source of the following dependency conflicts.
errbot 6.2.0 requires pygments-markdown-lexer>=0.1.0.dev39, which is not installed.
Successfully installed aiohttp-3.9.5 aiosignal-1.3.1 autocommand-2.2.2 backports.tarfile-1.1.1 cheroot-10.0.1 cherrypy-18.9.0 frozenlist-1.4.1 inflect-7.2.1 jaraco.collections-5.0.1 jaraco.context-5.3.0 jaraco.functools-4.0.1 jaraco.text-3.12.0 more-itertools-10.2.0 multidict-6.0.5 portend-3.2.0 pyopenssl-24.1.0 setproctitle-1.3.3 tempora-5.5.1 typeguard-4.2.1 yarl-1.9.4 zc.lockfile-3.0.post1
WARNING: Running pip as the 'root' user can result in broken permissions and conflicting behaviour with the system package manager. It is recommended to use a virtual environment instead: https://pip.pypa.io/warnings/venv


Long story short seems easier to rollback to previous version.
Comment 14 Ofloo 2024-04-24 10:53:57 UTC
And still get errors:

# salt '*' test.ping
[WARNING ] TCP Publish Client encountered an exception while connecting to /var/run/salt/master/master_event_pub.ipc: StreamClosedError('Stream is closed'), will reconnect in 1 seconds -   File "/usr/local/bin/salt", line 33, in <module>
    sys.exit(load_entry_point('salt==3007.0', 'console_scripts', 'salt')())

  File "/usr/local/lib/python3.9/site-packages/salt/scripts.py", line 532, in salt_main
    client.run()

  File "/usr/local/lib/python3.9/site-packages/salt/cli/salt.py", line 192, in run
    for full_ret in cmd_func(**kwargs):

  File "/usr/local/lib/python3.9/site-packages/salt/client/__init__.py", line 816, in cmd_cli
    self.pub_data = self.run_job(

  File "/usr/local/lib/python3.9/site-packages/salt/client/__init__.py", line 388, in run_job
    pub_data = self.pub(

  File "/usr/local/lib/python3.9/site-packages/salt/client/__init__.py", line 1905, in pub
    if listen and not self.event.connect_pub(timeout=timeout):

  File "/usr/local/lib/python3.9/site-packages/salt/utils/event.py", line 323, in connect_pub
    self.subscriber = salt.utils.asynchronous.SyncWrapper(

  File "/usr/local/lib/python3.9/site-packages/salt/utils/asynchronous.py", line 77, in __init__
    self.obj = cls(*args, **kwargs)

  File "/usr/local/lib/python3.9/site-packages/salt/transport/base.py", line 210, in ipc_publish_client
    return publish_client(opts, io_loop, **kwargs)

  File "/usr/local/lib/python3.9/site-packages/salt/transport/base.py", line 152, in publish_client
    return salt.transport.tcp.PublishClient(

  File "/usr/local/lib/python3.9/site-packages/salt/transport/tcp.py", line 219, in __init__
    super().__init__(opts, io_loop, **kwargs)

  File "/usr/local/lib/python3.9/site-packages/salt/transport/base.py", line 398, in __init__
    super().__init__()

[ERROR   ] Request client send timedout
Salt request timed out. The master is not responding. You may need to run your command with `--async` in order to bypass the congested event bus. With `--async`, the CLI tool will print the job id (jid) and exit immediately without listening for responses. You can then use `salt-run jobs.lookup_jid` to look up the results of the job in the job cache later.
Comment 15 bgdnlp 2024-04-25 11:24:26 UTC
Same here. I upgraded to 3007.0, it complained it needs Tornado, I installed Tornado, then it crashed with the trace already posted. I'm restoring from backup.

I didn't find this particular error reported on Salt's Github, so I reported it: https://github.com/saltstack/salt/issues/66435
Comment 16 Michele Possamai 2024-04-25 15:58:11 UTC
To the reporter of this bug: could you change the title?
Now it looks like it's just missing a dependency to fix it while it's actually fully broken and unusable and the update should be reverted.  

Maybe a better description would put a bit more attention to it.
Comment 17 pete 2024-04-26 01:04:19 UTC
(In reply to bgdnlp from comment #15)
thanks for filing this bug upstream.  i'm also having the same issue on my end, but after installing tornado i'm getting a conflict with pyzmq.  for now i'm building local pkgs of v3006.07.
Comment 18 Johan Ström 2024-04-26 05:53:42 UTC
Glad to see that I was not the only one at least. Let's hope it gets some attention. I'm merely a small-time user and don't have any idea about what to do about it (nor the time to invest to figure it out).
Comment 19 Ofloo 2024-04-26 07:06:55 UTC
I susgested it earlier under cache directory there should be a pkg you can reinstall that. Search up in the thread, .. this will still give you some errors but at least it will be functional again.
Comment 20 bgdnlp 2024-04-26 07:32:18 UTC
Since this seems to have hit several users.

Keep in mind that another option would be to look for a previously built package in the FreeBSD pkg repositories. For example, here is the repo for 13.3-RELEASE, which as far as I know has all the packages as they were compiled when 13.3 first went into production: http://pkg.freebsd.org/FreeBSD:13:amd64/release_3/. It has SaltStack 3006.6.

You can't list all the packages directly because that's a lot of them and eats up bandwidth and CPU cycles, but you can download the packagesite.txz file and check there. It's JSON, pipe it through `jq .` to get a readable version.

There are two ways to use that. One would be to set your pkg repo to this one, but that means other packages might get downgraded too. I suppose one could install Salt, then lock it and switch back to the usual repository.

Another way would be to download the packages and install them by hand. For example, this is SaltStack 3006.6 as compiled for the 13.3 release: http://pkg.freebsd.org/FreeBSD:13:amd64/release_3/All/py39-salt-3006.6.pkg

Since SaltStack is just Python, this package will likely work for other releases too, provided the other Python modules are close enough. Path for the package along with dependencies can be found in the packagesite.txz file.

From a security standpoint this is better than getting a package from a random internet stranger who happened to still have a 3006.7 package in their cache folder.

It's just Python, should work, but do it at your own risk.
Comment 21 Paul Mather 2024-04-26 13:47:57 UTC
(In reply to Michele Possamai from comment #16)

Since this is now identified as being "totally broken" I believe it's even more compelling to revert to the previous working version in ports until the upstream 3007.x version is known to work.
Comment 22 pete 2024-04-26 14:57:53 UTC
(In reply to Paul Mather from comment #21)
I can confirm that the patch attached to this issue works as expected.  I'm going to bump IRC and that mailing list to get this pushed along.  Having a broken configuration management solution pkg/port is really bad.
Comment 23 Kirill Ponomarev freebsd_committer freebsd_triage 2024-04-28 07:20:15 UTC
Please note I reverted pkg version to 3006.7 as 3007 has a lot of issues at the moment.