This is the same bug that was fixed in concore.py via #238 / PR #242, but the fix was never applied to... concoredocker.py.
In concoredocker.py write() (around line 276), after a successful ZMQ send there's no return. Execution keeps going into the file-based write block, which calls int(port_identifier) on a ZMQ string name like "FUNBODY_REP_1" and throws a ValueError, logging a bogus error on every single ZMQ write
if isinstance(port_identifier, str) and port_identifier in zmq_ports:
zmq_p = zmq_ports[port_identifier]
try:
zmq_p.send_json_with_retry(val)
except ...
# no return — falls through
try:
file_port_num = int(port_identifier) # blows up on ZMQ names
Compare with concore.py line ~395 which now correctly has return after the ZMQ block.
Also, the ZMQ path here sends raw val without prepending simtime + delta , that was separately fixed in concore.py via #244 / PR #258, but again never in concoredocker.py.
This is the same bug that was fixed in concore.py via #238 / PR #242, but the fix was never applied to... concoredocker.py.
In concoredocker.py write() (around line 276), after a successful ZMQ send there's no return. Execution keeps going into the file-based write block, which calls int(port_identifier) on a ZMQ string name like "FUNBODY_REP_1" and throws a ValueError, logging a bogus error on every single ZMQ write
Compare with concore.py line ~395 which now correctly has return after the ZMQ block.
Also, the ZMQ path here sends raw val without prepending simtime + delta , that was separately fixed in concore.py via #244 / PR #258, but again never in concoredocker.py.