Skip to content

write() in concore.py doesn't return after ZMQ send, every ZMQ write also does a redundant file write #238

@avinxshKD

Description

@avinxshKD

Was reading through the ZMQ integration in concore.py and noticed write() is missing a return after the ZMQ send path.

In read() (around line 196), the ZMQ branch correctly does return message after receiving data, so it never hits the file-based path. But in write() (around line 268), after send_json_with_retry() succeeds, there's no return — execution just falls through into the file-based write logic below it.

What happens next is weird: the file-path construction block checks if port_identifier in zmq_ports again and builds a path like "../" + port_identifier + "/" + name, then tries to write to that path on disk. So every ZMQ write is also creating a stale file somewhere on the filesystem, or throwing an error silently.

Compare the two:

# read() — correct, returns after ZMQ
if isinstance(port_identifier, str) and port_identifier in zmq_ports:
    ...
    return message   # <-- exits here

# write() — falls through
if isinstance(port_identifier, str) and port_identifier in zmq_ports:
    zmq_p.send_json_with_retry(val)
    # no return here, keeps going into file write

Fix will be just adding return at the end of the ZMQ branch in write(), same pattern as read().

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions