]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Table export: Relaxing too strict inconsistency assert
authorMaria Matejka <mq@ucw.cz>
Mon, 10 Mar 2025 08:15:53 +0000 (09:15 +0100)
committerMaria Matejka <mq@ucw.cz>
Mon, 10 Mar 2025 08:20:21 +0000 (09:20 +0100)
In case of refeeds, we may get old routes which we have not seen,
the table does not know that and the channel ingress is the right place
to detect it.

Bug introduced in commit 25557fceb08c8db6daead02a2f4b7a99d8a1f922
by Maria Matejka <mq@ucw.cz>, Mon Mar 3 19:48:58 2025 +0100

    Table export: Another inconsistency in refeeds

nest/rt-table.c

index 648f18640c445c5671f3ef15d3f98f453d76cf99..553849cec4b17eea0b8581ac228a1afdf38fdd5c 100644 (file)
@@ -1184,7 +1184,7 @@ rt_notify_basic(struct channel *c, const rte *new, const rte *old)
     /* If the old route exists, it is either in rejected or in accepted map. */
     int rejected = bmap_test(&c->export_rejected_map, old->id);
     int accepted = bmap_test(&c->export_accepted_map, old->id);
-    ASSERT_DIE(rejected != accepted);
+    ASSERT_DIE(!rejected || !accepted);
 
     if (rejected)
     {