Commit Graph

518 Commits

Author SHA1 Message Date
Richard Belleville e0d04c9a9e Yapf. 2019-08-19 18:09:19 -07:00
Richard Belleville f03ae6d493 Fix streaming test case 2019-08-19 16:58:56 -07:00
Richard Belleville 3d56c83a5f Correct out-of-date docstrings 2019-08-19 14:24:45 -07:00
Richard Belleville 235b27257c Re-add unittest.main. 2019-08-19 14:05:54 -07:00
Richard Belleville 84855a18a9 Yapf 2019-08-19 13:44:32 -07:00
Richard Belleville b4eaccf754 Make tests deterministic 2019-08-19 13:22:58 -07:00
Richard Belleville 2a9998bc13 Properly handle exceptions in signal handlers for in-flight outgoing RPCs 2019-08-19 13:19:04 -07:00
Richard Belleville d932d2368e
Merge pull request #19852 from gnossen/server_termination
Quit waiting for a day
2019-08-08 09:53:10 -07:00
Richard Belleville 835786a476
Merge pull request #19822 from gnossen/py_proto_library
Separate py_grpc_library and py_proto_library.
2019-08-07 16:33:31 -07:00
Richard Belleville 3db8828876 Add TODOs for prefix stripping 2019-08-06 15:24:09 -07:00
Richard Belleville 0aa30c6f23 Remove unintentional dependencies 2019-08-05 16:34:47 -07:00
Richard Belleville e32980fba2 Quit waiting for a day 2019-08-05 16:19:49 -07:00
Richard Belleville e1980a7a5a Merge remote-tracking branch 'origin/master' into py_proto_library 2019-08-02 15:02:31 -07:00
Lidi Zheng 42e8bd21b4 Add a workaround for CPython issue 35935 2019-08-02 14:56:58 -07:00
Lidi Zheng 518b55a433 Simplify implementation 2019-08-02 14:56:58 -07:00
Lidi Zheng 59555d5b0c Add timeout argument to wait_for_termination 2019-08-02 14:56:58 -07:00
Lidi Zheng c4b7831f20 Make sanity test happy 2019-08-02 14:56:58 -07:00
Lidi Zheng 7257508294 Add a unit test for wait_for_termination 2019-08-02 14:56:57 -07:00
Karthik Ravi Shankar fcb43f9dee Regenerate projects 2019-08-01 17:34:02 -07:00
Lidi Zheng 7631e410cf
Merge pull request #19586 from gnossen/revert_revert_signal_handling
Revert "Merge pull request #19583 from gnossen/revert_signal_handling"
2019-08-01 17:08:31 -07:00
Richard Belleville 9ac75a6d16 Merge remote-tracking branch 'origin/master' into py_proto_library 2019-08-01 15:25:16 -07:00
Richard Belleville 7b2c8c27b0 Separate py_grpc_library and py_proto_library.
By popular demand, we'll now be offering separate py_grpc_library and
py_proto_library targets sharing the same interface as within google3.
This change necessitated some modifications to how we pull in our own
Python-level dependencies and how we make those available to those
pulling in our project via Bazel.

There is now a grpc_python_deps() Bazel workspace rule that pulls in the
appropriate dependencies, which should be called from the client
project's WORKSPACE file. A test has been added to the bazel/test/
directory to verify that this behavior works as intended.

It's worth noting that the protobuf repository's usage of Starlark
bind() caused a great deal of trouble in ensuring that we could also
pull in six.

This change also required a change in the way generated proto code is
imported in the channelz and health-check modules, as well as in their
associated tests. We were importing them two different ways, each
relative. This resulted in two different module objects being imported
into the process, which were incompatible. I am not sure exactly what
caused this behavior to begin, as this should have been possible before
this PR. As a workaround, I am simply trying two different absolute
imports and using the one that works. This should function both inside
and outside of Bazel environments.
2019-08-01 15:16:22 -07:00
Lidi Zheng dbec6006a6 Fix the entry condition of Bazel hack 2019-07-16 14:15:13 -07:00
Richard Belleville d6e3d04cf8 Capitalize comment 2019-07-09 15:57:19 -07:00
Richard Belleville 674de80123 Function in an internal environment 2019-07-09 14:12:27 -07:00
Richard Belleville e30dcefeab Revert "Merge pull request #19583 from gnossen/revert_signal_handling"
This reverts commit 1e7ec75eff, reversing
changes made to 6d62eb1b70.
2019-07-08 14:50:49 -07:00
Richard Belleville 2014a519fc Revert "Merge pull request #19481 from gnossen/main_thread_starvation"
This reverts commit 8f044f741f, reversing
changes made to 5ae9afdc55.
2019-07-08 12:50:13 -07:00
Richard Belleville af986fa3d5 Revert "Merge pull request #19581 from lidizheng/rf-signal"
This reverts commit 6d62eb1b70, reversing
changes made to 70dd0b9b3b.
2019-07-08 12:50:03 -07:00
Lidi Zheng 06d8d07a98 Remove the unused import 2019-07-08 11:12:10 -07:00
Richard Belleville 8f044f741f
Merge pull request #19481 from gnossen/main_thread_starvation
Enforce a finite bound on the time gap between signal receipt and signal handler execution.
2019-07-03 16:21:02 -07:00
Richard Belleville f7182fe4f2 Add explanation to _signal_client 2019-07-03 14:32:01 -07:00
Richard Belleville af1b09f7e7 Enforce a Finite Time Gap Bound between Signal Receipt and Signal Handler Execution
Previously, signal handlers were only given a chance to run upon receipt of an
entry in the RPC stream. Since there is no time bound on how long that might
take, there can be an arbitrarily long time gap between receipt of the signal
and the execution of the application's signal handlers.

Signal handlers are only run on the main thread. The cpython implementation
takes great care to ensure that the main thread does not block for an
arbitrarily long period between signal checks.

Our indefinite blocking was due to wait() invocations on condition variables
without a timeout.

This changes all usages of wait() in the the channel implementation to use a
wrapper that is responsive to signals even while waiting on an RPC.

A test has been added to verify this.

Tests are currently disabled under gevent due to
https://github.com/grpc/grpc/issues/18980, but a fix for that has been
found and should be merged shortly.
2019-07-03 13:35:33 -07:00
Richard Belleville 85b4e7948c Remove debug prints 2019-07-02 14:01:59 -07:00
Richard Belleville c9ce403dc4 Ensure bazel_hack terminates when running test_gevent. 2019-07-02 14:00:46 -07:00
Esun Kim cd27a36924 Regenerate projects 2019-06-18 15:40:50 -07:00
Srini Polavarapu 6bc2ff1b5f Regenerate projects 2019-05-10 10:38:59 -07:00
Esun Kim 0217450e2c Sanitized some sources 2019-05-03 10:05:32 -07:00
Richard Belleville 7809dee619
Merge pull request #18922 from grpc/revert-revert-due-to-unintentional-unrevert
Revert "Merge pull request #18912 from grpc/revert-bazel-changes"
2019-05-02 10:30:43 -07:00
Lidi Zheng f1dfe791ab
Merge pull request #18842 from lidizheng/respect-interval
Respect interval_us setting for TestServicer
2019-05-01 11:13:56 -07:00
Richard Belleville 930cec4e27 Revert "Merge pull request #18912 from grpc/revert-bazel-changes"
This reverts commit c9a259aa3a, reversing
changes made to 9c882bc725.
2019-04-30 11:17:11 -07:00
Richard Belleville 50b5240d0a Revert "Merge pull request #18859 from grpc/internal_py_proto_library"
This reverts commit 5b720f19c1, reversing
changes made to a64ae3c0d5.
2019-04-29 17:47:56 -07:00
Richard Belleville 5b720f19c1
Merge pull request #18859 from grpc/internal_py_proto_library
Remove dependency on pubref/rules_proto.
2019-04-29 14:59:15 -07:00
Lidi Zheng c864bea0c6 Move TestService to a separate file to simplify its dependency 2019-04-26 10:43:32 -07:00
Lidi Zheng ec76108df2 Fix a small typo in Python health servicer test 2019-04-25 17:09:19 -07:00
Richard Belleville afdc59712d Merge branch 'master' into internal_py_proto_library 2019-04-25 10:01:41 -07:00
Richard Belleville 05f37c8143 Remove dependency on pubref/rules_proto.
This commit resolves #18331.
This commit resolves #18256.
This commit resolves... another TODO that apparently didn't have an
associated github issue.

We swap out pubref's implementation of py_proto_library with our own,
which more closely mirrors the interface of the internal
py_proto_library, taking the descriptor file output of a proto_library
rule as input.

One minor change in behavior was introduced for simplicity. When a
py_proto_library depends on a proto_library with a source proto file in
a subdirectory of the bazel package, the import module of the resultant
python library will reflect the package, *not* the full directory of the
proto file, including both the bazel package and the subdirectories, as
pubref did previously. This behavior also more closely mirrors google
internal behavior.

This commit also introduces a slightly more stringent bazel format
script. Buildifier on its own will not take care of long lines, but by
running yapf first, we end up with a more legible file. At the moment,
there is no sanity check associated with this formatter.
2019-04-24 17:36:08 -07:00
Lidi Zheng 072fbc44a0 Respect interval_us setting for TestServicer 2019-04-23 16:37:51 -07:00
SataQiu bca4a6db2c fix some spellings mistakes 2019-04-21 11:07:21 +08:00
Lidi Zheng 123fd943f1 Revert "Revert "Merge pull request #18547 from lidizheng/fix-gevent""
This reverts commit a922bd7a03.
2019-04-16 14:13:04 -07:00
Richard Belleville a922bd7a03 Revert "Merge pull request #18547 from lidizheng/fix-gevent"
This reverts commit 09d1011663, reversing
changes made to e076a30f16.
2019-04-15 12:47:50 -07:00