-
Notifications
You must be signed in to change notification settings - Fork 9
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
[Core Library] ZMQ Network Recovery after Network Loss #355
Conversation
…core lib version + Added pyproject.toml to fix editable install of core library + misc
…nnels to core log msg
Alright, this should be feature complete! |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The core feature looks good, but I have a handful of thoughts on the surrounding code changes.
@BluCodeGH Thank you so much for the insight! I just had some quick clarifying questions that I left as comments to your review and I'll get right to implementing the changes once they are answered. |
@BluCodeGH @zangjiucheng pls re-review |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, thanks Chris that's really amazing... I will even say it's 2.0 instead of 1.1 for core library lol. I leave a few comments there.
Code makes sense to me, I will test on that with usb debugger tmr to confirm it keeps working with real parsley signal. As soon as tomorrow an approve of this pr will be send.
Please create relative issues before we merge this in (Make sure we won't forgot those features wait to be fixed) (Could be just a title, I am going to give detail description later) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM, after testing on the GPS parser after message go offline. It can back online as expected.
@zangjiucheng Did a minor typing fix, could you re-approve? 🙏 Also left a comment #355 (comment). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Nice work! In the future it would be better to split stuff like this into multiple more focused PRs to make review easier (eg ZMQ changes, readme updates, yaml formatting, build info, etc as separate PRs).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
On the receiver, patch to reset the ZMQ socket whenever no messages are being received, so they can start receiving messages again automatically after connection loss. And other misc. changes. --------- Co-authored-by: waterloorocketry-common <132830721+waterloorocketry-common@users.noreply.github.com>
Description
Currently, there is an issue where
Receiver
, which extendsOmnibusCommunicator
, will deadlock when network connection is changed or lost when connecting to an external Omnibus Server. As a result, sinks stop working / fail silently. The solution currently envisioned is to reset the ZMQ socket whenever no messages are being received, so they can recover automatically after connection loss.reset()
function to Receiver class in Omnibus Core library, which re-establishes the connection to the Omnibus serverreset()
after not receiving messages for over 5 seconds (by default, 2 seconds for globallog), and reset every 5 seconds until a new message is received.gitpython
has been added as a dependency in order to print the build number. It is technically optional and nothing will crash without it, but it should be installed for all operation (so you can get the build number readout)setup.py develop
1.1.0
This PR closes #302 .
Developer Testing
Here's what I did to test my changes:
Reviewer Testing
Here's what you should do to quickly validate my changes:
This change is