-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
【zmq 4.3.4】pub-sub(tcp protocol) mode crash by _io_error #4364
Comments
Any advice on how to avoid this bug |
anyone can offer help? Thanks |
Not sure if this is still relevant, but leaving a comment just in case. I ran into this through the golang wrapper for this library ( My suggestion for a "work-around" would be to review where things are blocking (i.e on mutexes), where threads are being launched, and when threads are being scheduled to try to ensure that any zmq socket threads never block for more than heartbeat duration. |
@jmwample thanks for your suggestion |
Please use this template for reporting suspected bugs or requests for help.
Issue description
when use ZMQ_PUB ZMQ_SUB and set heart_beat_timout maybe crash by _io_error
error message
Assertion failed: !_io_error (/home/users/jiangkuan.liu/tools/zeromq-4.3.4/src/stream_engine_base.cpp:331)
Environment
Minimal test code / Steps to reproduce the issue
1. Minimal test code
PUB code
SUB code
2. steps
first run sub program, and then run pub program
if first run two sub programs, and then run pub program will be more easy to produce this error
if i set ZMQ_HEARTBEAT_TIMEOUT 0 or not set ZMQ_HEARTBEAT_TIMEOUT , it will not crash.
if i set ZMQ_HEARTBEAT_TIMEOUT more large number, it will very difficult to create this bug
i know set ZMQ_HEARTBEAT_TIMEOUT euqal to ZMQ_HEARTBEAT_IVL, and use a very small value is not normal, but it is just easy to create this bug.
if i set reasonable ZMQ_HEARTBEAT_TIMEOUT and ZMQ_HEARTBEAT_IVL, it just very difficult to happen this bug, but it is also has possibility to create this bug.
What's the actual result? (include assertion message & call stack if applicable)
crash by assert failed _io_error
crash by assert failed _input_stoped
What's the expected result?
in this situation, it will not crash
The text was updated successfully, but these errors were encountered: