Skip to content

Conversation

eric846
Copy link
Contributor

@eric846 eric846 commented Mar 8, 2021

  • Sync .bazelrc
  • Update Docker image version in .circleci/config.yml
  • New way to declare Bazel pip imports in WORKSPACE (the requirement("...") side in test/integration/BUILD is unchanged)
  • ci/run_envoy_docker.sh was unchanged
  • Code changes
    • Relax some byte count checks in integration tests
      • The counters started to come out lower after updating Envoy, e.g. 1450 decreased to 900. This was because the underlying Envoy infrastructure in the Nighthawk client stopped sending content-length: 0 in the requests.
      • Updating the test to only check if the count is >=500, rather than checking for a specific value
        • This should still catch failure modes where Nighthawk fails after 1 request or less
        • test_http_h2 already has such relaxed checks
    • Pass through new TimeSource arg in allocateConnPool()
    • factoryForGrpcService() changed the skip_cluster_check boolean to an enum Envoy::Grpc::AsyncClientFactoryClusterChecks::Skip
    • Empty dumpState() override added to StreamDecoder
    • UUID generator for tracing was moved
    • Ignore warning "Unable to use runtime singleton for feature envoy.reloadable_features.header_map_correctly_coalesce_cookies"

eric846 added 30 commits June 1, 2020 17:23
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
…double

Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
…variable_setter

Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
…ent.Output turns out not to include the status

Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
…plugin names, log thresholds only once per session

Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
eric846 added 3 commits March 8, 2021 22:18
…uuid generator location

Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
…oxy/envoy#13504

Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
@eric846
Copy link
Contributor Author

eric846 commented Mar 10, 2021

/retest

@repokitteh-read-only
Copy link

🔨 rebuilding ci/circleci: integration_test_coverage (failed build)
🔨 rebuilding ci/circleci: test (failed build)
🔨 rebuilding ci/circleci: tsan (failed build)
🔨 rebuilding ci/circleci: asan (failed build)

🐱

Caused by: a #641 (comment) was created by @eric846.

see: more, trace.

eric846 added 3 commits March 10, 2021 11:42
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
@eric846
Copy link
Contributor Author

eric846 commented Mar 10, 2021

/retest

@repokitteh-read-only
Copy link

🔨 rebuilding ci/circleci: tsan (failed build)

🐱

Caused by: a #641 (comment) was created by @eric846.

see: more, trace.

Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
@eric846
Copy link
Contributor Author

eric846 commented Mar 10, 2021

/retest

@repokitteh-read-only
Copy link

🔨 rebuilding ci/circleci: integration_test_coverage (failed build)

🐱

Caused by: a #641 (comment) was created by @eric846.

see: more, trace.

@eric846 eric846 marked this pull request as ready for review March 10, 2021 22:44
@eric846 eric846 added the waiting-for-review A PR waiting for a review. label Mar 10, 2021
@mum4k mum4k requested a review from oschaaf March 11, 2021 00:53
Copy link
Collaborator

@mum4k mum4k left a comment

Choose a reason for hiding this comment

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

Thank you for putting this together @eric846.

@@ -153,6 +153,8 @@ def tearDown(self, caplog):
for record in caplog.get_records(when):
if record.levelno not in (logging.WARNING, logging.ERROR):
continue
if "Unable to use runtime singleton for feature" in record.message:
Copy link
Collaborator

Choose a reason for hiding this comment

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

We already have a way of skipping some warnings:

# A list of _TestCaseWarnErrorIgnoreList instances, message pieces that should
# be ignored even if logged by the test server at a WARNING or an ERROR
# severity.
#
# If multiple test_case_regexp entries match the current test case name, all the
# corresponding ignore lists will be used.
_TEST_SERVER_WARN_ERROR_IGNORE_LIST = frozenset([

Can we utilize this one?

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Done.

@mum4k mum4k added waiting-for-changes A PR waiting for comments to be resolved and changes to be applied. and removed waiting-for-review A PR waiting for a review. labels Mar 11, 2021
…s warning

Signed-off-by: eric846 <56563761+eric846@users.noreply.github.com>
@eric846 eric846 added waiting-for-review A PR waiting for a review. and removed waiting-for-changes A PR waiting for comments to be resolved and changes to be applied. labels Mar 11, 2021
Copy link
Member

@oschaaf oschaaf left a comment

Choose a reason for hiding this comment

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

Re: "The counters started to come out lower after updating Envoy, e.g. 1450 decreased to 900. Is this expected?"
It might be worth comparing headers to have a look-see at what precisely changed. This seems significant enough to make an actual real difference?

Copy link
Member

@oschaaf oschaaf left a comment

Choose a reason for hiding this comment

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

Yeah, thinking about it more, the strict byte count testing may seem overly strict, but it might just be worth it as it will prompt investigation in cases like this. In headers-only tests we will transfer a significant % less bytes, possibly impacting packet counts required for transmitting a single request; so not requesting changes in this PR right away but I do feel it is worth discussing.

@eric846
Copy link
Contributor Author

eric846 commented Mar 11, 2021

Re: "The counters started to come out lower after updating Envoy, e.g. 1450 decreased to 900. Is this expected?"
It might be worth comparing headers to have a look-see at what precisely changed. This seems significant enough to make an actual real difference?

Bingo: The Envoy infrastructure inside the Nighthawk client seems to have stopped sending content-length: 0 in the request.

This PR

$ nc -l 127.0.0.1 12345
GET / HTTP/1.1
host: 127.0.0.1:12345

$ bazel-bin/nighthawk_client --rps 1 --duration 5 http://127.0.0.1:12345
...
upstream_cx_tx_bytes_total              123         24.60
...

Main branch

$ nc -l 127.0.0.1 12345
GET / HTTP/1.1
host: 127.0.0.1:12345
content-length: 0

$ bazel-bin/nighthawk_client --rps 1 --duration 5 http://127.0.0.1:12345
...
upstream_cx_tx_bytes_total              180         36.00
...

@eric846
Copy link
Contributor Author

eric846 commented Mar 11, 2021

Yeah, thinking about it more, the strict byte count testing may seem overly strict, but it might just be worth it as it will prompt investigation in cases like this. In headers-only tests we will transfer a significant % less bytes, possibly impacting packet counts required for transmitting a single request; so not requesting changes in this PR right away but I do feel it is worth discussing.

Agreed, opened #644 to discuss. Depending on the schedule, we might want to move forward with these relaxed assumptions for now, rather than adjust the strict counts. Or on the other hand, we might want to make the counts in the h2 test more strict to match. There's a chance Envoy could change its header behavior again.

Copy link
Member

@oschaaf oschaaf left a comment

Choose a reason for hiding this comment

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

Approving; while it seems odd to have a content-length header appear in a GET request, apparently it causes no trouble as all integration tests past — modulo the strict byte count check.
We may want to file an issue upstream though?

@mum4k mum4k merged commit 3881261 into envoyproxy:main Mar 11, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
waiting-for-review A PR waiting for a review.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants