-
Notifications
You must be signed in to change notification settings - Fork 2k
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
process new signage points no more than once #15624
base: main
Are you sure you want to change the base?
Conversation
I will not have time to develop a test to exercise this. we may have to punt or resort to manual testing |
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.
just putting a hold on this while i run it for a bit and explore
This PR has been flagged as stale due to no activity for over 60 days. It will not be automatically closed, but it has been given a stale-pr label and should be manually reviewed by the relevant parties. |
this change might fix #11757 |
This PR has been flagged as stale due to no activity for over 60 days. It will not be automatically closed, but it has been given a stale-pr label and should be manually reviewed by the relevant parties. |
|
…lso when receiving a new peak. Also, don't call it for SPs we already have
This PR has been flagged as stale due to no activity for over 60 days. It will not be automatically closed, but it has been given a stale-pr label and should be manually reviewed by the relevant parties. |
there are two places we call
signage_point_post_processing()
from.timelord_lock
. This ensures we don't receive the same SP multiple times and end up adding them multiple times. The checking if we have it, adding it and post processing all happens atomically, by holding thetimelord_lock
.This patch acquires the
timelord_lock
while iterating over the signage points in a new peak, to ensure the iteration does not interleave with receiving any new signage points. It also checks to see if we already have the signage point, and if so, skips calling the post processing function for it.This is believed to fix an issue where we sometimes would send the same signage point multiple times to the farmer.