Commit Graph

1843 Commits

Author SHA1 Message Date
Richard Belleville 967f55efd6 Add explanatory comment. 2019-08-19 14:20:01 -07:00
Richard Belleville ca2fcd647a Add docstring 2019-08-19 13:36:53 -07:00
Richard Belleville 4f04a80a69 Add note about something seemingly suspect. 2019-08-19 13:27:56 -07:00
Richard Belleville 2a9998bc13 Properly handle exceptions in signal handlers for in-flight outgoing RPCs 2019-08-19 13:19:04 -07:00
Juanli Shen a802b14be6 Add xds resolver 2019-08-16 15:09:32 -07:00
Esun Kim be4e684a82 Migrated tsi/alts from nanopb to upb 2019-08-08 16:39:05 -07:00
Juanli Shen 79f191114e Use EDS in xds LB policy 2019-08-07 22:43:45 -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
Esun Kim c6b0bd08c7 Updated grpclb to use upb 2019-08-07 13:25:49 -07:00
Esun Kim 6ddfb384c1 Added google/protobuf/descriptor.upb.* to google_api_upb 2019-08-07 12:08:06 -07:00
Esun Kim f7454a9876 Modified health_check to use upb proto instead of nanopb 2019-08-07 09:16:08 -07:00
Esun Kim 8dfa3c2255 Remove upb targets from BUILD 2019-08-06 17:40:02 -07:00
Esun Kim f88bd06ee5 Go UPB! 2019-08-06 15:27:14 -07:00
Lidi Zheng 3e84f47d3f Apply the spin wait mechansim 2019-08-02 15:38:29 -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 8f6ee97345 "EXPERIMENTAL API" added in docstring 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
Lidi Zheng 9f6243e824 Add wait_for_termination method to grpc.Server 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
Qiancheng Zhao 29480c4f6b add client idle filter 2019-07-24 10:04:41 -07:00
yunjiaw26 1e607d3dc0
Merge pull request #19544 from yunjiaw26/thread_pool
Threadpool
2019-07-18 15:02:59 -07:00
Lidi Zheng c8a277add4 Several documentation fixes 2019-07-15 16:54:56 -07:00
Lidi Zheng 11e60b8f30 Add documentation for compression enums 2019-07-09 16:50:53 -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 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 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
Yunjia Wang 410451c126 Add threadpool implementation 2019-07-01 14:02:58 -07:00
Yunjia Wang 5b6c9473cd Merge remote-tracking branch 'upstream/master' into mpmcqueue 2019-06-26 13:59:28 -07:00
Soheil Hassas Yeganeh f9516b04d5
Merge pull request #19218 from soheilhy/string-view
Introduce string_view and use it for gpr_split_host_port.
2019-06-26 13:15:52 -04:00
Yunjia Wang 343541c13c Merge remote-tracking branch 'upstream/master' into mpmcqueue 2019-06-25 19:45:18 -07:00
Lidi Zheng 9427d1c9ce
Revert "Surface exceptions in gevent IO manager" 2019-06-21 17:24:05 -07:00
Soheil Hassas Yeganeh ef0f9bf7ec Introduce string_view and use it for gpr_split_host_port. 2019-06-20 23:19:34 -04:00
Yunjia Wang fb05f0bf9c Merge remote-tracking branch 'upstream/master' into mpmcqueue 2019-06-19 16:25:16 -07:00
Yunjia Wang ad22f9d7bf Add delete operator overload 2019-06-19 16:24:59 -07:00
Esun Kim cd27a36924 Regenerate projects 2019-06-18 15:40:50 -07:00
Yunjia Wang 8ebd58b3ba Merge remote-tracking branch 'upstream/master' into mpmcqueue 2019-06-17 17:17:02 -07:00
Yunjia Wang 1def76bf1d Add Makefile 2019-06-17 17:16:46 -07:00
Lidi Zheng 3ab7332769
Merge pull request #19356 from lidizheng/i15880
Surface exceptions in gevent IO manager
2019-06-17 16:47:02 -07:00
Lidi Zheng e0a95c3267 Add more missing functions 2019-06-14 16:53:14 -07:00
Lidi Zheng 536765b2f3 Surface exceptions in gevent IO manager 2019-06-14 15:21:07 -07:00
Lidi Zheng a91728737a
Merge pull request #19292 from mehrdada/clean-del
Clean up Python Channel.__del__ logic
2019-06-11 11:16:30 -07:00
Mehrdad Afshari 9847c6364a Silence pylint 2019-06-10 23:31:51 +00:00
Mehrdad Afshari 45a0e5bd4f Clean up Channel.__del__ logic 2019-06-07 15:54:59 -07:00