On Wed, Jun 6, 2018 at 2:25 PM, Ondrej Zajicek <[email protected]> wrote:
> On Wed, Jun 06, 2018 at 01:33:53PM +0100, Thomás S. Bregolin wrote: > [...] > > I've attached a modified version of the test-withdraw script showing the > > issue. It seems my problem is related to the "start delay time" option. > > When I set it to 1, sometimes the withdrawal is sent, and sometimes it > > isn't. However, when it *isn't* sent, it is *never* sent, no matter how > > long I wait. The problem is solved by setting the timeout to a higher > > value, or using the default 5 seconds. > > Hello > > Note that in the modified version no protocols are removed, both testproto > and testproto2 are still configured and running. Just the BGP export > filter was changed, and because 'configure soft' was used, then it was > not reloaded. That is expected. > > But it is likely that if both changes happen simultaneously, i.e. a > static protocol is removed and a BGP export filter is changed to no > longer allow routes from that protocol, then withdraws are not sent. This > is likely a bug, could be avoided by not doing both protocol removal and > export filter change at the same time. > Oh, interesting! Indeed, if I remove just the filter or both the filter and route, the withdrawals are not sent. However, if I remove only the route, the withdrawal is sent. Indeed, as you say, it sounds like a bug. For two reasons: - BIRD should never remove a protocol without sending a withdrawal (unless that is wanted as a feature or configuration option); - There is no reason why removing the filter at the same time as the route should change the behaviour; Thank you once again for looking into this. Please let me know if I should write up a proper bug report and send it here. Thomás
