-
Notifications
You must be signed in to change notification settings - Fork 893
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
gossipd: push our own gossip messages harder. #3152
gossipd: push our own gossip messages harder. #3152
Conversation
ec72bb2
to
b014a7e
Compare
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 ACK b014a7e
Wait travis-ci
struct peer *peer; | ||
|
||
list_for_each(&daemon->peers, peer, list) | ||
queue_peer_msg(peer, msg); |
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.
Sorry for my "too early" ACK.
If we call push_gossip(daemon, take(msg))
, here msg
is regarded as TAKEN
not only in push_gossip()
, but also in queue_peer_msg()
.
In this loop, if the parameter msg
is marked as TAKEN
, then the first queue_peer_msg
would free
it.
So, maybe msg
shouldn't be declared as "TAKES" in void push_gossip(struct daemon *daemon, const u8 *msg TAKES)
.
Is this reason accurate?
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.
Yep, good catch. Will fix...
b014a7e
to
e677a0c
Compare
Rebased and fixed thinko, as diagnosed by @trueptolemy |
e677a0c
to
bf7c72c
Compare
Indeed LGTM now, but always TIMEOUT on travis-ci. |
I had a report of a 0.7.2 user whose node hadn't appeared on 1ml. Their node_announcement wasn't visible to my node, either. I suspect this is a consequence of recent version reducing the amount of gossip they send, as well as large nodes increasingly turning off gossip altogether from some peers (as we do). We should ignore timestamp filters for our own channels: the easiest way to do this is to push them out directly from gossipd (other messages are sent via the store). We change channeld to wrap the local channel_announcements: previously we just handed it to gossipd as for any other gossip message we received from our peer. Now gossipd knows to push it out, as it's local. This interferes with the logic in tests/test_misc.py::test_htlc_send_timeout which expects the node_announcement message last, so we generalize that too. [ Thanks to @trueptolmy for bugfix! ] Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
bf7c72c
to
80e50ba
Compare
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.
ACK 80e50ba
ACK 80e50ba |
I had a report of a 0.7.2 user whose node hadn't appeared on 1ml. Their
node_announcement wasn't visible to my node, either.
I suspect this is a consequence of recent version reducing the amount of
gossip they send, as well as large nodes increasingly turning off gossip
altogether from some peers (as we do). We should ignore timestamp filters
for our own channels: the easiest way to do this is to push them out
directly from gossipd (other messages are sent via the store).
Signed-off-by: Rusty Russell rusty@rustcorp.com.au