Commit Graph

3379 Commits

Author SHA1 Message Date
Lidi Zheng dc202bdf1f Adding gRPC Python AsyncIO interop client and server 2020-01-31 13:19:09 -08:00
Lidi Zheng b62bc90cec Update tests.json 2020-01-31 13:16:10 -08:00
Lidi Zheng f3acd16a49 The initialization of connection might take longer than expected 2020-01-31 13:16:10 -08:00
Lidi Zheng f713be4f96 Fix the json 2020-01-31 13:16:10 -08:00
Lidi Zheng ece8422dd0 Simplify the generic handler 2020-01-31 13:16:10 -08:00
Lidi Zheng c3caab3b3e Make Python sanity test happy 2020-01-31 13:16:10 -08:00
Lidi Zheng fd8cf4ec07 Use f-string 2020-01-31 13:16:10 -08:00
Lidi Zheng 2750fa31bb Remove the evil debug line 2020-01-31 13:16:10 -08:00
Lidi Zheng 48a8072bc9 Add timeout tests 2020-01-31 13:16:10 -08:00
Lidi Zheng 41bc9b9910
Merge pull request #21803 from lidizheng/aio-wait
[Aio] Support wait-for-ready mechanism
2020-01-31 13:15:10 -08:00
Lidi Zheng 387c2c7d61 Further reduce the server number to 5 2020-01-31 13:09:26 -08:00
Lidi Zheng c926941447 Deflake the channel_argument_test & improve socket error handling 2020-01-31 12:54:14 -08:00
Lidi Zheng 27a7ec6b0d Make YAPF happy 2020-01-31 11:25:51 -08:00
Lidi Zheng 0de9a7b231 Fix typo 2020-01-31 10:42:51 -08:00
Jan Tattermusch b8aa71ded7
Merge pull request #21833 from jtattermusch/reintroduce_again_21527
Reintroduce #21527 (boringssl submodule unification - take two)
2020-01-31 16:57:22 +01:00
Yash Tibrewal 74309886bb Replace LogicalThread with WorkSerializer 2020-01-30 13:20:57 -08:00
Lidi Zheng a63f51b1ad Remove assertions & add a comment 2020-01-29 15:50:21 -08:00
Lidi Zheng 1b92dc0a7e Fix the windows failure 2020-01-29 15:41:59 -08:00
Lidi Zheng 4e4f1f40f1 Correct the tests.json 2020-01-29 15:41:59 -08:00
Lidi Zheng 82b185b268 Make sanity tests happy 2020-01-29 15:41:59 -08:00
Lidi Zheng 72d6642226 Support wait-for-ready mechanism
* Fixing a segfault & a deadlock along the way
* Patching another loophole in the error path
2020-01-29 15:41:59 -08:00
Pau Freixes 46804d8125 Add test for stream unary close channel, remove irrelevant code 2020-01-30 00:00:18 +01:00
Pau Freixes 2f81f3df82 Fix typo 2020-01-29 23:53:14 +01:00
Mark D. Roth 380eb750ec New JSON API 2020-01-29 14:52:19 -08:00
Pau Freixes a1eb58c6ff Fix pytype issue 2020-01-29 23:52:01 +01:00
Pau Freixes cc8bd8cfda Use Event for knowing if a callback was called or not 2020-01-29 23:23:51 +01:00
Pau Freixes 61177a2cd8 Make none graceful test explicit 2020-01-29 23:15:51 +01:00
Pau Freixes 5959b685e8 Remove unused imports, add pylint exceptions 2020-01-29 23:13:06 +01:00
Pau Freixes 90331211a6 Add graceful period for closing the channel
Separated the tests for testing how a channel is closed into another
test file.

Fixed a bug introduced into the interceptors code in the previous
commit.
2020-01-29 23:07:26 +01:00
Lidi Zheng deb472fa99
Merge pull request #21820 from lidizheng/fix-windows-compile
Fix the windows build failure
2020-01-29 09:54:15 -08:00
Jan Tattermusch f098606c4a Revert "Revert "Reintroduce #21527 (boringssl submodule unification)""
This reverts commit cca892022b.
2020-01-29 09:18:51 -05:00
Lidi Zheng e5ff58ed85 Make YAPF happy 2020-01-28 15:43:13 -08:00
Lidi Zheng 50ed111cde Pack the platform check into the compiler check function 2020-01-28 15:41:29 -08:00
Pau Freixes c2b3e00068 [Aio] Close ongoing calls when the channel is closed
When the channel is closed, either by calling explicitly the `close()`
method or by leaving an asyncrhonous channel context all ongoing RPCs will be
cancelled.
2020-01-28 23:16:58 +01:00
Lidi Zheng 09d121f65e Fix the windows build failure 2020-01-28 13:32:59 -08:00
hcaseyal cca892022b
Revert "Reintroduce #21527 (boringssl submodule unification)" 2020-01-27 13:46:10 -08:00
Richard Belleville cb125e969a
Merge pull request #21799 from benjaminp/credentials-daemon
Make credentials callback threads daemonic.
2020-01-27 12:57:46 -08:00
Lidi Zheng 2dcd83d68b
Merge pull request #21772 from lidizheng/aio-call-mixins-new
Adding mixin classes to make client-side implementation cleaner V2
2020-01-27 12:20:58 -08:00
Benjamin Peterson fb8b7fbcac Make credentials callback threads daemonic.
Similarly to #21786, we want to avoid holding up interpreter shutdown with internal threads.
2020-01-27 11:06:55 -08:00
Richard Belleville 8af2097a45
Merge pull request #21786 from benjaminp/deliver-daemon
Mark the delivery thread daemonic.
2020-01-27 10:54:40 -08:00
Lidi Zheng f8ec53ea42 Removing unused variables & rename variables 2020-01-27 10:04:08 -08:00
Jan Tattermusch e7e5d0198f Revert "Revert "Unify boringssl submodules and use non-developer boringssl cmake build""
This reverts commit fe2242e603.
2020-01-27 05:04:05 -05:00
Mark D. Roth ac7c1d20ed Add LDS/RDS into XdsClient 2020-01-24 08:05:02 -08:00
Benjamin Peterson 4ab5aaf142 Mark the delivery thread daemonic. 2020-01-23 16:33:47 -08:00
Lidi Zheng 0c142306be De-duplication for the call objects 2020-01-23 10:12:20 -08:00
Lidi Zheng 5109e05d06
Merge pull request #21708 from lidizheng/aio-fix
[Aio] Fixing a segfault in the shutdown path
2020-01-21 15:27:46 -08:00
Lidi Zheng c4c318dc54
Merge pull request #21696 from Skyscanner/move_status_initial_metadata_cython
Move status and initial metadata handling to Cython
2020-01-21 13:48:40 -08:00
Lidi Zheng 2ea49dbf9a Adding a space line 2020-01-21 11:37:41 -08:00
Lidi Zheng 29d42a4731
Merge pull request #21672 from lidizheng/one-logger
Clean-up loggers and imports in Cython
2020-01-21 11:29:40 -08:00
Lidi Zheng d803bc8e4e
Merge pull request #21712 from lidizheng/fix-import
[Aio] Fix a segfault in check connectivity state
2020-01-21 11:09:26 -08:00
Jan Tattermusch e886a9d0fd
Merge pull request #21723 from grpc/revert-21527-unify_boringssl_deps2
Revert "Unify boringssl submodules and use non-developer boringssl cmake build"
2020-01-21 19:23:18 +01:00
Pau Freixes 2dde566d39 Fix pylint issue 2020-01-21 15:19:33 +01:00
Pau Freixes 071da37fb9 Remove unused call attributes 2020-01-20 23:44:43 +01:00
Pau Freixes 90b04f2a45 Make YAPF happy 2020-01-20 23:37:29 +01:00
Pau Freixes 53c41de3e0 Refactorize Cython and Python call communications
Now the status and the initial metadata, as awaitable methods, are
provided by the Cython layer. Any time the Python layer, like the Call
object, needs to know the status of the initial metadata uses the new
methods published by the AioCall
2020-01-20 23:09:46 +01:00
Jan Tattermusch fe2242e603
Revert "Unify boringssl submodules and use non-developer boringssl cmake build" 2020-01-20 14:27:31 +01:00
Jan Tattermusch 3f3cf8b62a
Revert "grpclb stabilization" 2020-01-20 14:11:16 +01:00
Jan Tattermusch eba60d8dbe
Merge pull request #21527 from jtattermusch/unify_boringssl_deps2
Unify boringssl submodules and use non-developer boringssl cmake build
2020-01-20 07:52:42 +01:00
Lidi Zheng 225d37e84c Fix a segfault in check connectivity state 2020-01-17 17:14:30 -08:00
Lidi Zheng 80d7acff7c Fixing a segfault in the server shutdown path 2020-01-17 16:09:39 -08:00
Alexander Polcyn 1197454f5a Regenerate projects 2020-01-17 15:36:25 -08:00
Lidi Zheng b9083a9edb
Merge pull request #21681 from lidizheng/aio-callbacks
[Aio] Implement add_done_callback and time_remaining
2020-01-17 10:41:26 -08:00
apolcyn 232fa12972
Merge pull request #21590 from jtattermusch/protobuf_3_11_2
Update third_party/protobuf to v3.11.2
2020-01-16 14:15:12 -08:00
Lidi Zheng c1eab2e95f Remove the suppression 2020-01-16 12:15:12 -08:00
Lidi Zheng 0fc1d212aa Make sanity tests happy 2020-01-16 12:13:36 -08:00
Lidi Zheng 780bff32eb Fix the test case 2020-01-16 12:06:08 -08:00
Lidi Zheng 21670ed1a8 Add time remaining test case 2020-01-16 11:59:36 -08:00
Jan Tattermusch 325da0066d regenerate projects 2020-01-16 03:55:18 -05:00
Lidi Zheng 1c78ccd44e Implement add_done_callbacks and time_remaining 2020-01-15 18:07:45 -08:00
Lidi Zheng adab340647 Simplify call_test using mixin class 2020-01-15 18:07:27 -08:00
Lidi Zheng 6f6b0d09bd
Merge pull request #21643 from lidizheng/aio-reuseport
[Aio] Support SO_REUSEPORT channel option
2020-01-15 16:28:31 -08:00
Lidi Zheng af67aaf031
Merge pull request #21647 from lidizheng/aio-metadata
[Aio] Support metadata for unary calls
2020-01-15 16:27:00 -08:00
Esun Kim d4f191b647
Merge pull request #21677 from veblush/absl-update
Update absl to the lastest
2020-01-15 15:23:54 -08:00
Lidi Zheng 613f64f12e Support metadata for streaming RPCs 2020-01-15 14:18:09 -08:00
Esun Kim 9e15f78cf8 Update absl to the lastest 2020-01-15 13:39:51 -08:00
Lidi Zheng f912ddf7d4 Split the seen_metadata function & assign tuple() as default value 2020-01-15 12:11:54 -08:00
Lidi Zheng 181437bbd8 Add prepend_send_initial_metadata_op function 2020-01-15 11:50:51 -08:00
Lidi Zheng c6a97f125a Fix the breakage due to conflict 2020-01-15 11:30:58 -08:00
Lidi Zheng 435cf89108 Fix a bug that prevents metadata modification in interceptors 2020-01-15 11:28:27 -08:00
Lidi Zheng a3e950adbb Make tests.json happy 2020-01-15 11:28:27 -08:00
Lidi Zheng fb2b4ec82b Add two more invalid metadata test cases 2020-01-15 11:28:27 -08:00
Lidi Zheng ec2f394803 Resolve the conflict between PRs 2020-01-15 11:28:27 -08:00
Lidi Zheng a140a362ba Make sanity tests happy 2020-01-15 11:27:18 -08:00
Lidi Zheng bcf3a1f9e7 Add metadata test 2020-01-15 11:26:44 -08:00
Lidi Zheng f9397de161 Make test pass after the merge 2020-01-15 11:26:44 -08:00
Zhanghui Mao 6d556914d0 fix metadata 2020-01-15 11:26:19 -08:00
Zhanghui Mao 0b802e0404 implement metadata for aio unary call 2020-01-15 11:24:44 -08:00
Lidi Zheng 5a4a5a0088
Merge pull request #21517 from lidizheng/aio-streaming
[Aio] Client Streaming and Bi-di Streaming
2020-01-15 11:20:41 -08:00
Lidi Zheng cdade7c450 Clean-up loggers and imports in Cython 2020-01-15 11:04:58 -08:00
Jan Tattermusch 27cdec0041 buildifier format 2020-01-15 04:43:59 -05:00
Richard Belleville 69f990673f Conform to protobuf's usage of six 2020-01-15 04:43:59 -05:00
Lidi Zheng 4ec94d2d67 Implement stream-unary and stream-stream RPC
* Includes both client-side and server-side
* Adding many tests in multiple files
* Introduces EOF as stream terminator
* Fixing crashes from Core in many ways
2020-01-14 17:31:13 -08:00
Lidi Zheng 9c66db3d26 Disable the flaky _exit_test for Bazel 2020-01-14 16:47:55 -08:00
Lidi Zheng 385cd4b443
Merge pull request #21582 from lidizheng/aio-abort
[Aio] Abort mechanism for server side
2020-01-14 13:48:23 -08:00
Lidi Zheng 259be9e6b7 Compress the catch clauses 2020-01-14 12:12:07 -08:00
Lidi Zheng 1dc2679d6d Explicitly pointout KeyboardInterrupt and SystemExit can pass freely 2020-01-14 12:12:07 -08:00
Lidi Zheng 65ba1c9aab Remove unused function 2020-01-14 12:12:07 -08:00
Lidi Zheng 9bba7b7af5 Improve readability 2020-01-14 12:12:07 -08:00
Lidi Zheng 26367cecc2 Expose the AbortError to enable users to identify the exception 2020-01-14 12:12:07 -08:00
Lidi Zheng b721c6c096 Add abort test to tests.json 2020-01-14 12:04:17 -08:00
Lidi Zheng 8429fec1b5 Make pytype happy 2020-01-14 12:04:17 -08:00
Lidi Zheng cddd0a0419 Implement abort mechanism for server side 2020-01-14 12:04:17 -08:00
Lidi Zheng 2306e26130 Adding comments about socket options portability 2020-01-14 11:52:53 -08:00
Lidi Zheng 85c8ce2f2f Fix a bug in conflict resolution 2020-01-14 11:50:52 -08:00
Lidi Zheng 4a86bb16f5 Adding documentation to the new ref-count mechanism 2020-01-14 10:55:53 -08:00
Lidi Zheng 7520925814 Further simplify the ref-count management for CallbackWrapper 2020-01-14 10:55:53 -08:00
Lidi Zheng 3099856a6a Adopt reviews' suggestions:
* Created a separate file for test constants
* Guarded current behavior of watch_connectivity_state
* Applied the same SEGV protection to callback_common
2020-01-14 10:55:53 -08:00
Lidi Zheng 050b3989f0 Make pytype happy 2020-01-14 10:55:52 -08:00
Lidi Zheng 0afc05cef5 Fixing the docstring wording 2020-01-14 10:55:52 -08:00
Lidi Zheng f75ce34da7 Removing an empty line 2020-01-14 10:55:52 -08:00
Lidi Zheng 650ba93a61 Improve the surface API & rewrite the test 2020-01-14 10:55:52 -08:00
Lidi Zheng fa62339430 Make Sanity test happy 2020-01-14 10:55:26 -08:00
Lidi Zheng 5f0a70973e Implement connectivity state related APIs 2020-01-14 10:55:26 -08:00
Pau Freixes 8f51eb62d5 Make YAPF happy 2020-01-14 16:46:01 +01:00
Pau Freixes 299a9b38ae Skip time out test for windows environments 2020-01-14 16:21:33 +01:00
Mariano Anaya 35b7da75f1 Accept credentials in async unary_unary call
Create the asynchronous version of a secure channel, that accepts the
credentials.

    from grpc.experimental.aio import secure_channel
    channel = secure_channel(...)

Co-authored-by: Pau Freixes <pau.freixes@skyscanner.net>
2020-01-14 15:12:10 +01:00
Lidi Zheng bcd57dfb7d Support Windows 2020-01-13 13:41:53 -08:00
Lidi Zheng 6a70555290 Plumb through socket options from application to iomgr 2020-01-13 13:29:02 -08:00
Lidi Zheng b74476417d Make the socket creation function 2/3 agnostic 2020-01-13 11:47:59 -08:00
Lidi Zheng e479a78b7c Apply REUSEADDR and REUSEPORT at the same time 2020-01-13 11:38:30 -08:00
Lidi Zheng db5bd23e36 Remove the errno.ENOSR form unrecoverable error list 2020-01-13 11:38:30 -08:00
Lidi Zheng 055b3a7e6f Simply the check 2020-01-13 11:38:30 -08:00
Lidi Zheng ebd2c841e1 Check the errno instead of the message 2020-01-13 11:38:30 -08:00
Lidi Zheng 305defc7cb Reuse 'bound_socket' to improve the test case 2020-01-13 11:38:30 -08:00
Lidi Zheng d7698e7e1d Make the test v4/v6 agnostic & fix some typo 2020-01-13 11:38:30 -08:00
Lidi Zheng d1cf71ade5 Fix the format in Cython 2020-01-13 11:38:30 -08:00
Lidi Zheng cc19670bb9 Cosmetic changes 2020-01-13 11:38:30 -08:00
Lidi Zheng 3a6eaf7de7 Remove the hack 2020-01-13 11:38:30 -08:00
Lidi Zheng 8d81314fc8 Make YAPF happy 2020-01-13 11:38:30 -08:00
Lidi Zheng 387c9c0be3 Improve the credibility of the test 2020-01-13 11:38:30 -08:00
Lidi Zheng 96321ed57f Make sanity tests happy 2020-01-13 11:38:30 -08:00
Lidi Zheng 91df9493eb Support channel argument for both client-side and server-side 2020-01-13 11:37:42 -08:00
Lidi Zheng da6a29dd6d
Merge pull request #21455 from Skyscanner/client_unaryunary_interceptors_3
[Aio] Client Side Interceptor For Unary Calls
2020-01-13 11:11:04 -08:00
Pau Freixes 17928a43c0 Apply review feedback, increase timeout threshold 2020-01-11 15:31:05 +01:00
Mark D. Roth 7388c47c91
Merge pull request #20803 from markdroth/grpclb_stabilization
grpclb stabilization
2020-01-10 10:47:46 -08:00
Mark D. Roth 5b18402914 grpclb stabilization 2020-01-10 09:13:10 -08:00
Pau Freixes bb2c94f0e2 Fix random segfaults when gRPC call resources are released
Due to the GC work for breaking reference cycles the internal
attributes of the _AioCall object were cleared and initialized
with None in aims of releasing refcounts for breaking direct or
indirect references.

Once the clear was done, the deallocation of the _AioCall would
fail since the pointer to gRPC call was cast to an invalid object,
no longer was a GrcpWrapper object but a None object, returning a
NULL as a value for the attribute call.
2020-01-10 15:33:16 +01:00
Esun Kim 26adb49f5d
Merge pull request #21598 from longkb/remove_duplicated_words
Remove duplicated words
2020-01-09 16:20:31 -08:00
Pau Freixes aa473fa68a Make YAPF happy 2020-01-09 00:08:01 +01:00
Pau Freixes 69884f7d84 Remove unused loop parameter 2020-01-09 00:07:15 +01:00
Pau Freixes db54580f20 Make YAPF happy 2020-01-09 00:04:44 +01:00
Pau Freixes 2a342b22a7 Fixes bug with deadline 2020-01-09 00:03:42 +01:00
Pau Freixes 75c858bcef Change test name 2020-01-08 15:31:52 +01:00
Pau Freixes 5d664a5f5e Make YAPF happy 2020-01-07 23:38:26 +01:00
Pau Freixes 33765f5ee5 Not mask AioRpcError and CancelledError at interceptor level 2020-01-07 23:31:50 +01:00
Yihua Zhang 62005e4290 Merge remote-tracking branch 'upstream/master' into grpc_security_level_negotiation 2020-01-07 13:10:08 -08:00
Kim Bao Long 953f7c4429 Remove duplicated words
Although it is spelling mistakes, it might make an affects while reading.

Signed-off-by: Kim Bao Long <longkb@vn.fujitsu.com>
2020-01-07 09:35:09 +07:00
Pau Freixes a2667b80c3 make YAPF happy 2020-01-07 01:32:47 +01:00
Pau Freixes 833df2b6c8 Apply feedback 2020-01-07 00:55:59 +01:00
Pau Freixes 77df7f5f17 Client unary unary interceptor
Implements the unary unary interceptor for the client-side. Interceptors
can be now installed by passing them as a new parameter of the `Channel`
constructor or by giving them as part of the `insecure_channel`
function.

Interceptors are executed within an Asyncio task for making some work before
the RPC invocation, and after for accessing to the intercepted call that has
been invoked.
2020-01-07 00:39:54 +01:00
Richard Belleville a29b3b7304
Merge pull request #21593 from gnossen/correct_set_trailing_metadata_docs
Clarify the set_trailing_metadata docstring
2020-01-06 13:58:59 -08:00
Lidi Zheng f9aed63225
Merge pull request #21506 from lidizheng/aio-cancel
[Aio] Improve cancellation mechanism on client side
2020-01-06 13:55:55 -08:00
Richard Belleville ad83e0b77a Clarify the set_trailing_metadata docstring 2020-01-06 12:50:24 -08:00
Yihua Zhang f3d3466a40 fix python santiy check error 2020-01-06 11:58:25 -08:00
Lidi Zheng 5c4e285830 Use "raise_for_status" 2020-01-06 11:54:57 -08:00
Yihua Zhang e10d90ba27 add security level negotiation between call creds and channel. 2020-01-06 11:40:27 -08:00
Esun Kim 5207eba9ff Add abseil 2020-01-03 19:29:55 -08:00
Lidi Zheng 9a3ddd8d76 Correct comment wording 2020-01-03 10:29:11 -08:00
Lidi Zheng 4e3d980f70 Convert local cancellation exception into CancelledError 2020-01-03 10:29:11 -08:00
Lidi Zheng a3d7733dd0 Passing cancel signal to Core for Unary Call as well 2020-01-03 10:29:11 -08:00
Lidi Zheng 6f0ffef2e9 Resolve a TODO and handle one more cancellation corner case 2020-01-03 10:29:11 -08:00
Lidi Zheng 413d29218e Make YAPF happy 2020-01-03 10:29:11 -08:00
Lidi Zheng d49b0849f0 Adding more catch clauses for CancelledError 2020-01-03 10:29:11 -08:00
Lidi Zheng e8283e4818 Reword the comment 2020-01-03 10:29:11 -08:00
Lidi Zheng 65e4f17a2c Remove unused code 2020-01-03 10:29:11 -08:00
Lidi Zheng f1b29deea6 Improve cancellation mechanism:
* Remove the weird cancellation_future;
* Convert all CancelledError into RpcError with CANCELLED;
* Move part of call logic from Cython to Python layer;
* Make unary-stream call based on reader API instead of async generator.
2020-01-03 10:29:11 -08:00
Esun Kim 7be821ac47 Yapf all target python sources 2020-01-03 09:25:10 -08:00
Pau Freixes a85d001225
Merge pull request #21543 from Skyscanner/allow_calling_none_existing_servers
[Aio] Call correctly the connect CB error when an error happens
2019-12-24 08:25:30 +01:00
Pau Freixes d3bba44e9e [Aio] Call correctly the connect CB error when an error happens
Fixes a bug with the Aio socket that did not call correctly the
connect CB function when there was an issue connecting to a host
2019-12-23 23:21:08 +01:00
Lidi Zheng bf1bfff280 Improve readability & reduce logging severity 2019-12-17 11:14:09 -08:00
Lidi Zheng 8ad6152f00 Remove the explicit coroutine tracking 2019-12-16 18:21:34 -08:00
Lidi Zheng a205eaab56 Fix the mismatch type of benchmark server 2019-12-10 17:48:35 -08:00
Lidi Zheng 4955cda816
Merge pull request #21232 from lidizheng/aio-streaming
[Aio] Streaming API - Server side streaming
2019-12-10 17:45:51 -08:00
Guantao Liu b9c06e043f
Merge pull request #21216 from guantaol/libuv_em_basic
Bare bones of the libuv EventManager.
2019-12-10 17:07:57 -08:00
Lidi Zheng 160900c897 Renamed the callback_start_batch to execute_batch 2019-12-09 16:59:14 -08:00
Lidi Zheng eff9f936b9 Simplify the creation and destruction of grpc_call 2019-12-09 16:57:05 -08:00
Lidi Zheng 6f9b77103a Adopt advices from gnossen@:
* Fixes typos in comments
* Replaces terms in comments
* Adjusts logging level
* Adds more assertions
2019-12-09 16:29:00 -08:00
Lidi Zheng 25f6723a7e Remove unused import 2019-12-09 11:12:55 -08:00
Lidi Zheng 467bd83845 Correct the return types 2019-12-07 11:06:26 -08:00
Lidi Zheng e9e77e5123 Suppress the pylint "abstract-method" warning 2019-12-06 15:17:23 -08:00
Lidi Zheng d411891bf6 Fix a tiny typing mismatch 2019-12-06 12:55:24 -08:00
Lidi Zheng 1e31e610e7 Remove a useless line 2019-12-05 19:45:56 -08:00
Lidi Zheng 36e6ee9ac3 Adopt reviewer's advices:
* Fix several typos
* Fix a un-revealed segfault
* Fix some documentation
* Polish test assertions
2019-12-05 19:43:38 -08:00
Lidi Zheng fa4eb94ea2 Remove the add_callback method & fix segfault 2019-12-05 18:34:42 -08:00
Lidi Zheng 46e963f8bc Let streaming RPC start immediately 2019-12-05 17:11:16 -08:00
Yihua Zhang a6dbc7adb5 rename spiffe to tls 2019-12-05 16:03:37 -08:00
Lidi Zheng bc99ddedf0 Adopt reviewer's advices 2019-12-04 18:26:11 -08:00
Guantao Liu ee4b311605 Merge remote-tracking branch 'upstream/master' into libuv_em_basic 2019-12-04 17:41:35 -08:00
Lidi Zheng bebd20b126
Merge pull request #21377 from lidizheng/ship-with-proto
Ship grpcio-status with the actual proto file
2019-12-04 15:56:05 -08:00
Lidi Zheng 1a3916bc45 Use False instead 0 for bint 2019-12-04 14:47:07 -08:00
Lidi Zheng d4b8527fb6 Adopt reviewer's advices 2019-12-04 14:28:10 -08:00
Guantao Liu 6b4b891eb2 Merge remote-tracking branch 'upstream/master' into libuv_em_basic 2019-12-04 14:01:14 -08:00
Mark D. Roth 68df397aa2 Remove vtables from JSON library 2019-12-04 13:03:55 -08:00
Lidi Zheng 45e23ef3ad Ship grpcio-status with the actual proto file 2019-12-04 12:15:03 -08:00
Lidi Zheng c5d194062c Attempt to fix all CI failures:
* Fixes the Windows Cython obsolate issue
* Fixes the post fork threading issue
2019-12-03 15:57:42 -08:00
Lidi Zheng 32d05488f6 Hitting the technical debt the hard way 2019-12-03 15:57:39 -08:00
Lidi Zheng dc2ee66432 Make Sanity test happy 2019-12-03 15:57:08 -08:00
Richard Belleville 6feae07504 Regenerate projects 2019-12-03 15:08:50 -08:00
Lidi Zheng 5e5781c961 First step of adding streaming API:
* Refactors how Task wrapper work on the client-side
* Refactors final status propagation and unify similar classes
* Adds unary-stream API for both-sides
* Refactors each abstraction layer multicallable / call / channel
* Revisits the design of cancellation on client-side
* Makes server methods interuptable
* Fixes a zombie coroutine issue in shutdown path
2019-12-03 12:53:47 -08:00
Guantao Liu d969d8c706 Fix build rules. 2019-12-02 16:59:37 -08:00
Guantao Liu 19d1776c0d Rebase the workspace to fix the submodule discrepancy. 2019-12-02 16:57:17 -08:00
Yash Tibrewal 5817f6287d
Merge pull request #21275 from yashykt/logicalthread
LogicalThread
2019-12-02 14:44:20 -08:00
Mark D. Roth 631fe79f84
Merge pull request #21207 from markdroth/c++_proxy_mapper
Convert grpc_proxy_mapper to C++.
2019-12-02 13:45:11 -08:00
Lidi Zheng 31ffd16764
Merge pull request #21285 from lidizheng/add-ignores
Add side-products of Python compilation to gitignore
2019-11-27 14:48:11 -08:00
Lidi Zheng bb38187221 Add a TODO to remove a.out 2019-11-26 11:18:00 -08:00
Richard Belleville aa156984b1 Support mutating a value used for a response in grpcio_testing 2019-11-25 17:41:16 -08:00
Mark D. Roth 4e393dc035 Convert grpc_proxy_mapper to C++. 2019-11-22 12:32:47 -08:00
Mark D. Roth b073f5416d
Merge pull request #20902 from markdroth/c++_connector
Convert grpc_connector to C++.
2019-11-22 11:47:20 -08:00
Yash Tibrewal 3b1d176e9d LogicalThread 2019-11-22 10:38:35 -08:00
Lidi Zheng 0db9a7a4a9
Merge pull request #21248 from lidizheng/fix-runner
Use dedicated threads for synchronous runners
2019-11-20 10:57:37 -08:00
Lidi Zheng 87e1189083 Use dedicated threads for synchronous runners 2019-11-19 13:56:47 -08:00
Mark D. Roth 0e487a7405 Convert grpc_connector to C++. 2019-11-14 09:45:17 -08:00
Jan Tattermusch 986070d280 use test size instead of timeout 2019-11-14 11:17:31 -05:00
Esun Kim 8cad3b37dc Updates build files to use a sorted list of sources 2019-11-09 15:30:15 -08:00
Lidi Zheng 8347f47535
Merge pull request #20951 from lidizheng/aio-callback-utils
[Aio] Unify the logic around Core Callback API for both sides
2019-11-08 11:38:04 -08:00
Lidi Zheng cb6726d0ea Make the exception detail more helpful 2019-11-07 10:50:48 -08:00
Richard Belleville d0937d101e
Merge pull request #20314 from robertwb/scope-fixes
Fix issue with exception being out of scope in Python 3.
2019-11-07 09:19:43 -08:00
Richard Belleville f5e386730e
Merge pull request #20938 from gnossen/unary_stream_single_threaded_test
Add additional test runner for single-threaded unary-stream code path
2019-11-06 15:32:30 -08:00
Richard Belleville 40510efdc1 Yapf 2019-11-06 13:02:55 -08:00
Richard Belleville 5175dd4643
Merge pull request #20838 from gnossen/dedupe_dual_stack_tests
Dedupe dual stack tests
2019-11-06 13:01:42 -08:00
Richard Belleville 10e7befbf4 Appease pylint 2019-11-06 11:51:17 -08:00
Richard Belleville 3f1b5fe2aa Whoops 2019-11-06 11:19:12 -08:00
Richard Belleville 7bf58e82fd (hopefully) fix Windows 2019-11-06 11:16:50 -08:00
Lidi Zheng 918492d3ca Make buildifier happy 2019-11-06 11:10:17 -08:00
Richard Belleville df8bd10b96 Skip test not applicable to unary-stream case 2019-11-06 10:21:01 -08:00
Lidi Zheng 80f66ab248 Eliminate an evil space line 2019-11-05 17:17:23 -08:00
Lidi Zheng 08f145da99 Unify the logic around Core Callback API for both sides 2019-11-05 17:05:12 -08:00
Lidi Zheng 15c67e255b
Merge pull request #20885 from lidizheng/buildifier-step-2
Format all Bazel files using buildifier
2019-11-05 16:59:32 -08:00
Esun Kim aa93600a4d
Merge pull request #20907 from veblush/upb-lib
Change upb from filegroup to library
2019-11-05 16:55:46 -08:00
Richard Belleville a08da012d2 Switch to config-driven style 2019-11-05 15:17:06 -08:00
Esun Kim aaf48c66fc Change upb from filegroup to library 2019-11-05 14:20:56 -08:00
Lidi Zheng c34bef4ca4 Format all Bazel files with buildifier 2019-11-05 14:03:52 -08:00
Lidi Zheng 4373d88caf Fix the tests after merging with Unified Stub Call 2019-11-05 14:03:29 -08:00
Lidi Zheng ae59fc3b7a Adopt reviewers' advice
* Add cancellation handler
* Use loop=
2019-11-05 14:03:29 -08:00
Lidi Zheng 9aeefc3691 Fix missing shielding 2019-11-05 14:03:29 -08:00
Lidi Zheng 9289d34df0 Propagate unexpected error to application 2019-11-05 14:03:29 -08:00
Lidi Zheng f8dc1d9a8e Make PyLint happy 2019-11-05 14:03:29 -08:00
Lidi Zheng 8af510e1df Adopt reviewer's advice:
1. Refactor (simplify) the failure handler;
2. Fix a memory leak for badly written application code.
2019-11-05 14:03:29 -08:00
Lidi Zheng 8168b9e1c9 Adopt reviewer's advice
* Make graceful shutdown support calls from multi-coroutine
* Added comments
* Make graceful shutdown success test case more strict
* Add 2 more concurrent graceful shutdown tests
2019-11-05 14:03:29 -08:00
Lidi Zheng 983e36d5a3 Make YAPF and PyLint happy 2019-11-05 14:03:29 -08:00
Lidi Zheng 0a423d05ca Add 4 server tests and 1 channel tests
* Improve the shutdown process
* Refactor the AioRpcError
2019-11-05 14:03:29 -08:00
Lidi Zheng cfea8c7d25 Add 3 more shutdown test cases 2019-11-05 14:03:29 -08:00
Lidi Zheng a978449c3f Correctly propagate and catch request_call failure 2019-11-05 14:03:29 -08:00
Lidi Zheng 980bcaf076 Add failure handling mechanism to CallbackWrapper 2019-11-05 14:03:29 -08:00
Lidi Zheng 3c43e6330f Add shutdown process for completion queue 2019-11-05 14:03:29 -08:00
Lidi Zheng 9f5dbf70dc Add shutdown test 2019-11-05 14:03:29 -08:00
Richard Belleville 86cb2f9efc Add additional test runner for single-threaded unary-stream code path 2019-11-05 11:47:16 -08:00
Richard Belleville 057a493848
Merge pull request #20905 from gnossen/interceptor_test
Fix Regression in Client-side Interceptors
2019-11-05 10:34:31 -08:00
Richard Belleville 8c7b77489b Rename to InactiveRpcError 2019-11-04 16:09:46 -08:00
Pau Freixes 403db61a58 AIO Unified call interface
Call interface, implemented by the new `grpc.experimental.aio.Call`
object is the unique entry point for handling RPC calls and is the
one returned by, for now, the `unary_unary` method. It supports all
in one the three interfaces `with_call`, `__call__` and `future` implemented
by the synchronous API.
2019-11-04 23:04:56 +01:00
Lidi Zheng 13bc82ce9c
Merge pull request #20891 from lidizheng/fix-3-i20299
Make sure Core aware of gevent Cython objects
2019-11-04 13:45:06 -08:00
Richard Belleville f7249fcd3a Adopt reviewer's advice 2019-11-04 13:44:39 -08:00
Lidi Zheng 814fd36459
Merge pull request #20870 from lidizheng/win-3.6
Make Windows test gRPC with Python 3.6
2019-11-04 13:41:19 -08:00
yihuaz 5570dec9a5
Merge pull request #20916 from yihuazhang/python
Add more documentation on local credentials
2019-11-04 13:03:24 -08:00
Lidi Zheng 1f3675005d Disable StrictRealTimeTest for gevent 2019-11-04 10:47:35 -08:00
Lidi Zheng cf02badf87 Make PyLint happy 2019-11-04 10:41:11 -08:00
Yihua Zhang 294aecfed6 add more documentation on local credentials 2019-11-03 09:33:06 -08:00
Richard Belleville e4d58fba6d Sanity 2019-11-01 16:34:41 -07:00
Richard Belleville 6f0b772afa Add tests for other arities 2019-11-01 15:39:49 -07:00
Richard Belleville acc6053716 Fix interceptors for unary-unary case 2019-11-01 15:28:48 -07:00
Lidi Zheng d10eabf18b Add a test case to catch the failure 2019-11-01 14:20:56 -07:00
Lidi Zheng 2817afd4e9 Make sure Core aware of gevent Cython objects 2019-10-31 16:41:14 -07:00
Lidi Zheng 61d463672d Windows' gevent is always special! 2019-10-31 13:39:43 -07:00
Lidi Zheng 3cd792ad70 Make YAPF happy 2019-10-30 18:21:41 -07:00
Lidi Zheng e2ee7bb679 Disable unit._channel_close_test.ChannelCloseTest 2019-10-30 17:00:16 -07:00
Mark D. Roth fa6920f601
Merge pull request #20544 from markdroth/xds_cds_policy
CDS LB policy
2019-10-29 14:31:55 -07:00
Mark D. Roth 7ccdc85fa0 CDS LB policy 2019-10-29 12:00:12 -07:00
Richard Belleville 57e463db82
Merge pull request #20837 from gnossen/pylint_considered_annoying
Make pylint less annoying
2019-10-28 17:39:32 -07:00
Richard Belleville 9b058aa157 心よ。心よ。ここは、悪い所よ。 2019-10-28 15:50:39 -07:00
Richard Belleville 026d0e6af6 Incorporate review comments 2019-10-28 15:25:12 -07:00
Richard Belleville be214c9c50 Yapf 2019-10-28 14:41:52 -07:00
Richard Belleville abdd2ac2dd
Merge pull request #20812 from gnossen/unary_stream_initial_metadata
Enable Retrieval of Initial Metadata from Single Threaded Unary-Stream RPC at Any Point
2019-10-28 13:39:26 -07:00
Richard Belleville 90ee052cb8 Attempt to work on kokoro 2019-10-28 12:45:03 -07:00
Richard Belleville d78563eb43 Merge remote-tracking branch 'origin/master' into dedupe_dual_stack_tests 2019-10-28 12:24:54 -07:00
Richard Belleville 2838ff184d Make pylint less annoying 2019-10-28 12:20:41 -07:00
Richard Belleville 89fba97892 Yapf. Pylint 2019-10-28 12:17:16 -07:00
Richard Belleville a577c75cb1 Update docstrings 2019-10-28 11:48:57 -07:00
Richard Belleville 349d79cae9 Integrate with asyncio tests 2019-10-28 11:46:40 -07:00
Richard Belleville bf7accb2db Remove unused code 2019-10-28 11:18:48 -07:00
Richard Belleville 09ac5fe573 Fix up reconnect test 2019-10-28 11:18:03 -07:00
Richard Belleville 800e0bb17a Migrate compression test 2019-10-28 11:00:56 -07:00
Richard Belleville 5e3717953c Get metadata flags test working 2019-10-28 10:55:40 -07:00
Richard Belleville 3b652bc3ef WIP. Start writing signatures 2019-10-25 17:00:34 -07:00
Richard Belleville 49dafa527f Rename exception and method 2019-10-25 16:04:11 -07:00
Richard Belleville d07a59efc5 Introduce new error 2019-10-25 16:01:35 -07:00
Richard Belleville f6dcec556e Clean up operations sequence 2019-10-25 15:37:00 -07:00
Richard Belleville 844acda19b Tidy up inheritance hierarchy 2019-10-25 15:27:35 -07:00
Lidi Zheng c8c41e4f6a
Merge pull request #20771 from lidizheng/aio-tests
[AIO] AsyncIO Tests Kokoro Integration
2019-10-25 15:22:10 -07:00
Richard Belleville 6ece2af4f1 Refix test 2019-10-25 14:36:45 -07:00
Richard Belleville 72a736fe07 Re-add test 2019-10-25 14:34:55 -07:00
Richard Belleville bd0c995f8e Merge remote-tracking branch 'origin/master' into unary_stream_initial_metadata 2019-10-25 14:26:12 -07:00
Richard Belleville 2be43cfdc8 TODONE 2019-10-25 14:20:05 -07:00
Richard Belleville b6a41e2e21 Yapf. Lint 2019-10-25 14:16:21 -07:00
Richard Belleville 897c798311 Reset default unary-stream implementation 2019-10-25 14:13:46 -07:00
Richard Belleville 4b5397dae8 Let errors bubble up to the user 2019-10-25 14:12:10 -07:00
Richard Belleville 82bb86540d Formatting 2019-10-25 14:05:04 -07:00
Richard Belleville 2ce31086aa Dedupe 2019-10-25 14:02:27 -07:00
Richard Belleville 3196b8a8e0 Pull out an uncomplicated error PODS 2019-10-25 13:55:43 -07:00
Richard Belleville 420590f163 Pull out a base Rendezvous class 2019-10-25 13:17:10 -07:00
Lidi Zheng fb74da8620 Adopt reviewer's advice 2019-10-25 10:58:10 -07:00
Richard Belleville 752e9be052 Fix initial metadata problem. Very messy. Needs additional tests 2019-10-25 10:41:23 -07:00
Juanli Shen 0a736c0d37 Update envoy API to HEAD 2019-10-24 17:21:26 -07:00
Lidi Zheng 2fbd97217b Turn the single threaded runner on by default. 2019-10-24 15:10:28 -07:00
Richard Belleville 0ac082e1e7 Support both v4 and v6 in test 2019-10-24 13:26:23 -07:00
Yash Tibrewal 07ef24344c Regenerate projects 2019-10-24 11:54:20 -07:00
Lidi Zheng c66bdcdbe0 Unblock the compilation speed up 2019-10-23 19:09:41 -07:00
Lidi Zheng b3b2168b60 Make YAPF happy 2019-10-23 19:09:11 -07:00
Lidi Zheng 1ebaace7f1 Bring back the file that I accidentally rm -f 2019-10-23 19:02:26 -07:00
Lidi Zheng 70821ebe4a Supply the event loop to aio iomgr in test case level 2019-10-23 18:49:58 -07:00
Lidi Zheng dcf609966e Add comments about why runner failed 2019-10-23 18:28:46 -07:00
Lidi Zheng 0765cf940b Refactor the way AsyncIO is tested under run_tests.py 2019-10-23 15:44:54 -07:00
Lidi Zheng e2dcb2883d Make runner support single threaded mode 2019-10-23 15:24:30 -07:00
Richard Belleville 018580fb89
Merge pull request #20753 from gnossen/unary_stream
Add experimental option to run unary-stream RPCs on a single Python thread.
2019-10-23 15:19:53 -07:00
Lidi Zheng 58cdbe7a83 Add the server_test to tests.json 2019-10-23 15:15:41 -07:00
Lidi Zheng 98f33e8e17 Enable all AsyncIO tests for Bazel 2019-10-23 15:05:03 -07:00
Richard Belleville 0c6f8dbed3 Remove ChannelOptions from __init__.py 2019-10-23 14:07:47 -07:00
Richard Belleville 469637efdd Yapf 2019-10-23 13:08:44 -07:00
Richard Belleville d5d9bc0a0d Whitespace-sensitive languages are the worst 2019-10-23 12:45:13 -07:00
Richard Belleville da9f5f78fe Add ChannelOptions to experimental module 2019-10-23 12:42:34 -07:00
Richard Belleville 0bb38a88b0 Copyright 2019-10-23 12:14:19 -07:00
Richard Belleville 0dd70ff758 Add TODOs 2019-10-23 12:11:45 -07:00
Richard Belleville 3411202598 Yapf 2019-10-23 11:56:39 -07:00
Richard Belleville 36e8f9ff62 Don't load manual benchmark as test 2019-10-23 11:49:00 -07:00
Richard Belleville e8d8883485 Add copyright comments 2019-10-23 11:17:02 -07:00
Richard Belleville e557dd8bb7 Kokoro is v4-only 2019-10-23 10:54:23 -07:00
Richard Belleville 4ad50b8d2b Don't run benchmark in test runner 2019-10-23 10:34:59 -07:00
Richard Belleville f09f59f1fd Pylint 2019-10-22 23:10:51 -07:00
Richard Belleville 9ff053f140 Yapf 2019-10-22 22:59:34 -07:00
Richard Belleville 420c9bceff Clean up SingleThreadedUnaryStreamMultiCallable 2019-10-22 22:55:28 -07:00
Richard Belleville 12b7a8422a Remove wait on segregated_call_states. We are passing asan and msan without it 2019-10-22 22:48:27 -07:00
Richard Belleville 5b11fe8caa Add porcelain for backwards compatbility 2019-10-22 22:44:49 -07:00
Richard Belleville d9d3e387d0 Add docstrings 2019-10-22 22:19:30 -07:00
Richard Belleville 5782733da0 Dedupe between the two rendezvous 2019-10-22 22:07:01 -07:00
Richard Belleville d51fa803b9 Protect critical sections 2019-10-22 21:52:41 -07:00
Richard Belleville 4217a79f62 Add and fix _metadata_flags test 2019-10-22 21:30:07 -07:00
Richard Belleville dd7b04c088 Fix metadata tests 2019-10-22 18:24:22 -07:00
Richard Belleville 5f5e9e2695 Pass RPC test 2019-10-22 17:09:50 -07:00
Lidi Zheng 84fd0a1ad0
Merge branch 'master' into revert-20610-revert-20277-grpc-19871/unary_unary_client_aio-implement-timeout 2019-10-22 11:09:56 -07:00
Lidi Zheng 3c62c8a35e
Merge pull request #20598 from lidizheng/aio-server
[AIO] Minimal AsyncIO Server
2019-10-22 11:09:22 -07:00
Lidi Zheng a588b5ffb9 Remove the usage of f-string 2019-10-21 17:07:11 -07:00
Lidi Zheng f73c8d14e2 Make yapf happy 2019-10-21 16:56:29 -07:00
Lidi Zheng fbe1bc9e8f Suppress the ImportError of ipaddress for Python 2 2019-10-21 16:00:57 -07:00
Lidi Zheng 9c8657d6c0 Merge branch 'master' into revert-20610-revert-20277-grpc-19871/unary_unary_client_aio-implement-timeout 2019-10-21 15:40:46 -07:00
Lidi Zheng ea2e8bce0a Fix the typo 2019-10-21 14:57:22 -07:00
Lidi Zheng 088f033fb2
Merge pull request #20326 from Skyscanner/grpc-19975-switch-to-concrete-classes
Switch to concrete classes in experimental asyncio
2019-10-21 10:30:18 -07:00
Lidi Zheng 08bbbcd751 Remove `asyncio.sleep(0)` 2019-10-21 10:24:31 -07:00
Jan Tattermusch aba7f7bd2b
Merge pull request #20100 from jtattermusch/update_boringssl
Update boringssl and boringssl-with-bazel to latest master
2019-10-21 16:25:28 +02:00
Lidi Zheng 2ced359d78 Adopt reviewer's suggestions 2019-10-18 18:03:36 -07:00
Muxi Yan 64b7febefa Fix ObjC sike issue and update BoringSSL to master 2019-10-18 15:54:37 -07:00
Richard Belleville d946418cb7 Add proto 2019-10-17 20:08:02 -07:00
Lidi Zheng a535a6d69f Revert "Revert "Grpc 19871/unary unary client aio implement timeout"" 2019-10-17 16:57:57 -07:00
Lidi Zheng 49c7f1ddf6 Adopt reviewer's advices 2019-10-17 15:17:48 -07:00
Richard Belleville 8ba4105972 Add protobuf to benchmark 2019-10-17 13:15:47 -07:00
Richard Belleville 90cded9c44 WIP. MVP for single-threaded 2019-10-16 22:35:37 -07:00
Richard Belleville 2b4de59b32 Add benchmark 2019-10-16 16:20:49 -07:00
Mark D. Roth dd89123f0d
Merge pull request #20606 from markdroth/xds_client_bootstrap
Second attempt: xds client bootstrap file
2019-10-16 13:28:08 -07:00
Lidi Zheng bbc01a6aca
Merge pull request #20616 from lidizheng/wheel-3.8
Release 3.8 binary wheels
2019-10-16 12:51:09 -07:00
Lidi Zheng 3c7cd1543d Make YAPF happy 2019-10-15 18:09:31 -07:00
Lidi Zheng 25be7c93d0 Merge branch 'master' into aio-server 2019-10-15 17:43:51 -07:00
Lidi Zheng 995c4f4455 Try to pin the python_version to PY3 2019-10-15 17:27:35 -07:00
Lidi Zheng 175c8e44b9 Cosmetic changes to increase readability 2019-10-15 17:22:56 -07:00
Lidi Zheng 8ab1672c88 Release 3.8 wheels 2019-10-15 15:59:06 -07:00
Nicolas Noble d988d928e4
Revert "Grpc 19871/unary unary client aio implement timeout" 2019-10-15 14:15:20 -07:00
Mark D. Roth 9a276c07fa Revert "Merge pull request #20593 from grpc/revert-20380-xds_client_bootstrap"
This reverts commit 0bd5efa55f, reversing
changes made to f92c283a5d.
2019-10-15 07:33:53 -07:00
Lidi Zheng c6ae98d49a Minimal AsyncIO Server for gRPC
* Extends AsyncIO IO manager to support server-side operations;
* Adds more logic to AsyncSocket class;
* Implements an AsyncIO server that can serve unary-unary handlers;
* Adds a server test with grpc.aio.Channel;
* Support both Bazel / setup.py build.
2019-10-14 15:32:19 -07:00
Jan Tattermusch 13abbd9a75
Revert "xds client bootstrap file" 2019-10-14 16:51:32 +02:00
Mark D. Roth 36319502be
Merge pull request #20380 from markdroth/xds_client_bootstrap
xds client bootstrap file
2019-10-11 09:03:18 -07:00
Mariano Anaya fb3911f243 Implement timeout for the async unary_unary call
Allow passing the ``timeout`` parameter to the asynchronous version of
the ``unary_unary`` call, and use it accordingly.

Maintains the same interface as the synchronous version.

Other changes:

    * Remove default parameters from the internal API methods
    * Make keyword-only arguments in the external-facing public API

Create new exception: ``AioRpcError``.

Define the exception in Cython, exposing a similar interface that the
one returned by the synchronous API (``grpc.RpcError``).

Then mix the class with the ``grpc.RpcError``, dynamically: this can
only be done at run-time because it's not possible to use the Cython
class until all Cython code has been compiled, which happens after the
``grpc`` module has been loaded.

The new ``AioRpcError`` exception lives inside the ``experimental``
module.

Fixes https://github.com/grpc/grpc/issues/19871
2019-10-10 19:54:12 +02:00
Mark D. Roth 2afaec231d xds client bootstrap file 2019-10-09 14:06:48 -07:00
Zhanghui Mao b5cab86b57 fix syntax of language 2019-10-05 12:19:20 +08:00
Mark D. Roth 85a500c13a
Merge pull request #20368 from markdroth/xds_client
Refactor EDS and LRS code from xds LB policy into new XdsClient API.
2019-10-04 14:16:25 -07:00
Mark D. Roth b01072586d Refactor EDS and LRS code from xds LB policy into new XdsClient API. 2019-10-04 11:41:13 -07:00
tanjunchen 64cdea5a07 fix some spelling mistakes in document 2019-10-04 09:07:35 +08:00
Richard Belleville 1c16b8c470 Bow to the linter 2019-10-01 13:14:08 -07:00
Richard Belleville 92c61e131e Spruce up styling 2019-10-01 12:06:00 -07:00
Richard Belleville 07109f07e2 Fix grpc_testing context.abort 2019-10-01 11:23:20 -07:00
Jan Tattermusch 6c763452ab regenerate projects 2019-10-01 02:39:33 -04:00
Pau Freixes e2464b8eba Rename gevent_util file
Since functions implemented by `gevent_util.h` are used also by the
new experimental `Aio` module, the file holding these functions needs
to be renamed to something more meaningful.
2019-09-25 23:17:42 +02:00
Zhanghui Mao ebed4a6b9a fix language grammar errors 2019-09-24 19:15:30 +08:00
Zhanghui Mao 3b6a5a6a01 switch to concrete classes 2019-09-21 17:17:12 +08:00
Jan Tattermusch 4a539ffb7c regenerate 2019-09-20 08:59:00 +02:00
Robert Bradshaw 147d7c1ec5 Fix issue with exception being out of scope in Python 3. 2019-09-19 13:58:32 -07:00
Mark D. Roth d1bca6ff92
Merge pull request #20119 from markdroth/c++_mpscq
Convert mpscq API from C to C++.
2019-09-17 15:24:13 -07:00
Pau Freixes a44e6d76b7 [Aio] Unary unary client call barebones implementation
Implement the minimal stuff for making a unary call with the new
experimental gRPC Python implementation for Asyncio, called Aio.

What has been added:

- Minimal iomgr code for performing the required network and timer
calls.
- Minimal Cython code implementing the channel, call and the callback
context.
- Minimal Python code that mimics the synchronous implementation but
designed to be asynchronous.

Testing considerations:

Tests have to be executed using the `GRPC_ENABLE_FORK_SUPPORT=0`
environment variable for skipping the fork handles installed by
the core library. This is due to the usage of a syncrhonous server
used as a fixture executed in another process.

Co-authored-by: Manuel Miranda <manuel.miranda@skyscanner.net>
Co-authored-by: Mariano Anaya <mariano.anaya@skyscanner.net>
Co-authored-by: Zhanghui Mao <zhanghui.mao@skyscanner.net>
Co-authored-by: Lidi Zheng <lidiz@google.com>
2019-09-11 20:37:45 +02:00
Esun Kim cf444b9cab Regenerate projects 2019-09-10 14:08:50 -07:00
Esun Kim c965ca1494 Pull out configuration from ssl_utils 2019-09-09 11:18:17 -07:00
Richard Belleville 3d4f905775
Merge pull request #20141 from gnossen/python_strip_prefixes
Add strip_prefix to python protoc plugin and py_grpc_library
2019-09-06 11:55:58 -05:00
Mark D. Roth 51d18ecc63 Convert mpscq API from C to C++. 2019-09-05 10:32:36 -07:00
Richard Belleville d649880044 Add strip_prefix to python protoc plugin and py_grpc_library 2019-08-30 16:47:22 -07:00
Richard Belleville 1444cd1dd3 Revert "Revert "Merge pull request #20097 from gnossen/dual_version_python_tests""
This reverts commit 24c562dbaa.
2019-08-29 10:51:36 -07:00
Richard Belleville 24c562dbaa Revert "Merge pull request #20097 from gnossen/dual_version_python_tests"
This reverts commit c9c847f334, reversing
changes made to 07ba4de392.
2019-08-29 10:47:44 -07:00
Mark D. Roth fbd7ab53c7
Merge pull request #19036 from markdroth/lb_policy_per_rpc_backend_metric_api
Add API for accessing per-call backend metric data in LB policies.
2019-08-29 07:40:45 -07:00
Mark D. Roth 21c5424477 Add API for accessing per-call backend metric data in LB policies. 2019-08-28 12:48:06 -07:00
Richard Belleville 1b69538d58 Switch all tests to py2and3_test 2019-08-27 17:51:45 -07:00
Richard Belleville 426450cd82 Implement dual testing 2019-08-27 17:22:45 -07:00
Richard Belleville 4e317f0b34
Merge pull request #20027 from gnossen/py_proto_library_deps
Switch py_proto_library from using src to deps to conform with google3
2019-08-27 19:03:49 -05:00
Lidi Zheng 392669ad37
Merge pull request #20079 from lidizheng/stop
Stop the failing Python LocalCredentials test on Windows
2019-08-26 16:56:18 -07:00
Lidi Zheng a2990a053c Revert changes in src/python/grpcio_tests/commands.py 2019-08-26 15:57:02 -07:00
Lidi Zheng 630e6ab221 Use the correct machanism to ignore test in Windows 2019-08-26 15:55:42 -07:00
Lidi Zheng 8f403431a1 Try to disable it again 2019-08-26 13:57:20 -07:00
Lidi Zheng 750a8ab6ca Fix import 2019-08-26 12:05:21 -07:00
Lidi Zheng d9c0d498f2 Stop the failing tests 2019-08-26 11:33:44 -07:00
Neeraj Kashyap 5c173084f8 condition acquire and release with context manager
Was previously unfamiliar with the contex manager wrapper around
threading primitives.
2019-08-26 11:07:58 -07:00
Neeraj Kashyap 1ab9225dce Release the lock on the RPC object condition 2019-08-26 10:57:35 -07:00
Neeraj Kashyap b804ce974a Implemented _abort method on ServicerContext
This acquires a lock from the _condition member of the context's _rpc
and then aborts the _rpc directly
2019-08-26 08:43:46 -07:00
Lidi Zheng e25e7c921d
Merge pull request #19971 from lidizheng/local
Expose local credentials on Python layer
2019-08-23 10:05:42 -07:00
Richard Belleville 8ce740cfe0 Switch py_proto_library from using src to deps to conform with google3 2019-08-21 14:24:06 -07:00
Lidi Zheng f8624d356f
Merge pull request #20013 from lidizheng/vtable-heap
Make default vtable for pointer argumnet a constant
2019-08-20 16:28:01 -07:00
Lidi Zheng 25f21d4824 Make default vtable for pointer argumnet a constant 2019-08-20 15:42:27 -07:00
Lidi Zheng 2c9cff30a1 Fix typo in the ignore list... 2019-08-20 14:52:20 -07:00
Richard Belleville 662919cf90 Simplify with itertools 2019-08-20 14:49:57 -07:00
Richard Belleville d273fdf41d Remove line of dead code 2019-08-20 14:26:22 -07:00
Richard Belleville ee99f9aa4c Remove TODO 2019-08-20 14:25:14 -07:00
Richard Belleville 09a270d6ad Gracefully handle errors from callbacks.
In https://github.com/grpc/grpc/issues/19910, it was pointed out that
raising an exception from a Future callback would cause the channel spin
thread to terminate. If there are outstanding events on the channel,
this will cause calls to Channel.close() to block indefinitely.

This commit ensures that the channel spin thread does not die. Instead,
exceptions will be logged at ERROR level.
2019-08-20 14:17:38 -07:00
Lidi Zheng 853a6318b4 Correct the disable pattern 2019-08-20 08:43:32 -07:00
Richard Belleville e0d04c9a9e Yapf. 2019-08-19 18:09:19 -07:00
Lidi Zheng 5d7766153f Disable local tcp test for gevent 2019-08-19 17:37:55 -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 967f55efd6 Add explanatory comment. 2019-08-19 14:20:01 -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 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 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
Lidi Zheng c45fb12ffb Add experimental API note. 2019-08-16 17:33:19 -07:00
Lidi Zheng 227a7cb47b Adopt reviewer's suggestion 2019-08-16 15:43:06 -07:00
Lidi Zheng 5a4d46d19b Add wait_for_ready attempt to fix gevent issue 2019-08-16 15:16:29 -07:00
Juanli Shen a802b14be6 Add xds resolver 2019-08-16 15:09:32 -07:00
Lidi Zheng 64dd532732 Make _api_test.py happy 2019-08-16 14:55:48 -07:00
Lidi Zheng 40fe76ad30 Fix import 2019-08-16 14:17:05 -07:00
Lidi Zheng 0d203d39b8 Adopt reviewers' advice 2019-08-16 11:17:35 -07:00
Lidi Zheng f681fe89af Make yapf happy 2019-08-15 20:16:01 -07:00
Lidi Zheng 5db1ae34b4 Expose local credentials on Python layer 2019-08-15 20:13:39 -07:00
Esun Kim be4e684a82 Migrated tsi/alts from nanopb to upb 2019-08-08 16:39:05 -07:00
Juanli Shen fb21394c43
Merge pull request #18745 from AspirinSJL/xds_to_lb
Use EDS in xDS policy
2019-08-08 13:36:45 -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
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
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
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