I've updated koji01.stg to f35, but this plugin fails on load:
2021-12-06 23:24:47,709 [WARNING] m=None u=None p=16672 r=?:? koji: Setting resource limit: RLIMIT_AS = [10737418240, -1] 2021-12-06 23:24:47,887 [ERROR] m=None u=None p=16672 r=?:? koji.plugin: Loading plugin fedmsg-koji-plugin failed 2021-12-06 23:24:47,890 [ERROR] m=None u=None p=16672 r=?:? koji.plugins: Traceback (most recent call last): File "/usr/share/koji-hub/kojixmlrpc.py", line 510, in load_plugins tracker.load(name) File "/usr/lib/python3.10/site-packages/koji/plugin.py", line 103, in load plugin_spec.loader.exec_module(plugin) File "<frozen importlib._bootstrap_external>", line 883, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/usr/lib/koji-hub-plugins/fedmsg-koji-plugin.py", line 18, in <module> import fedora_messaging.api File "/usr/lib/python3.10/site-packages/fedora_messaging/api.py", line 7, in <module> from twisted.internet import reactor, defer File "/usr/lib/python3.10/site-packages/twisted/internet/reactor.py", line 38, in <module> from twisted.internet import default File "/usr/lib/python3.10/site-packages/twisted/internet/default.py", line 55, in <module> install = _getInstallFunction(platform) File "/usr/lib/python3.10/site-packages/twisted/internet/default.py", line 43, in _getInstallFunction from twisted.internet.epollreactor import install File "/usr/lib/python3.10/site-packages/twisted/internet/epollreactor.py", line 19, in <module> from twisted.internet import posixbase File "/usr/lib/python3.10/site-packages/twisted/internet/posixbase.py", line 20, in <module> from twisted.internet import error, udp, tcp File "/usr/lib/python3.10/site-packages/twisted/internet/tcp.py", line 37, in <module> from twisted.internet._newtls import ( File "/usr/lib/python3.10/site-packages/twisted/internet/_newtls.py", line 19, in <module> from twisted.protocols.tls import TLSMemoryBIOFactory, TLSMemoryBIOProtocol File "/usr/lib/python3.10/site-packages/twisted/protocols/tls.py", line 66, in <module> from twisted.internet._sslverify import _setAcceptableProtocols File "/usr/lib/python3.10/site-packages/twisted/internet/_sslverify.py", line 1834, in <module> defaultCiphers = OpenSSLAcceptableCiphers.fromOpenSSLCipherString( File "/usr/lib/python3.10/site-packages/twisted/internet/_sslverify.py", line 1811, in fromOpenSSLCipherString _expandCipherString( File "/usr/lib/python3.10/site-packages/twisted/internet/_sslverify.py", line 1759, in _expandCipherString return tuple(OpenSSLCipher(cipher) for cipher in ciphers) File "/usr/lib/python3.10/site-packages/twisted/internet/_sslverify.py", line 1759, in <genexpr> return tuple(OpenSSLCipher(cipher) for cipher in ciphers) TypeError: OpenSSLCipher() takes no arguments
Oddly, it looks like something in twisted / fedora-messaging? at a loss.
You can edit /etc/koji-hub/hub.cfg and re-add fedmsg-koji-plugin to the Plugins line to duplicate it.
CC: @abompard @pingou
Oh, this is blocking my upgrading to f35 in prod (which I only have this week for before I am on PTO). :(
Looks to be coming from twisted
The code seems to still be there in "trunk": https://github.com/twisted/twisted/blob/trunk/src/twisted/internet/_sslverify.py#L1758-L1761
Hmm, can't reproduce it on the koji.stg host. I'm just restarting apache, is there something else to do to reproduce it? It may be because there's no space left on /mnt/fedora_koji, what can I do to clean it up a bit?
/mnt/fedora_koji
I've cleaned up space, re-enabled the plugin and restarted it.
It should be erroring away now.
Still looking into it. It's really weird, some incompatbility between the attrs package and the way koji sets up plugins maybe. I can reproduce it by writing this dummy koji plugin:
attrs
import attr @attr.s class TestClass: foo = attr.ib() TestClass("debug")
I tried downgrading the attrs package but no change.
So...
[07:43:25] nirik: is it just me, or the rights seems a bit off? [07:43:28] --w----r-T. 1 root root 9004 Aug 26 2020 /usr/lib/koji-hub-plugins/fedmsg-koji-plugin.py [07:43:49] (that's on koji01.stg) [07:45:40] mode: 644 [07:46:23] yep [07:46:31] should be mode: 0644 [07:46:36] or mode: "644"
So, I did a chmod 0644 on it and restarted and... it seems like it's working now?
Ah, it's disabled, so the perms had nothing to do with it. :)
It seems to be a much deeper problem, some references that are similar to the problem we're having:
I don't know what's going on, I'll investigate further.
Darknao suggests the following workaround: - patching twisted to use @attr.define() instead of @attr.s - using a mod_wsgi version built on Python 3.9. It does not seem to be available in Fedora so we'd have to build that package.
@attr.define()
@attr.s
mod_wsgi
The second workaround seems more error-proof, I can build that package if we want to go this route, until a proper fix is discovered by someone somewhere.
I've opened a bugzilla ticket: https://bugzilla.redhat.com/show_bug.cgi?id=2030621
Miro is looking at the issue, which seems to be a python bug indeed. In the meantime I have built mod_wsgi for python3.9, if we need a fix more urgently:
https://abompard.fedorapeople.org/misc/python3.9-mod_wsgi/
I have confirmed that it works on my F35 VM. Should I build it in koji's infra tag and deploy it on koji01.stg?
koji01.stg
Huh, how does that interact with the rest of the stack thats running python 3.10 tho?
I'm not sure I understand how it works, but I guess if it does, sure, go ahead and build it and update stg.
Looks like there's a fix for python3.10 proposed. Hopefully it will go out in a stable build soon and I can update.
Stg is running the scratch build