-
Notifications
You must be signed in to change notification settings - Fork 3.5k
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
Allow single edge paths in MLD alternatives, #4691 #4693
Conversation
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.
Looks good - wondering if the check can be made earlier when we generate the candidate via nodes. Then we could eliminate the edge case in a single location, no?
@daniel-j-h such alternatives are ok for CH, so it is better to keep them also in MLD. This requires edges vector emptiness checks in all filters that use packed paths. |
Yes I was only talking about the MLD alternatives implementation. What I meant was removing these candidates early on during stepping already so that we don't have to think about this edge case when adding new filters later on. But now that we have a reproducible test case I'm fine with both approaches. |
Unfortunately CH alternatives results are not consistent wrt OS and the test fails on OSX and Windows builds |
a26cf0b
to
4710676
Compare
@daniel-j-h i looked at the test fail on windows build. The problem in a loop shortcut that is not handled for CH alternative routes in
@mld-only tag to skip the test for CH.
|
Issue
The PR fixes #4691, by allowing alternative routes with
packed.path.empty()
.Also an additional check
node != fst.GetData(node).parent
was added to prevent infinite loops ifhas_plateaux_at_node(node, fst, snd)
andnode
is the first (last) node of the route.Tasklist