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

Sync Fork from Upstream Repo #12

Merged
merged 31 commits into from
Sep 4, 2019
Merged

Sync Fork from Upstream Repo #12

merged 31 commits into from
Sep 4, 2019

Commits on Aug 28, 2019

  1. build: link C++ stdlib dynamically in sanitizer runs (#8019)

    Description:
    Sanitizers doesn't support static link, reverts #7929 and link lib(std)c++ dynamically in sanitizer runs. Addresses test issue for #4251. Added workaround in ASAN for #7647.
    
    Risk Level: Low (test only)
    Testing: CI, local libc++ runs
    Docs Changes: N/A
    Release Notes: N/A
    Fixes #7928
    lizan authored Aug 28, 2019
    Configuration menu
    Copy the full SHA
    e674640 View commit details
    Browse the repository at this point in the history
  2. test: cleaning up test runtime (#8012)

    Using the new runtime utility to clean up a bunch of test gorp. Yay utils!
    
    Risk Level: n/a (test only)
    Testing: tests pass
    Docs Changes: n/a
    Release Notes: n/a
    Signed-off-by: Alyssa Wilk <[email protected]>
    alyssawilk authored Aug 28, 2019
    Configuration menu
    Copy the full SHA
    b020b63 View commit details
    Browse the repository at this point in the history
  3. test: improved coverage and handling of deprecated config (#8057)

    Making ENVOY_DISABLE_DEPRECATED_FEATURES work for unit tests without runtime configured.
    Fixing up a handful of unit tests to remove legacy code or use the handy
    DEPRECATED_FEATURE_TEST macro
    Adding back coverage of cors.enabled() and redis.catch_all_route()
    
    Risk Level: Low (test only)
    Testing: new unit tests
    Docs Changes: n/a
    Release Notes: n/a
    Fixes #8013
    Fixes #7548
    
    Signed-off-by: Alyssa Wilk <[email protected]>
    alyssawilk authored Aug 28, 2019
    Configuration menu
    Copy the full SHA
    64243c9 View commit details
    Browse the repository at this point in the history
  4. [Docs typo] Remote Executioon -> Remote Execution (#8061)

    Fixes mispelling of `Executioon` -> `Execution`
    
    Signed-off-by: Colin Schoen <[email protected]>
    colinschoen authored and mattklein123 committed Aug 28, 2019
    Configuration menu
    Copy the full SHA
    f8e42ae View commit details
    Browse the repository at this point in the history
  5. api: Fix duplicate java_outer_classname declarations (#8059)

    The java_outer_classname is unintentionally duplicated in the new
    udp_listener_config and regex proto files. This changes them to unique
    names that match the predominant naming scheme.
    
    Signed-off-by: Bryce Anderson <[email protected]>
    Bryce Anderson authored and mattklein123 committed Aug 28, 2019
    Configuration menu
    Copy the full SHA
    f80188e View commit details
    Browse the repository at this point in the history
  6. http: making the behavior of the response Server header configurable (#…

    …8014)
    
    Default behavior remains unchanged, but now Envoy can override, override iff there's no server header from upstream, or always leave the server header (or lack thereof) unmodified.
    
    Risk Level: low (config guarded change)
    Testing: new unit tests
    Docs Changes: n/a
    Release Notes: inline
    Fixes #6716
    
    Signed-off-by: Alyssa Wilk <[email protected]>
    alyssawilk authored Aug 28, 2019
    Configuration menu
    Copy the full SHA
    b8966cb View commit details
    Browse the repository at this point in the history
  7. use bazelversion for filter-example too (#8069)

    Signed-off-by: Lizan Zhou <[email protected]>
    lizan authored Aug 28, 2019
    Configuration menu
    Copy the full SHA
    f588da0 View commit details
    Browse the repository at this point in the history
  8. grpc-httpjson-transcode: Update for RFC2045 support (#8065)

    RFC2045 (MIME) Base64 decoding support has been fixed upstream
    
    Description: The grpc transcoding filter has been updated to support RFC2045 (MIME) based inputs for protobuf type "Bytes". This is important since Base64 is often using the RFC2045 format for inputs.
    Also see: grpc-ecosystem/grpc-httpjson-transcoding#34
    
    Risk Level: Low
    Testing: Integration / Manual Tests
    Docs Changes: N/A
    Release Notes: N/A
    
    Signed-off-by: Hans Viken Duedal <[email protected]>
    cypres authored and lizan committed Aug 28, 2019
    Configuration menu
    Copy the full SHA
    c2e8eda View commit details
    Browse the repository at this point in the history
  9. stats: Clean up all calls to Scope::counter() et al in production cod…

    …e. (#7842)
    
    * Convert a few more counter() references to use the StatName interface.
    
    Signed-off-by: Joshua Marantz <[email protected]>
    jmarantz authored Aug 28, 2019
    Configuration menu
    Copy the full SHA
    5e45d48 View commit details
    Browse the repository at this point in the history

Commits on Aug 29, 2019

  1. tls_inspector: inline the recv in the onAccept (#7951)

    Description:
    As discussed in #7864 this PR is the attempt to peek the socket at the invoke of onAccept.
    Usually client_hello packet should be in the buffer when tls_inspector is peeking, we could save a poll cycle for this connection.
    
    Once we agree on the solution I can apply to http_inspector as well.
    
    The expecting latency improvement especially when poll cycle is large.
    
    Benchmark:
    Env:
    hardware Intel(R) Xeon(R) CPU @ 2.20GHz
    envoy: concurrency = 1, tls_inspector as listener filter. One tls filter chain, and one plain text filter chain.
    load background: a [sniper](https://github.com/lubia/sniper) client with concurrency = 5 hitting the server with tls handshake, aiming to hit using the tls_filter chain. The qps is about 170/s
    Another load client hitting the plain text filter chain but would go through tls_inspector with concurrency = 1
    
    This PR: 
    TransactionTime:              10.3 - 11.0 ms(mean)
    Master                
    TransactionTime:              12.3 - 12.8 ms(mean)
    
    Risk Level: Med (ActiveSocket code is affected to adopt the side effect of onAccept)
    Testing: 
    Docs Changes:
    Release Notes:
    Fixes #7864
    
    Signed-off-by: Yuchen Dai <[email protected]>
    lambdai authored and lizan committed Aug 29, 2019
    Configuration menu
    Copy the full SHA
    7f060b6 View commit details
    Browse the repository at this point in the history
  2. Fixes gcc 8.3.1 build failure due to FilterChainBenchmarkFixture::Set…

    …Up hiding base-class virtual functions (#8071)
    
    Description: I'm seeing "bazel-out/k8-fastbuild/bin/external/com_github_google_benchmark/_virtual_includes/benchmark/benchmark/benchmark.h:1071:16: error: 'virtual void benchmark::Fixture::SetUp(benchmark::State&)' was hidden" when running tests. This resolves the issue with hiding of the base-class functions.
    Risk Level: low
    Testing:
    Docs Changes:
    Release Notes:
    
    Signed-off-by: Dmitri Dolguikh <[email protected]>
    Dmitri Dolguikh authored and lizan committed Aug 29, 2019
    Configuration menu
    Copy the full SHA
    0fde42e View commit details
    Browse the repository at this point in the history
  3. test: fix ups for various deprecated fields (#8068)

    Takeaways: we've lost the ability to do empty regex (which was covered in router tests and is proto constraint validated on the new safe regex) as well as negative lookahead (also covered in tests) along with a host of other things conveniently documented as not supported here: https://github.com/google/re2/wiki/Syntax
    
    Otherwise split up a bunch of tests, duplicated and tagged a bunch of tests, and cleaning up after we finally can remove deprecated fields again will be an order of magnitude easier.
    
    Also fixing a dup relnote from #8014
    
    Risk Level: n/a (test only)
    Testing: yes. yes there is.
    Docs Changes: no
    Release Notes: no
    
    Signed-off-by: Alyssa Wilk <[email protected]>
    alyssawilk authored Aug 29, 2019
    Configuration menu
    Copy the full SHA
    9ac491a View commit details
    Browse the repository at this point in the history
  4. include: add log dependency header to connection_handler.h (#8072)

    Signed-off-by: Teju Nareddy <[email protected]>
    nareddyt authored and mattklein123 committed Aug 29, 2019
    Configuration menu
    Copy the full SHA
    8556a75 View commit details
    Browse the repository at this point in the history
  5. quiche: Update QUICHE dep (#8044)

    Update QUICHE tar ball to 4abb566fbbc63df8fe7c1ac30b21632b9eb18d0c.
    Add some new impl's for newly added api.
    
    Risk Level: low
    Testing: using quiche build in tests.
    Part of #2557
    
    Signed-off-by: Dan Zhang <[email protected]>
    danzh2010 authored and alyssawilk committed Aug 29, 2019
    Configuration menu
    Copy the full SHA
    4f2c5a4 View commit details
    Browse the repository at this point in the history
  6. tools: deprecated field check in Route Checker tool (#8058)

    We need a way to run the deprecated field check on the RouteConfiguration. Today the schema check tool validates the bootstrap config. This change will help achieve similar functionality on routes served from rds.
    Risk Level: Low
    Testing: Manual testing
    Docs Changes: included
    Release Notes: included
    
    Signed-off-by: Jyoti Mahapatra <[email protected]>
    jyotimahapatra authored and alyssawilk committed Aug 29, 2019
    Configuration menu
    Copy the full SHA
    29f199c View commit details
    Browse the repository at this point in the history

Commits on Aug 30, 2019

  1. tracing: Add support for sending data in Zipkin v2 format (#6985)

    Description: This patch supports sending a list of spans as JSON v2 and protobuf message over HTTP to Zipkin collector. [Sending protobuf](https://github.com/openzipkin/zipkin-api/blob/0.2.1/zipkin.proto) is considered to be more efficient than JSON, even compared to the v2's JSON (openzipkin/zipkin#2589 (comment)). This is an effort to rework #6798.
    
    The approach is by serializing the v1 model to both v2 JSON and protobuf.
    
    Risk Level: Low, since the default is still HTTP-JSON v1 based on https://github.com/openzipkin/zipkin-api/blob/0.2.2/zipkin-api.yaml.
    Testing: Unit testing, manual integration test with real Zipkin collector server.
    Docs Changes: Added
    Release Notes: Added
    Fixes: #4839
    
    Signed-off-by: Dhi Aurrahman <[email protected]>
    Signed-off-by: José Carlos Chávez <[email protected]>
    dio authored Aug 30, 2019
    Configuration menu
    Copy the full SHA
    6c6e18e View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0b0aa3f View commit details
    Browse the repository at this point in the history
  3. [hcm] Add scoped RDS routing into HCM (#7762)

    Description: add Scoped RDS routing logic into HCM. Changes include:
    
    * in ActiveStream constructor latch a ScopedConfig impl to the activeStream if SRDS is enabled
    * in the beginning of ActiveStream::decodeHeaders(headers, end_stream), get routeConfig from latched ScopedConfig impl.
    
    This PR is the 3rd in the srds impl PR chain: [#7704, #7451, this].
    
    Risk Level: Medium
    Testing: unit test and integration tests.
    Release Notes: Add scoped RDS routing support into HCM.
    
    Signed-off-by: Xin Zhuang <[email protected]>
    stevenzzzz authored and htuch committed Aug 30, 2019
    Configuration menu
    Copy the full SHA
    7960564 View commit details
    Browse the repository at this point in the history
  4. owners: add @asraa and @lambdai to OWNERS. (#8110)

    * @asraa is joining Envoy OSS security team.
    
    * @lambdai is joining Friends of Envoy as v2 xDS point.
    
    Signed-off-by: Harvey Tuch <[email protected]>
    htuch authored Aug 30, 2019
    Configuration menu
    Copy the full SHA
    678bf8c View commit details
    Browse the repository at this point in the history

Commits on Sep 2, 2019

  1. protobuf: recursively validate unknown fields. (#8094)

    This PR unifies the recursive traversal of deprecated fields with that of unknown fields. It doesn't
    deal with moving to a validator visitor model for deprecation; this would be a nice cleanup that we
    track at #8092.
    
    Risk level: Low
    Testing: New nested unknown field test added.
    
    Fixes #7980
    
    Signed-off-by: Harvey Tuch <[email protected]>
    htuch authored Sep 2, 2019
    Configuration menu
    Copy the full SHA
    dad0f2e View commit details
    Browse the repository at this point in the history

Commits on Sep 3, 2019

  1. Fuzz reuse (#8119)

    This PR allows the envoy_cc_fuzz_test rule to be used when pulling in envoy. which can be useful when you're writing filters for envoy, and want to reuse the fuzzing architecture envoy has already built. other rules already allow for this (see envoy_cc_test in this same file for example).
    
    Risk Level: Low
    Testing:
    
    Testing the Old Rule Still Works
    
    It is possible to test the old rules still work (even without specifying a repository), by simply choosing your favorite fuzz test, and choosing to run bazel test on it. For example: bazel test //test/common/router:header_parser_fuzz_test. Any envoy_cc_fuzz_test rule should do.
    
    Testing New Rules Work
    
    I've done testing inside my own repository, but if you want to create your own test rule you can probably do the following in envoy-filter-example:
    
    Checkout envoy-filter-example, and update the envoy submodule to this pr.
    Follow the directions in: test/fuzz/README.md to define a envoy_cc_fuzz_test rule. Make sure to add a line for: repository = "@envoy" which is the new argument being added.
    You should be able to run the fuzz test.
    
    Signed-off-by: Cynthia Coan <[email protected]>
    securityinsanity authored and htuch committed Sep 3, 2019
    Configuration menu
    Copy the full SHA
    0eab93b View commit details
    Browse the repository at this point in the history
  2. Set INCLUDE_DIRECTORIES so libcurl can find local urlapi.h (#8113)

    Fixes #8112
    
    Signed-off-by: John Millikin <[email protected]>
    jmillikin-stripe authored and htuch committed Sep 3, 2019
    Configuration menu
    Copy the full SHA
    0b026cf View commit details
    Browse the repository at this point in the history
  3. cleanup: move test utility methods in ScopedRdsIntegrationTest to bas…

    …e class HttpIntegrationTest (#8108)
    
    Fixes #8050
    Risk Level: LOW [refactor only]
    
    Signed-off-by: Xin Zhuang <[email protected]>
    stevenzzzz authored and htuch committed Sep 3, 2019
    Configuration menu
    Copy the full SHA
    911f3b0 View commit details
    Browse the repository at this point in the history
  4. upstream: fix invalid access of ClusterMap iterator during warming cl…

    …uster modification (#8106)
    
    Risk Level: Medium
    Testing: New unit test added. Fix verified via --config=asan.
    
    Signed-off-by: Andres Guedez <[email protected]>
    AndresGuedez authored and htuch committed Sep 3, 2019
    Configuration menu
    Copy the full SHA
    1339ed2 View commit details
    Browse the repository at this point in the history
  5. api:Add a flag to disable overprovisioning in ClusterLoadAssignment (#…

    …8080)
    
    * api:Add a flag to disable overprovisioning in ClusterLoadAssignment
    
    Signed-off-by: Jie Chen <[email protected]>
    
    * api:Add [#next-major-version and [#not-implemented-hide to the comment
    for field of disable_overprovisioning in ClusterLoadAssignment
    Signed-off-by: Jie Chen <[email protected]>
    
    * api:Refine comments for the new added bool flag as suggested.
    Signed-off-by: Jie Chen <[email protected]>
    jaychenatr authored and htuch committed Sep 3, 2019
    Configuration menu
    Copy the full SHA
    b28edca View commit details
    Browse the repository at this point in the history
  6. api: clone v2[alpha] to v3alpha. (#8125)

    This patch establishes a v3alpha baseline API, by doing a simple copy of
    v2[alpha] dirs and some sed-style heuristic fixups of BUILD dependencies
    and proto package namespaces.
    
    The objective is provide a baseline which we can compare the output from
    tooling described in #8083 in later PRs, providing smaller visual diffs.
    
    The core philosophy of the API migration is that every step will be
    captured in a script (at least until the last manual steps),
    api/migration/v3alpha.sh. This script will capture deterministic
    migration steps, allowing v2[alpha] to continue to be updated until we
    finalize v3.
    
    There is likely to be significant changes, e.g. in addition to the work
    scoped for v3, we might want to reduce the amount of API churn by
    referring back to v2 protos where it makes sense. This will be done via
    tooling in later PRs.
    
    Part of #8083.
    
    Risk level: Low
    Testing: build @envoy_api//...
    
    Signed-off-by: Harvey Tuch <[email protected]>
    htuch authored Sep 3, 2019
    Configuration menu
    Copy the full SHA
    085d72b View commit details
    Browse the repository at this point in the history
  7. dubbo: Fix heartbeat packet parsing error (#8103)

    Description: 
    The heartbeat packet may carry data, and it is treated as null data when processing the heartbeat packet, causing some data to remain in the buffer.
    
    Risk Level: low 
    Testing: Existing unit test
    Docs Changes: N/A
    Release Notes: N/A
    Fixes #7970 
    
    Signed-off-by: tianqian.zyf <[email protected]>
    zyfjeff authored and lizan committed Sep 3, 2019
    Configuration menu
    Copy the full SHA
    0ef3137 View commit details
    Browse the repository at this point in the history
  8. stats: Shared cluster isolated stats (#8118)

    * shared the main symbol-table with the isolated stats used for cluster info.
    
    Signed-off-by: Joshua Marantz <[email protected]>
    jmarantz authored Sep 3, 2019
    Configuration menu
    Copy the full SHA
    cf55298 View commit details
    Browse the repository at this point in the history
  9. protodoc: upgrade to Python 3. (#8129)

    Risk level: Low
    Testing: Rebuilt docs, manual inspection of some example generated files.
    
    Signed-off-by: Harvey Tuch <[email protected]>
    htuch authored Sep 3, 2019
    Configuration menu
    Copy the full SHA
    39a4423 View commit details
    Browse the repository at this point in the history
  10. protodoc: single source-of-truth for doc protos. (#8132)

    This avoids having to list new docs protos in both docs/build.sh and
    api/docs/BUILD. This technical debt cleanup is helpful in v3 proto work
    to simplify collecting proto artifacts from a Bazel aspect.
    
    Risk level: Low
    Testing: docs/build.sh, visual inspection of docs.
    
    Signed-off-by: Harvey Tuch <[email protected]>
    htuch authored Sep 3, 2019
    Configuration menu
    Copy the full SHA
    b06e2b5 View commit details
    Browse the repository at this point in the history

Commits on Sep 4, 2019

  1. api: organize go_proto_libraries (#8003)

    Fixes #7982
    
    Defines a package level proto library and its associated internal go_proto_library.
    
    Deletes all existing api_go_proto_library, api_go_grpc_library, and go_package annotations in protos (they are not required and pollute the sources).
    
    I deliberately avoided touching anything under udpa since it's being moved to another repository.
    
    Risk Level: low
    Testing: build completes
    
    Signed-off-by: Kuat Yessenov <[email protected]>
    kyessenov authored and htuch committed Sep 4, 2019
    Configuration menu
    Copy the full SHA
    d504fde View commit details
    Browse the repository at this point in the history