Hi Stuart,
On Mon, Jan 06, 2025 at 05:41:48PM +0000, Stuart Henderson wrote:
> On 2025/01/06 16:17, Mikolaj Kucharski wrote:
> > Hi,
> >
> > Not sure is this actually related to python3.12, but I've notived it
> > today on few machines after upgrading -current.
> >
> > I didn't troubleshoot this yet.
>
> > File
> > "/usr/local/lib/python3.12/site-packages/salt/ext/tornado/netutil.py", line
> > 57, in <module>
> > import backports.ssl_match_hostname
> > ModuleNotFoundError: No module named 'backports'
>
> I don't use salt, but please try this. (Alternatively it looks like
> updating to 3007.1 should also fix).
This fixes initial issue, but then breaks later in different way, from
/var/log/salt/minion file:
2025-01-06 21:12:54,002 [salt.cli.daemons :284 ][INFO
][89450] Setting up the Salt Minion "pce-0033.home.lan"
2025-01-06 21:12:54,005 [salt.utils.process :284 ][INFO
][89450] pidfile: /var/run/process_responsibility_salt-minion.pid not found
2025-01-06 21:12:55,544 [salt.cli.daemons :284 ][INFO ][44897] Starting up
the Salt Minion
2025-01-06 21:12:55,553 [salt.utils.event :284 ][INFO ][44897] Starting pull
socket on /var/run/salt/minion/minion_event_3edb48dc8f_pull.ipc
2025-01-06 21:12:57,344 [salt.minion
:284 ][INFO ][44897] Creating minion process manager
2025-01-06 21:12:57,347 [salt.minion
:284 ][INFO ][44897] Minion sleeping for 160 seconds due to configured
startup_delay between 0 and 180 seconds
2025-01-06 21:15:37,964 [salt.minion
:284 ][CRITICAL][44897] Unexpected error while connecting to
fde4:f456:48c2:13c0::1
Traceback (most recent call last):
File "/usr/local/lib/python3.12/site-packages/salt/minion.py", line 1148, in
_connect_minion
yield minion.connect_master(failed=failed)
File "/usr/local/lib/python3.12/site-packages/salt/ext/tornado/gen.py", line
1056, in run
value = future.result()
^^^^^^^^^^^^^^^
File
"/usr/local/lib/python3.12/site-packages/salt/ext/tornado/concurrent.py", line
249, in result
raise_exc_info(self._exc_info)
File "<string>", line 4, in raise_exc_info
File "/usr/local/lib/python3.12/site-packages/salt/ext/tornado/gen.py", line
1064, in run
yielded = self.gen.throw(*exc_info)
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/salt/minion.py", line 1389, in
connect_master
master, self.pub_channel = yield self.eval_master(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/salt/ext/tornado/gen.py", line
1056, in run
value = future.result()
^^^^^^^^^^^^^^^
File
"/usr/local/lib/python3.12/site-packages/salt/ext/tornado/concurrent.py", line
249, in result
raise_exc_info(self._exc_info)
File "<string>", line 4, in raise_exc_info
File "/usr/local/lib/python3.12/site-packages/salt/ext/tornado/gen.py", line
309, in wrapper
yielded = next(result)
^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/salt/minion.py", line 817, in
eval_master
pub_channel = salt.channel.client.AsyncPubChannel.factory(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/salt/channel/client.py", line
393, in factory
transport = salt.transport.publish_client(opts, io_loop)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.12/site-packages/salt/transport/base.py", line
90, in publish_client
import salt.transport.zeromq
File "/usr/local/lib/python3.12/site-packages/salt/transport/zeromq.py", line
15, in <module>
import zmq.eventloop.future
File "/usr/local/lib/python3.12/site-packages/zmq/eventloop/__init__.py",
line 3, in <module>
from tornado.ioloop import IOLoop
ModuleNotFoundError: No module named 'tornado'
..and loops with that `No module named 'tornado'` error filling up the
logs.
Trying:
# pkg_add -i py3-tornado
stops the exception of no module named tornado, but OpenBSD 7.6-stable
with salt-3006.9p0 cannot talk to -current with salt-3006.9p2. I think
this is different issue, so out of scope of what I reported. Minion now
complains with:
2025-01-06 21:39:36,584 [salt.minion:284 ][ERROR ][34129] Error while
bringing up minion for multi-master. Is master at fde4:f456:48c2:13c0::1
responding? The error message was Unable to sign_in to master: Attempt to
authenticate with the salt master failed with timeout error
However there is network IPv6 connectivity to the master, as it was for
many months:
pce-0033# nc -v -w5 fde4:f456:48c2:13c0::1 4505 | cat -v
Connection to fde4:f456:48c2:13c0::1 4505 port [tcp/*] succeeded!
pce-0033# nc -v -w5 fde4:f456:48c2:13c0::1 4506 | cat -v
Connection to fde4:f456:48c2:13c0::1 4506 port [tcp/*] succeeded!
I guess problem is again within Salt itself.
> Index: Makefile
> ===================================================================
> RCS file: /cvs/ports/sysutils/salt/Makefile,v
> diff -u -p -r1.188 Makefile
> --- Makefile 21 Dec 2024 11:38:54 -0000 1.188
> +++ Makefile 6 Jan 2025 17:40:39 -0000
> @@ -15,9 +15,9 @@
>
> COMMENT = remote execution and configuration management system
>
> -MODPY_DISTV = 3006.9
> +MODPY_DISTV = 3006.9
> DISTNAME = salt-${MODPY_DISTV}
> -REVISION = 1
> +REVISION = 2
>
> CATEGORIES = sysutils net devel
>
> Index: patches/patch-salt_ext_tornado_netutil_py
> ===================================================================
> RCS file: patches/patch-salt_ext_tornado_netutil_py
> diff -N patches/patch-salt_ext_tornado_netutil_py
> --- /dev/null 1 Jan 1970 00:00:00 -0000
> +++ patches/patch-salt_ext_tornado_netutil_py 6 Jan 2025 17:40:39 -0000
> @@ -0,0 +1,16 @@
> +Index: salt/ext/tornado/netutil.py
> +--- salt/ext/tornado/netutil.py.orig
> ++++ salt/ext/tornado/netutil.py
> +@@ -54,9 +54,9 @@ if hasattr(ssl, 'match_hostname') and hasattr(ssl, 'Ce
> + elif ssl is None:
> + ssl_match_hostname = SSLCertificateError = None # type: ignore
> + else:
> +- import backports.ssl_match_hostname
> +- ssl_match_hostname = backports.ssl_match_hostname.match_hostname
> +- SSLCertificateError = backports.ssl_match_hostname.CertificateError #
> type: ignore
> ++ import urllib3.util.ssl_match_hostname
> ++ ssl_match_hostname = urllib3.util.ssl_match_hostname
> ++ SSLCertificateError = urllib3.util.ssl_match_hostname.CertificateError
> # type: ignore
> +
> + if hasattr(ssl, 'SSLContext'):
> + if hasattr(ssl, 'create_default_context'):
>
--
Regards,
Mikolaj