Skip to content

fuzz: xDS fuzzer skeleton code#7543

Closed
asraa wants to merge 3 commits intoenvoyproxy:masterfrom
asraa:xdsfuzzer1
Closed

fuzz: xDS fuzzer skeleton code#7543
asraa wants to merge 3 commits intoenvoyproxy:masterfrom
asraa:xdsfuzzer1

Conversation

@asraa
Copy link
Copy Markdown
Contributor

@asraa asraa commented Jul 11, 2019

This is a skeleton for an xDS fuzzer. The setup is very similar to ads_integration_test. The fuzzer tests against corpus files, which consist of sequences of xDS updates, currently just restricted to LDS/RDS (the test setup includes building a single cluster, and I might make route configurations only reference this cluster, or expand the possible xDS updates to include CDS actions).

Right now, the fuzzer just checks for crashes and verifies the number of lds updates is what we expect. I'd like the fuzzer to check:

  • expected listener states: active/warming/draining listeners
  • listener manager update attempts/failures
  • ...?

If you have any feedback or things you'd like to see, please let me know. I'll update as I work.

@asraa
Copy link
Copy Markdown
Contributor Author

asraa commented Jul 11, 2019

/cc @silentdai @htuch @PiotrSikora

Copy link
Copy Markdown
Member

@htuch htuch left a comment

Choose a reason for hiding this comment

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

This looks like a great start. I think that validating warming/active and success/failure makes a lot of sense, even sticking with just Listener/RouteConfiguration we can get these properties.
/wait

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

I'm genuinely curious how we can remove a route config today, I was having this conversation with @stevenzzzz and with SoTW updates, this doesn't seem possible? :)

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Can we use https://github.com/envoyproxy/envoy/blob/master/test/config/utility.h to avoid having custom bootstrap? I see that we do what you have here in ads_integration_test, so probably fine, but I was never a big fan of this.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

So, by not sending the route, Envoy will actually just continue to latch the last route it received. This is because RDS/EDS are a bit weird for SoTW updates vs. LDS/CDS. The latter delete resources when not mentioned in an update, the former don't. It's weird, I know, and something I'm actively thinking about as part of the next generation of the UDPA transport protocol.

@htuch
Copy link
Copy Markdown
Member

htuch commented Jul 16, 2019

@asraa the history here has a bunch of unrelated commits, can you maybe rebase and squash to clean things up?

@htuch htuch added the waiting label Jul 16, 2019
zuercher pushed a commit that referenced this pull request Jul 16, 2019
Moves AdsIntegrationTest to it's own file. I'd like to reuse the class for the xDS fuzzer (#7543), since the setup and utilities are the same.

Risk Level: Low
Testing: n/a
Docs Changes: n/a
Release Notes: n/a

Signed-off-by: Asra Ali <asraa@google.com>
asraa added 3 commits July 17, 2019 10:22
Signed-off-by: Asra Ali <asraa@google.com>
Signed-off-by: Asra Ali <asraa@google.com>
Signed-off-by: Asra Ali <asraa@google.com>

remove bazel.output.txt

Signed-off-by: Asra Ali <asraa@google.com>
@stale
Copy link
Copy Markdown

stale bot commented Jul 24, 2019

This pull request has been automatically marked as stale because it has not had activity in the last 7 days. It will be closed in 7 days if no further activity occurs. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions!

@stale stale bot added the stale stalebot believes this issue/PR has not been touched recently label Jul 24, 2019
@stale
Copy link
Copy Markdown

stale bot commented Jul 31, 2019

This pull request has been automatically closed because it has not had activity in the last 14 days. Please feel free to give a status update now, ping for review, or re-open when it's ready. Thank you for your contributions!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

stale stalebot believes this issue/PR has not been touched recently

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants