From pyzmq version 23.0.0 there seems to be an incompatibility with the current implementation of the simulation server and pyzmq. It still works with the previous version 22.3.0. Upon calling the next() method on a karabo-bride client, a zmq error occurs.
Steps to reproduce this behaviour on Maxwell:
create a virtual environment and install karabo-bridge (this installs pyzmq v23.0.0 by default)
python3 -m venv test_pyzmq_env
source test_pyzmq_env/bin/activate
Start the simulated data generation in a python terminal:
>>> from karabo_bridge import start_gen>>> start_gen(1234)Simulated Karabo-bridge server started on:tcp://max-exfl-display001.desy.de:1234
Connect the client:
>>> from karabo_bridge import Client>>> krb_client = Client('tcp://max-exfl-display001.desy.de:1234')>>> krb_client.next()
now an error is reported:
Traceback (most recent call last):
File "\", line 1, in
File "/gpfs/exfel/data/scratch/jhoersch/test_pyzmq_env/lib/python3.7/site-packages/karabo_bridge/server.py", line 252, in start_gen
sender.loop()
File "/gpfs/exfel/data/scratch/jhoersch/test_pyzmq_env/lib/python3.7/site-packages/karabo_bridge/server.py", line 91, in loop
done = self.send(data, meta)
File "/gpfs/exfel/data/scratch/jhoersch/test_pyzmq_env/lib/python3.7/site-packages/karabo_bridge/server.py", line 64, in send
self.server_socket.send_multipart(payload, copy=False)
File "/gpfs/exfel/data/scratch/jhoersch/test_pyzmq_env/lib/python3.7/site-packages/zmq/sugar/socket.py", line 670, in send_multipart
self.send(msg, zmq.SNDMORE | flags, copy=copy, track=track)
File "/gpfs/exfel/data/scratch/jhoersch/test_pyzmq_env/lib/python3.7/site-packages/zmq/sugar/socket.py", line 615, in send
return super().send(data, flags=flags, copy=copy, track=track)
File "zmq/backend/cython/socket.pyx", line 740, in zmq.backend.cython.socket.Socket.send
File "zmq/backend/cython/socket.pyx", line 798, in zmq.backend.cython.socket.Socket.send
File "zmq/backend/cython/socket.pyx", line 249, in zmq.backend.cython.socket._send_copy
File "zmq/backend/cython/socket.pyx", line 244, in zmq.backend.cython.socket._send_copy
File "zmq/backend/cython/checkrc.pxd", line 28, in zmq.backend.cython.checkrc._check_rc
zmq.error.ZMQError: Operation cannot be accomplished in current state
From pyzmq version 23.0.0 there seems to be an incompatibility with the current implementation of the simulation server and pyzmq. It still works with the previous version 22.3.0. Upon calling the
next()
method on a karabo-bride client, a zmq error occurs.Steps to reproduce this behaviour on Maxwell:
create a virtual environment and install karabo-bridge (this installs pyzmq v23.0.0 by default)
python3 -m venv test_pyzmq_env
source test_pyzmq_env/bin/activate
Start the simulated data generation in a python terminal:
>>> from karabo_bridge import start_gen
>>> start_gen(1234)
Simulated Karabo-bridge server started on:
tcp://max-exfl-display001.desy.de:1234
Connect the client:
>>> from karabo_bridge import Client
>>> krb_client = Client('tcp://max-exfl-display001.desy.de:1234')
>>> krb_client.next()
now an error is reported:
Traceback (most recent call last): File "\", line 1, in
File "/gpfs/exfel/data/scratch/jhoersch/test_pyzmq_env/lib/python3.7/site-packages/karabo_bridge/server.py", line 252, in start_gen
sender.loop()
File "/gpfs/exfel/data/scratch/jhoersch/test_pyzmq_env/lib/python3.7/site-packages/karabo_bridge/server.py", line 91, in loop
done = self.send(data, meta)
File "/gpfs/exfel/data/scratch/jhoersch/test_pyzmq_env/lib/python3.7/site-packages/karabo_bridge/server.py", line 64, in send
self.server_socket.send_multipart(payload, copy=False)
File "/gpfs/exfel/data/scratch/jhoersch/test_pyzmq_env/lib/python3.7/site-packages/zmq/sugar/socket.py", line 670, in send_multipart
self.send(msg, zmq.SNDMORE | flags, copy=copy, track=track)
File "/gpfs/exfel/data/scratch/jhoersch/test_pyzmq_env/lib/python3.7/site-packages/zmq/sugar/socket.py", line 615, in send
return super().send(data, flags=flags, copy=copy, track=track)
File "zmq/backend/cython/socket.pyx", line 740, in zmq.backend.cython.socket.Socket.send
File "zmq/backend/cython/socket.pyx", line 798, in zmq.backend.cython.socket.Socket.send
File "zmq/backend/cython/socket.pyx", line 249, in zmq.backend.cython.socket._send_copy
File "zmq/backend/cython/socket.pyx", line 244, in zmq.backend.cython.socket._send_copy
File "zmq/backend/cython/checkrc.pxd", line 28, in zmq.backend.cython.checkrc._check_rc
zmq.error.ZMQError: Operation cannot be accomplished in current state