FRRouting / frr

The FRRouting Protocol Suite

Home Page:https://frrouting.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Missing ECMP nexthops for OSPFv3 inter-area routes

gromit1811 opened this issue · comments

Description

Since 217e505, topotest ospf6_ecmp_inter_area intermittently fails due to a wrong number of nexthops for certain routes. See comments to #16055 where this was mentioned initially and further discussion in comments to #15899.

Failure rates are ~10% in my tests but vary wildly (I also saw 200 successful runs in a row). @acooks-at-bda reported a 100% failure rate in his tests, but I've been unable to get anywhere near when I tried to reproduce his environment.

When the error occurs, the initial pre-condition nexthop check in

expect_num_nexthops("r1", [1, 1, 1, 1, 2, 3, 3, 3, 3], 4)
fails.

Note: This report is mostly a placeholder to record the fact that I'm investigating this. I can't dedicate too much time to it, so if somebody wants to help or is faster than me, be my guest 😉

Version

Git master 217e505a67df1ac03483f7c9a97cf4947dd40707

How to reproduce

pytest tests/topotests/ospf6_ecmp_inter_area

Expected behavior

Test succeeds

Actual behavior

Test sometimes fails with errors like this (nexthop pattern is not always exactly the same):

======================================= test session starts ========================================
platform linux -- Python 3.12.3, pytest-7.4.3, pluggy-1.3.0
rootdir: /home/frr/frr/tests/topotests
configfile: pytest.ini
collected 3 items                                                                                  

tests/topotests/ospf6_ecmp_inter_area/test_ospf6_ecmp_inter_area.py .Fs                      [100%]

============================================= FAILURES =============================================
_______________________________________ test_ecmp_inter_area _______________________________________

    def test_ecmp_inter_area():
        "Test whether OSPFv3 ECMP nexthops are properly updated for inter-area routes after link down"
        tgen = get_topogen()
        if tgen.routers_have_failure():
            pytest.skip(tgen.errors)
    
        def num_nexthops(router):
            # Careful: "show ipv6 ospf6 route json" doesn't work here. It will
            # only list one route type per prefix and that might not necessarily
            # be the best/selected route. "show ipv6 route ospf6 json" only
            # lists selected routes, so that's more useful in this case.
            routes = tgen.gears[router].vtysh_cmd("show ipv6 route ospf6 json", isjson=True)
            route_prefixes_infos = sorted(routes.items())
            # Note: ri may contain one entry per routing protocol, but since
            # we've explicitly requested only ospf6 above, we can count on ri[0]
            # being the entry we're looking for.
            return [ri[0]["internalNextHopActiveNum"] for rp, ri in route_prefixes_infos]
    
        def expect_num_nexthops(router, expected_num_nexthops, count):
            "Wait until number of nexthops for routes matches expectation"
            logger.info(
                "waiting for OSPFv3 router '{}' nexthops {}".format(
                    router, expected_num_nexthops
                )
            )
            test_func = partial(num_nexthops, router)
            _, result = topotest.run_and_expect(
                test_func, expected_num_nexthops, count=count, wait=3
            )
            assert (
                result == expected_num_nexthops
            ), "'{}' wrong number of route nexthops".format(router)
    
        # Check nexthops pre link-down
        # tgen.mininet_cli()
>       expect_num_nexthops("r1", [1, 1, 1, 1, 2, 3, 3, 3, 3], 4)

/home/frr/frr/tests/topotests/ospf6_ecmp_inter_area/test_ospf6_ecmp_inter_area.py:195: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

router = 'r1', expected_num_nexthops = [1, 1, 1, 1, 2, 3, ...], count = 4

    def expect_num_nexthops(router, expected_num_nexthops, count):
        "Wait until number of nexthops for routes matches expectation"
        logger.info(
            "waiting for OSPFv3 router '{}' nexthops {}".format(
                router, expected_num_nexthops
            )
        )
        test_func = partial(num_nexthops, router)
        _, result = topotest.run_and_expect(
            test_func, expected_num_nexthops, count=count, wait=3
        )
>       assert (
            result == expected_num_nexthops
        ), "'{}' wrong number of route nexthops".format(router)
E       AssertionError: 'r1' wrong number of route nexthops
E       assert [1, 1, 1, 1, 2, 1, ...] == [1, 1, 1, 1, 2, 3, ...]
E         At index 5 diff: 1 != 3
E         Use -v to get more diff

/home/frr/frr/tests/topotests/ospf6_ecmp_inter_area/test_ospf6_ecmp_inter_area.py:189: AssertionError
---------------------------------------- Captured log call -----------------------------------------
2024-06-11 18:11:15,253 ERROR: topo: 'num_nexthops' failed after 12.30 seconds
------------------------- generated xml file: /tmp/topotests/topotests.xml -------------------------
===================================== short test summary info ======================================
FAILED tests/topotests/ospf6_ecmp_inter_area/test_ospf6_ecmp_inter_area.py::test_ecmp_inter_area - AssertionError: 'r1' wrong number of route nexthops
============================= 1 failed, 1 passed, 1 skipped in 34.32s ==============================

Additional context

The actual issue seems to be that sometimes one of the 2 ABRs (R5 and R6) doesn't originate an Inter-Router LSAs (type 4) when it should, causing a path to the destination (R7) to be lost. I don't know yet why that happens.

Note: The problem is most likely neither caused by 217e505 nor by b925570 (the bugfix which the topotest update is trying to verify) but existed before. It was noticed only now just because there was no testcase for inter-area ECMP routes before.

Checklist

  • I have searched the open issues for this bug.
  • I have not included sensitive information in this report.

I analyzed one failure (with Git 82dcb1d, slightly newer than the one mentioned above) and I think I know what's happening, but not yet why...

In this case, R5 originated the expected Inter-Router LSA for R7, but R6 didn't (ultimately). Full logs attached:

ospf6d-startup-r5.log
ospf6d-startup-r6.log

Events related to the R7 Inter-Router LSA, both from R5 (left) and R6 (right), commented:

# R6 originates the LSA in area 0:
2024/06/12 12:37:51.296041         OSPF6: [T0FMF-6KKCP] ospf6_abr_originate_summary: route 10.254.254.7
2024/06/12 12:37:51.296043         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 0, route 10.254.254.7
2024/06/12 12:37:51.296045         OSPF6: [JJ7N3-VVYV2] Originating summary in area 0 for ASBR 10.254.254.7
2024/06/12 12:37:51.296131         OSPF6: [TQB4M-JQ72Z] LSA Originate:
2024/06/12 12:37:51.296133         OSPF6: [GNRNM-HX7W3]     [Inter-Router Id:10.254.254.7 Adv:10.254.254.6]
2024/06/12 12:37:51.296135         OSPF6: [HA4BY-46K3Y]     Age:    0 SeqNum: 0x80000001 Cksum: 0fe1 Len: 32
2024/06/12 12:37:51.296215         OSPF6: [XKC5G-YW93A] ospf6_abr_originate_summary_to_area : finish area 0
2024/06/12 12:37:51.296216         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 1, route 10.254.254.7
2024/06/12 12:37:51.296218         OSPF6: [WVWH0-3KHW3] ospf6_abr_originate_summary_to_area: The route is in the area itself, ignore

# R5 receives this and originates it in area 1 (right now, it doesn't see the direct connection to R7 in area 1 yet):
2024/06/12 12:37:51.299562 OSPF6: [T0FMF-6KKCP] ospf6_abr_originate_summary: route 10.254.254.7
2024/06/12 12:37:51.299563 OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 0, route 10.254.254.7
2024/06/12 12:37:51.299565 OSPF6: [WVWH0-3KHW3] ospf6_abr_originate_summary_to_area: The route is in the area itself, ignore
2024/06/12 12:37:51.299566 OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 1, route 10.254.254.7
2024/06/12 12:37:51.299568 OSPF6: [JJ7N3-VVYV2] Originating summary in area 1 for ASBR 10.254.254.7
2024/06/12 12:37:51.299588 OSPF6: [TQB4M-JQ72Z] LSA Originate:
2024/06/12 12:37:51.299591 OSPF6: [GNRNM-HX7W3]     [Inter-Router Id:10.254.254.7 Adv:10.254.254.5]
2024/06/12 12:37:51.299593 OSPF6: [HA4BY-46K3Y]     Age:    0 SeqNum: 0x80000001 Cksum: a623 Len: 32
2024/06/12 12:37:51.299631 OSPF6: [XKC5G-YW93A] ospf6_abr_originate_summary_to_area : finish area 1

# R5 now sees the direct connection to R7 and originates the LSA in area 0:
2024/06/12 12:37:51.302592 OSPF6: [T0FMF-6KKCP] ospf6_abr_originate_summary: route 10.254.254.7
2024/06/12 12:37:51.302594 OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 0, route 10.254.254.7
2024/06/12 12:37:51.302596 OSPF6: [JJ7N3-VVYV2] Originating summary in area 0 for ASBR 10.254.254.7
2024/06/12 12:37:51.302675 OSPF6: [TQB4M-JQ72Z] LSA Originate:
2024/06/12 12:37:51.302677 OSPF6: [GNRNM-HX7W3]     [Inter-Router Id:10.254.254.7 Adv:10.254.254.5]
2024/06/12 12:37:51.302679 OSPF6: [HA4BY-46K3Y]     Age:    0 SeqNum: 0x80000001 Cksum: 15dc Len: 32
2024/06/12 12:37:51.302739 OSPF6: [XKC5G-YW93A] ospf6_abr_originate_summary_to_area : finish area 0
2024/06/12 12:37:51.302741 OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 1, route 10.254.254.7
2024/06/12 12:37:51.302743 OSPF6: [WVWH0-3KHW3] ospf6_abr_originate_summary_to_area: The route is in the area itself, ignore

# R5 expires its original LSA in area 1 because the path to R7 via area 0 and R6 is no longer the best:
2024/06/12 12:37:51.304010 OSPF6: [T0FMF-6KKCP] ospf6_abr_originate_summary: route 10.254.254.7
2024/06/12 12:37:51.304012 OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 0, route 10.254.254.7
2024/06/12 12:37:51.304014 OSPF6: [WVWH0-3KHW3] ospf6_abr_originate_summary_to_area: The route is in the area itself, ignore
2024/06/12 12:37:51.304015 OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 1, route 10.254.254.7
2024/06/12 12:37:51.304018 OSPF6: [JJ7N3-VVYV2] Originating summary in area 1 for ASBR 10.254.254.7
2024/06/12 12:37:51.304073 OSPF6: [XQWSV-5GJQ6] This is the secondary path to the ASBR, ignore
2024/06/12 12:37:51.304081 OSPF6: [WA749-NPMHH] LSA: Premature aging: [Inter-Router Id:10.254.254.7 Adv:10.254.254.5]
2024/06/12 12:37:51.304087 OSPF6: [SYY2T-BK418] LSA Expire:
2024/06/12 12:37:51.304090 OSPF6: [GNRNM-HX7W3]     [Inter-Router Id:10.254.254.7 Adv:10.254.254.5]
2024/06/12 12:37:51.304091 OSPF6: [HA4BY-46K3Y]     Age: 3600 SeqNum: 0x80000001 Cksum: a623 Len: 32

# At this time, everything would be as it should.
# But R6 now thinks its LSA in area 0 no longer describes the best path (even though it still does) and expires it. This causes the missing nexthop at R1:
2024/06/12 12:37:51.346949         OSPF6: [T0FMF-6KKCP] ospf6_abr_originate_summary: route 10.254.254.7
2024/06/12 12:37:51.346950         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 0, route 10.254.254.7
2024/06/12 12:37:51.346953         OSPF6: [JJ7N3-VVYV2] Originating summary in area 0 for ASBR 10.254.254.7
2024/06/12 12:37:51.346954         OSPF6: [XQWSV-5GJQ6] This is the secondary path to the ASBR, ignore
2024/06/12 12:37:51.346963         OSPF6: [WA749-NPMHH] LSA: Premature aging: [Inter-Router Id:10.254.254.7 Adv:10.254.254.6]
2024/06/12 12:37:51.346978         OSPF6: [SYY2T-BK418] LSA Expire:
2024/06/12 12:37:51.346980         OSPF6: [GNRNM-HX7W3]     [Inter-Router Id:10.254.254.7 Adv:10.254.254.6]
2024/06/12 12:37:51.346982         OSPF6: [HA4BY-46K3Y]     Age: 3600 SeqNum: 0x80000001 Cksum: 0fe1 Len: 32
2024/06/12 12:37:51.347061         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 1, route 10.254.254.7
2024/06/12 12:37:51.347063         OSPF6: [WVWH0-3KHW3] ospf6_abr_originate_summary_to_area: The route is in the area itself, ignore

# R6 originates its LSA again, just to expire it again immediately afterwards. This cycle repeats a few times:
2024/06/12 12:37:51.347608         OSPF6: [T0FMF-6KKCP] ospf6_abr_originate_summary: route 10.254.254.7
2024/06/12 12:37:51.347610         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 0, route 10.254.254.7
2024/06/12 12:37:51.347612         OSPF6: [JJ7N3-VVYV2] Originating summary in area 0 for ASBR 10.254.254.7
2024/06/12 12:37:51.347634         OSPF6: [TQB4M-JQ72Z] LSA Originate:
2024/06/12 12:37:51.347636         OSPF6: [GNRNM-HX7W3]     [Inter-Router Id:10.254.254.7 Adv:10.254.254.6]
2024/06/12 12:37:51.347638         OSPF6: [HA4BY-46K3Y]     Age:    0 SeqNum: 0x80000002 Cksum: 0de2 Len: 32
2024/06/12 12:37:51.347742         OSPF6: [XKC5G-YW93A] ospf6_abr_originate_summary_to_area : finish area 0
2024/06/12 12:37:51.347743         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 1, route 10.254.254.7
2024/06/12 12:37:51.347798         OSPF6: [WVWH0-3KHW3] ospf6_abr_originate_summary_to_area: The route is in the area itself, ignore

2024/06/12 12:37:51.347827         OSPF6: [T0FMF-6KKCP] ospf6_abr_originate_summary: route 10.254.254.7
2024/06/12 12:37:51.347829         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 0, route 10.254.254.7
2024/06/12 12:37:51.347831         OSPF6: [JJ7N3-VVYV2] Originating summary in area 0 for ASBR 10.254.254.7
2024/06/12 12:37:51.347833         OSPF6: [XQWSV-5GJQ6] This is the secondary path to the ASBR, ignore
2024/06/12 12:37:51.347841         OSPF6: [WA749-NPMHH] LSA: Premature aging: [Inter-Router Id:10.254.254.7 Adv:10.254.254.6]
2024/06/12 12:37:51.347860         OSPF6: [SYY2T-BK418] LSA Expire:
2024/06/12 12:37:51.347863         OSPF6: [GNRNM-HX7W3]     [Inter-Router Id:10.254.254.7 Adv:10.254.254.6]
2024/06/12 12:37:51.347865         OSPF6: [HA4BY-46K3Y]     Age: 3600 SeqNum: 0x80000002 Cksum: 0de2 Len: 32
2024/06/12 12:37:51.347939         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 1, route 10.254.254.7
2024/06/12 12:37:51.347940         OSPF6: [WVWH0-3KHW3] ospf6_abr_originate_summary_to_area: The route is in the area itself, ignore

2024/06/12 12:37:52.126621         OSPF6: [T0FMF-6KKCP] ospf6_abr_originate_summary: route 10.254.254.7
2024/06/12 12:37:52.126622         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 0, route 10.254.254.7
2024/06/12 12:37:52.126624         OSPF6: [JJ7N3-VVYV2] Originating summary in area 0 for ASBR 10.254.254.7
2024/06/12 12:37:52.126647         OSPF6: [TQB4M-JQ72Z] LSA Originate:
2024/06/12 12:37:52.126649         OSPF6: [GNRNM-HX7W3]     [Inter-Router Id:10.254.254.7 Adv:10.254.254.6]
2024/06/12 12:37:52.126651         OSPF6: [HA4BY-46K3Y]     Age:    0 SeqNum: 0x80000003 Cksum: 0be3 Len: 32
2024/06/12 12:37:52.126811         OSPF6: [XKC5G-YW93A] ospf6_abr_originate_summary_to_area : finish area 0
2024/06/12 12:37:52.126812         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 1, route 10.254.254.7
2024/06/12 12:37:52.126814         OSPF6: [WVWH0-3KHW3] ospf6_abr_originate_summary_to_area: The route is in the area itself, ignore

2024/06/12 12:37:52.126837         OSPF6: [T0FMF-6KKCP] ospf6_abr_originate_summary: route 10.254.254.7
2024/06/12 12:37:52.126838         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 0, route 10.254.254.7
2024/06/12 12:37:52.126841         OSPF6: [JJ7N3-VVYV2] Originating summary in area 0 for ASBR 10.254.254.7
2024/06/12 12:37:52.126843         OSPF6: [XQWSV-5GJQ6] This is the secondary path to the ASBR, ignore
2024/06/12 12:37:52.126850         OSPF6: [WA749-NPMHH] LSA: Premature aging: [Inter-Router Id:10.254.254.7 Adv:10.254.254.6]
2024/06/12 12:37:52.126870         OSPF6: [SYY2T-BK418] LSA Expire:
2024/06/12 12:37:52.126873         OSPF6: [GNRNM-HX7W3]     [Inter-Router Id:10.254.254.7 Adv:10.254.254.6]
2024/06/12 12:37:52.126874         OSPF6: [HA4BY-46K3Y]     Age: 3600 SeqNum: 0x80000003 Cksum: 0be3 Len: 32
2024/06/12 12:37:52.126948         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 1, route 10.254.254.7
2024/06/12 12:37:52.126950         OSPF6: [WVWH0-3KHW3] ospf6_abr_originate_summary_to_area: The route is in the area itself, ignore

2024/06/12 12:37:52.176949         OSPF6: [T0FMF-6KKCP] ospf6_abr_originate_summary: route 10.254.254.7
2024/06/12 12:37:52.176951         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 0, route 10.254.254.7
2024/06/12 12:37:52.176953         OSPF6: [JJ7N3-VVYV2] Originating summary in area 0 for ASBR 10.254.254.7
2024/06/12 12:37:52.176977         OSPF6: [TQB4M-JQ72Z] LSA Originate:
2024/06/12 12:37:52.176979         OSPF6: [GNRNM-HX7W3]     [Inter-Router Id:10.254.254.7 Adv:10.254.254.6]
2024/06/12 12:37:52.176981         OSPF6: [HA4BY-46K3Y]     Age:    0 SeqNum: 0x80000004 Cksum: 09e4 Len: 32
2024/06/12 12:37:52.177146         OSPF6: [XKC5G-YW93A] ospf6_abr_originate_summary_to_area : finish area 0
2024/06/12 12:37:52.177147         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 1, route 10.254.254.7
2024/06/12 12:37:52.177149         OSPF6: [WVWH0-3KHW3] ospf6_abr_originate_summary_to_area: The route is in the area itself, ignore

2024/06/12 12:37:52.177172         OSPF6: [T0FMF-6KKCP] ospf6_abr_originate_summary: route 10.254.254.7
2024/06/12 12:37:52.177173         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 0, route 10.254.254.7
2024/06/12 12:37:52.177176         OSPF6: [JJ7N3-VVYV2] Originating summary in area 0 for ASBR 10.254.254.7
2024/06/12 12:37:52.177177         OSPF6: [XQWSV-5GJQ6] This is the secondary path to the ASBR, ignore
2024/06/12 12:37:52.177185         OSPF6: [WA749-NPMHH] LSA: Premature aging: [Inter-Router Id:10.254.254.7 Adv:10.254.254.6]
2024/06/12 12:37:52.177205         OSPF6: [SYY2T-BK418] LSA Expire:
2024/06/12 12:37:52.177207         OSPF6: [GNRNM-HX7W3]     [Inter-Router Id:10.254.254.7 Adv:10.254.254.6]
2024/06/12 12:37:52.177209         OSPF6: [HA4BY-46K3Y]     Age: 3600 SeqNum: 0x80000004 Cksum: 09e4 Len: 32
2024/06/12 12:37:52.177282         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 1, route 10.254.254.7
2024/06/12 12:37:52.177284         OSPF6: [WVWH0-3KHW3] ospf6_abr_originate_summary_to_area: The route is in the area itself, ignore

2024/06/12 12:37:54.629330         OSPF6: [T0FMF-6KKCP] ospf6_abr_originate_summary: route 10.254.254.7
2024/06/12 12:37:54.629331         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 0, route 10.254.254.7
2024/06/12 12:37:54.629333         OSPF6: [JJ7N3-VVYV2] Originating summary in area 0 for ASBR 10.254.254.7
2024/06/12 12:37:54.629356         OSPF6: [TQB4M-JQ72Z] LSA Originate:
2024/06/12 12:37:54.629359         OSPF6: [GNRNM-HX7W3]     [Inter-Router Id:10.254.254.7 Adv:10.254.254.6]
2024/06/12 12:37:54.629361         OSPF6: [HA4BY-46K3Y]     Age:    0 SeqNum: 0x80000005 Cksum: 07e5 Len: 32
2024/06/12 12:37:54.629522         OSPF6: [XKC5G-YW93A] ospf6_abr_originate_summary_to_area : finish area 0
2024/06/12 12:37:54.629523         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 1, route 10.254.254.7
2024/06/12 12:37:54.629525         OSPF6: [WVWH0-3KHW3] ospf6_abr_originate_summary_to_area: The route is in the area itself, ignore

2024/06/12 12:37:54.629548         OSPF6: [T0FMF-6KKCP] ospf6_abr_originate_summary: route 10.254.254.7
2024/06/12 12:37:54.629550         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 0, route 10.254.254.7
2024/06/12 12:37:54.629553         OSPF6: [JJ7N3-VVYV2] Originating summary in area 0 for ASBR 10.254.254.7
2024/06/12 12:37:54.629554         OSPF6: [XQWSV-5GJQ6] This is the secondary path to the ASBR, ignore
2024/06/12 12:37:54.629562         OSPF6: [WA749-NPMHH] LSA: Premature aging: [Inter-Router Id:10.254.254.7 Adv:10.254.254.6]
2024/06/12 12:37:54.629582         OSPF6: [SYY2T-BK418] LSA Expire:
2024/06/12 12:37:54.629585         OSPF6: [GNRNM-HX7W3]     [Inter-Router Id:10.254.254.7 Adv:10.254.254.6]
2024/06/12 12:37:54.629587         OSPF6: [HA4BY-46K3Y]     Age: 3600 SeqNum: 0x80000005 Cksum: 07e5 Len: 32
2024/06/12 12:37:54.629661         OSPF6: [R7CVJ-7KRKN] ospf6_abr_originate_summary_to_area : start area 1, route 10.254.254.7
2024/06/12 12:37:54.629663         OSPF6: [WVWH0-3KHW3] ospf6_abr_originate_summary_to_area: The route is in the area itself, ignore

Next step is to determine what triggers the false "This is the secondary path to the ASBR, ignore" at 12:37:51.346954.

For reference, this is the topo diagram from the test case:

                  .
           Area 0 . Area 1
                  .
    -- R2 ------ R5 -----
   /              .\     \
  /               . |     \
R1 --- R3 ------ R6 ------ R7
  \            / |. |
   \          /  |. |
    -- R4 ----   |. |
                / ./
              R8 --
                  .