1. 12 May, 2023 2 commits
  2. 11 May, 2023 9 commits
    • Xuan Wang's avatar
      Revert "[reflection] python: reflection response returns dependencies" (#33088) · 1ce3dc63
      Xuan Wang authored
      Reverts grpc/grpc#32909
      
      It's breaking some internal test
      (//net/grpc/python:internal_tests/unit/_default_reflection_test), revert
      for now to investigate.
      Unverified
      1ce3dc63
    • Doug Fawley's avatar
      [interop] enable Go ORCA tests (#33082) · b3467372
      Doug Fawley authored
      Unverified
      b3467372
    • Mark D. Roth's avatar
      [JSON] generalize handling of RefCountedPtr<> (#33048) · 8fdfb228
      Mark D. Roth authored
      Also remove a check in the weighted_target LB policy that I somehow
      missed in #32932.
      Unverified
      8fdfb228
    • Thomas Zeugner's avatar
      [reflection] python: reflection response returns dependencies (#32909) · 74d00f2c
      Thomas Zeugner authored
      Fix #32899 - include all dependency-descriptors in the
      ServerReflectionResponse
      
      Using the C# Server-code as blue print:
      
      https://github.com/grpc/grpc-dotnet/blob/6bf44820a2ef6af5845830728cd4b3d1a8053ed4/src/Grpc.Reflection/ReflectionServiceImpl.cs#L148
      
      see also:
         - The cpp-server implementation of this:
      
      https://github.com/grpc/grpc/blob/d299f5ecce9f8e9a8f35571f39bdcfdbb2106d36/src/cpp/ext/proto_server_reflection.cc#L208
        - The go-server implementation of this:
      
      https://github.com/grpc/grpc-go/blob/2cd95c7514a3d02aa2d98591c013885cb44fbdeb/reflection/serverreflection.go#L184
      
      
      `return s.fileDescWithDependencies(d.ParentFile(), sentFileDescriptors)`
      
      ---------
      
      Co-authored-by: default avatarXuan Wang <xuanwn@google.com>
      Unverified
      74d00f2c
    • Yash Tibrewal's avatar
      [Logging] Fix flakiness in test (#33077) · 1b013365
      Yash Tibrewal authored
      Change - just make sure that before we verify the logging entries, we'll
      wait for the expected number of entries to show up.
      
      Logging_test has been recently reported as flaky. Sample failure -
      https://source.cloud.google.com/results/invocations/ba581ad8-b652-4b9d-af56-07593f5d2deb/targets/%2F%2Ftest%2Fcpp%2Fext%2Ffilters%2Flogging:logging_test@poller%3Depoll1/tests
      
      Failed to reproduce, but i have a suspicion that what's happening is
      that the logging for the half-close events on the server side can happen
      after the call has ended.. It is currently being logged after the
      server-trailer (which has the status).
      Unverified
      1b013365
    • AJ Heller's avatar
      [experiment] Disable work stealing end2end test experiments (#33081) · 7b74b078
      AJ Heller authored
      A known bug is being worked on. This will temporarily reduce flaky test
      noise.
      Unverified
      7b74b078
    • Craig Tiller's avatar
      [fuzz] Turn core end2end tests into fuzzers (#33013) · 4674f2cc
      Craig Tiller authored
      
      Add a new binary that runs all core end2end tests in fuzzing mode.
      
      In this mode FuzzingEventEngine is substituted for the default event
      engine. This means that time is simulated, as is IO. The FEE gets
      control of callback delays also.
      
      In our tests the `Step()` function becomes, instead of a single call to
      `completion_queue_next`, a series of calls to that function and
      `FuzzingEventEngine::Tick`, driving forward the event loop until
      progress can be made.
      
      PR guide:
      ---
      
      **New binaries**
      `core_end2end_test_fuzzer` - the new fuzzer itself
      `seed_end2end_corpus` - a tool that produces an interesting seed corpus
      
      **Config changes for safe fuzzing**
      The implementation tries to use the config fuzzing work we've previously
      deployed in api_fuzzer to fuzz across experiments. Since some
      experiments are far too experimental to be safe in such fuzzing (and
      this will always be the case):
      - a new flag is added to experiments to opt-out of this fuzzing
      - a new hook is added to the config system to allow variables to
      re-write their inputs before setting them during the fuzz
      
      **Event manager/IO changes**
      Changes are made to the event engine shims so that tcp_server_posix can
      run with a non-FD carrying EventEngine. These are in my mind a bit
      clunky, but they work and they're in code that we expect to delete in
      the medium term, so I think overall the approach is good.
      
      **Changes to time**
      A small tweak is made to fix a bug initializing time for fuzzers in
      time.cc - we were previously failing to initialize
      `g_process_epoch_cycles`
      
      **Changes to `Crash`**
      A version that prints to stdio is added so that we can reliably print a
      crash from the fuzzer.
      
      **Changes to CqVerifier**
      Hooks are added to allow the top level loop to hook the verification
      functions with a function that steps time between CQ polls.
      
      **Changes to end2end fixtures**
      State machinery moves from the fixture to the test infra, to keep the
      customizations for fuzzing or not in one place. This means that fixtures
      are now just client/server factories, which is overall nice.
      
      It did necessitate moving some bespoke machinery into
      h2_ssl_cert_test.cc - this file is beginning to be problematic in
      borrowing parts but not all of the e2e test machinery. Some future PR
      needs to solve this.
      
      A cq arg is added to the Make functions since the cq is now owned by the
      test and not the fixture.
      
      **Changes to test registration**
      `TEST_P` is replaced by `CORE_END2END_TEST` and our own test registry is
      used as a first depot for test information.
      
      The gtest version of these tests: queries that registry to manually
      register tests with gtest. This ultimately changes the name of our tests
      again (I think for the last time) - the new names are shorter and more
      readable, so I don't count this as a regression.
      
      The fuzzer version of these tests: constructs a database of fuzzable
      tests that it can consult to look up a particular suite/test/config
      combination specified by the fuzzer to fuzz against. This gives us a
      single fuzzer that can test all 3k-ish fuzzing ready tests and cross
      polinate configuration between them.
      
      **Changes to test config**
      The zero size registry stuff was causing some problems with the event
      engine feature macros, so instead I've removed those and used GTEST_SKIP
      in the problematic tests. I think that's the approach we move towards in
      the future.
      
      **Which tests are included**
      Configs that are compatible - those that do not do fd manipulation
      directly (these are incompatible with FuzzingEventEngine), and those
      that do not join threads on their shutdown path (as these are
      incompatible with our cq wait methodology). Each we can talk about in
      the future - fd manipulation would be a significant expansion of
      FuzzingEventEngine, and is probably not worth it, however many uses of
      background threads now should probably evolve to be EventEngine::Run
      calls in the future, and then would be trivially enabled in the fuzzers.
      
      Some tests currently fail in the fuzzing environment, a
      `SKIP_IF_FUZZING` macro is used for these few to disable them if in the
      fuzzing environment. We'll burn these down in the future.
      
      **Changes to fuzzing_event_engine**
      Changes are made to time: an exponential sweep forward is used now -
      this catches small time precision things early, but makes decade long
      timers (we have them) able to be used right now. In the future we'll
      just skip time forward to the next scheduled timer, but that approach
      doesn't yet work due to legacy timer system interactions.
      
      Changes to port assignment: we ensure that ports are legal numbers
      before assigning them via `grpc_pick_port_or_die`.
      
      A race condition between time checking and io is fixed.
      
      ---------
      
      Co-authored-by: default avatarctiller <ctiller@users.noreply.github.com>
      Unverified
      4674f2cc
    • Hannah Shi's avatar
      [ObjC] Cf event engine client (#33034) · ad2a5dd3
      Hannah Shi authored
      Added `//:gpr_platform` to cf_engine_test to fix build_cleaner check in
      the previous merge.
      More details in https://github.com/grpc/grpc/pull/33027
      Unverified
      ad2a5dd3
    • molto's avatar
      [example] Fix bad example (#32161) · 19808412
      molto authored
      
      Channel object has no method ``stop``, it supposed to be ``close`` here.
      
      ---------
      
      Co-authored-by: default avatarXuan Wang <xuanwn@google.com>
      Unverified
      19808412
  3. 10 May, 2023 6 commits
  4. 09 May, 2023 11 commits
  5. 08 May, 2023 5 commits
  6. 05 May, 2023 5 commits
  7. 04 May, 2023 2 commits