behzad nouri
be957f25c9
adds fallback logic if retransmit multicast fails ( #17714 )
...
In retransmit-stage, based on the packet.meta.seed and resulting
children/neighbors, each packet is sent to a different set of peers:
https://github.com/solana-labs/solana/blob/708bbcb00/core/src/retransmit_stage.rs#L421-L457
However, current code errors out as soon as a multicast call fails,
which will skip all the remaining packets:
https://github.com/solana-labs/solana/blob/708bbcb00/core/src/retransmit_stage.rs#L467-L470
This can exacerbate packets loss in turbine.
This commit:
* keeps iterating over retransmit packets for loop even if some
intermediate sends fail.
* adds a fallback to UdpSocket::send_to if multicast fails.
Recent discord chat:
https://discord.com/channels/428295358100013066/689412830075551748/849530845052403733
2021-06-04 12:16:37 +00:00