Closed MrMoose closed 4 months ago
Yes, this is an unfortunate but deliberate documented change where the IPC support in libzmq caused unavoidable crashes for a number of users on Windows. So it was removed, because having a nice feature for some users seemed less important than having a working-at-all version for most users.
But you're in luck! pyzmq 26 has optimistically re-enabled IPC because there's been a libzmq release. If you could test the prerelease with pip install --pre pyzmq
, that would be fantastic. I am especially hopeful that the new build setup in v26 fixes issues on Windows (also fearful that it introduces new ones, hence the prerelease).
It is also unit tested, so it won't be removed by accident. I can't promise that it won't be removed if it turns out to still cause crashes, though.
Ah, okay. I did not realize this was a deliberate change. That explains it. I just tested the reproducer with the prerelease and it works. However, I will have to test the whole application with it, so this will take a while longer. I will comment here if it works.
Since I won't be able to use a prerelease in production, do you have some timeframe on when this is going to be the official release?
Not concrete, but hopefully soon. I'm trying to track down some cross-compilation issues, but the more 'works for me' reports I get from Windows folks, the better I'll feel.
Okay, I did a few tests with the current prerelease and, as expected, the issue with the unsupported protocol goes away. I did not notice any problems on my end. Seems to work fine. I guess we can close the file on that one. Agreed?
I'm closing this as it will already be fixed with the 26.x release once it is out. Thanks for your responses!
Thanks for testing and reporting back! I've got several things pressing me right now, but I do want to get this released soon.
This is a pyzmq bug
What pyzmq version?
25.1.2
What libzmq version?
libzmq-v141-mt-4_3_4-0a6f51ca.dll
Python version (and how it was installed)
Python 3.10
OS
Windows (10 and 11)
What happened?
Opening an IPC socket on Windows will yield: ZMQError Protocol not supported. This used to work with 23.0.0
Code to reproduce bug
Traceback, if applicable
More info
According to my guesswork this is because apparently the libzmq DLL used in the wheel got downgraded in the used ABI version. In 23.x there was: libzmq-v142-mt-4_3_4-4e355e3e.dll. Now in 25.x the used DLL is: libzmq-v141-mt-4_3_4-0a6f51ca.dll. My guess is that the ABI 141 does not support IPC as mentioned in this (closed) bug report: https://github.com/zeromq/pyzmq/issues/1462#issuecomment-831884567
So this would be a bit of a regression and should perhaps be unit tested.