Skip to content
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

pimd: Mroutes in prune state after removing and adding attached nw config #9896

Closed
wants to merge 1 commit into from

Conversation

patrasar
Copy link
Contributor

@patrasar patrasar commented Oct 26, 2021

Problem Statement:

LHR has got the WHOLEPKT event, for (190.190.190.190 226.1.1.1),
(190.190.190.190 226.1.1.2) and (190.190.190.190 226.1.1.3)
It has created the upstream. But It has not send the join towards RP.
Also mroute out interface is not correct.

RCA:

While creating upstream and updating the rpf, for (190.190.190.190 226.1.1.1),
(190.190.190.190 226.1.1.2) and (190.190.190.190 226.1.1.3) with destination
190.190.190.190/32. It gets resolved to ens160, It was a management interface
and PIM was not enabled on this interface.
The wholepkt is a data packet it reaches early, path to 190.190.190.190 is
computed via BGP, so it takes some more time.
When pimd gets the update trigger for 190.190.190.190/32 it start processing
SG entries as mentioned above. But if fails to resolve mroute out interfaces
and eventually failed to calcluate join desired state.

Fix:

If RPF check returns changed, and previous interface was not there
in the upstream then recalculate the mroute oil

Signed-off-by: sarita patra saritap@vmware.com

…nfig

Problem Statement:
==================
LHR has got the WHOLEPKT event, for (190.190.190.190 226.1.1.1),
(190.190.190.190 226.1.1.2) and (190.190.190.190 226.1.1.3)
It has created the upstream. But It has not send the join towards RP.
Also mroute out interface is not correct.

RCA:
====
While creating upstream and updating the rpf, for (190.190.190.190 226.1.1.1),
(190.190.190.190 226.1.1.2) and (190.190.190.190 226.1.1.3) with destination
190.190.190.190/32. It gets resolved to ens160, It was a management interface
and PIM was not enabled on this interface.
The wholepkt is a data packet it reaches early, path to 190.190.190.190 is
computed via BGP, so it takes some more time.
When pimd gets the update trigger for 190.190.190.190/32 it start processing
SG entries as mentioned above. But if fails to resolve mroute out interfaces
and eventually failed to calcluate join desired state.

Fix:
====
If RPF check returns changed, and previous interface was not there
in the upstream then recalculate the mroute oil

Signed-off-by: sarita patra <saritap@vmware.com>
@frrbot frrbot bot added the pim label Oct 26, 2021
@LabN-CI
Copy link
Collaborator

LabN-CI commented Oct 26, 2021

💚 Basic BGPD CI results: SUCCESS, 0 tests failed

Results table
_ _
Result SUCCESS git merge/9896 0e015bb
Date 10/26/2021
Start 03:59:14
Finish 04:25:36
Run-Time 26:22
Total 1813
Pass 1813
Fail 0
Valgrind-Errors 0
Valgrind-Loss 0
Details vncregress-2021-10-26-03:59:14.txt
Log autoscript-2021-10-26-04:00:27.log.bz2
Memory 483 511 424

For details, please contact louberger

@NetDEF-CI
Copy link
Collaborator

NetDEF-CI commented Oct 26, 2021

Continuous Integration Result: FAILED

Continuous Integration Result: FAILED

See below for issues.
CI System Testrun URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-1009/

This is a comment from an automated CI system.
For questions and feedback in regards to this CI system, please feel free to email
Martin Winter - mwinter (at) opensourcerouting.org.

Get source / Pull Request: Successful

Building Stage: Successful

Basic Tests: Failed

Topotests Ubuntu 18.04 i386 part 9: Failed (click for details) Topotests Ubuntu 18.04 i386 part 9: No useful log found
Successful on other platforms/tests
  • Topotests Ubuntu 18.04 arm8 part 3
  • Topotests Ubuntu 18.04 amd64 part 2
  • Addresssanitizer topotests part 5
  • Topotests debian 10 amd64 part 4
  • Topotests Ubuntu 18.04 i386 part 3
  • Addresssanitizer topotests part 4
  • Topotests debian 10 amd64 part 8
  • Addresssanitizer topotests part 0
  • Topotests Ubuntu 18.04 arm8 part 4
  • Topotests debian 10 amd64 part 9
  • Topotests Ubuntu 18.04 arm8 part 9
  • Topotests Ubuntu 18.04 amd64 part 3
  • IPv6 protocols on Ubuntu 18.04
  • Topotests debian 10 amd64 part 3
  • Topotests debian 10 amd64 part 0
  • Ubuntu 16.04 deb pkg check
  • Topotests Ubuntu 18.04 arm8 part 2
  • Ubuntu 20.04 deb pkg check
  • Topotests Ubuntu 18.04 arm8 part 7
  • Topotests Ubuntu 18.04 amd64 part 8
  • Topotests Ubuntu 18.04 i386 part 1
  • IPv4 protocols on Ubuntu 18.04
  • Topotests Ubuntu 18.04 amd64 part 4
  • Addresssanitizer topotests part 9
  • Topotests Ubuntu 18.04 i386 part 6
  • IPv4 ldp protocol on Ubuntu 18.04
  • Topotests Ubuntu 18.04 arm8 part 0
  • Topotests Ubuntu 18.04 i386 part 8
  • Topotests Ubuntu 18.04 amd64 part 9
  • Debian 10 deb pkg check
  • Addresssanitizer topotests part 7
  • Topotests Ubuntu 18.04 amd64 part 7
  • Topotests Ubuntu 18.04 amd64 part 5
  • Addresssanitizer topotests part 6
  • Topotests Ubuntu 18.04 i386 part 5
  • Addresssanitizer topotests part 3
  • Topotests Ubuntu 18.04 i386 part 0
  • Topotests debian 10 amd64 part 1
  • CentOS 7 rpm pkg check
  • Topotests Ubuntu 18.04 arm8 part 5
  • Fedora 29 rpm pkg check
  • Topotests Ubuntu 18.04 amd64 part 0
  • Topotests debian 10 amd64 part 2
  • Addresssanitizer topotests part 2
  • Static analyzer (clang)
  • Topotests Ubuntu 18.04 amd64 part 1
  • Topotests debian 10 amd64 part 5
  • Debian 9 deb pkg check
  • Ubuntu 18.04 deb pkg check
  • Addresssanitizer topotests part 1
  • Topotests Ubuntu 18.04 i386 part 4
  • Topotests debian 10 amd64 part 7
  • Topotests Ubuntu 18.04 i386 part 2
  • Addresssanitizer topotests part 8
  • Topotests Ubuntu 18.04 arm8 part 6
  • Topotests Ubuntu 18.04 arm8 part 1
  • Topotests debian 10 amd64 part 6
  • Topotests Ubuntu 18.04 arm8 part 8
  • Topotests Ubuntu 18.04 i386 part 7
  • Topotests Ubuntu 18.04 amd64 part 6

@patrasar
Copy link
Contributor Author

ci:rerun

pim_upstream_inherited_olist_decide(pim, up);
up->channel_oil->oil_inherited_rescan = 0;
}
pim_upstream_inherited_olist_decide(pim, up);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

So the oil_inherited_rescan was put in because running pim_upstream_inherited_olist_decide was insanely expensive and running it across all mroutes at scale whenever something changed caused us to spend significant cpu time doing nothing. Why is just removing this check -vs- finding the place where we are not properly setting oil_inherited_scan better?

@NetDEF-CI
Copy link
Collaborator

Continuous Integration Result: SUCCESSFUL

Congratulations, this patch passed basic tests

Tested-by: NetDEF / OpenSourceRouting.org CI System

CI System Testrun URL: https://ci1.netdef.org/browse/FRR-PULLREQ2-1024/

This is a comment from an automated CI system.
For questions and feedback in regards to this CI system, please feel free to email
Martin Winter - mwinter (at) opensourcerouting.org.

@donaldsharp
Copy link
Member

@frrbot autoclose in 1 week

@frrbot frrbot bot added the autoclose label Jan 15, 2022
@frrbot frrbot bot closed this Jan 22, 2022
@frrbot frrbot bot removed the autoclose label Jan 22, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants