Lidi Zheng
f17ec928df
Fix lack of empty line in the docstring
2020-02-14 11:01:48 -08:00
Lidi Zheng
4c59615f46
Format __init__.py
2020-02-14 11:01:48 -08:00
Lidi Zheng
11953d1315
Merge pull request #21988 from lidizheng/aio-fast-close-2
...
[Aio] Make client-side graceful shutdown faster
2020-02-14 10:36:49 -08:00
Lidi Zheng
7a50172cc8
Handle the intercepted call case
2020-02-13 16:00:54 -08:00
Lidi Zheng
e0f8fe3254
Ensure channel isolation is maintained while graceful close
2020-02-13 15:05:50 -08:00
Jan Tattermusch
a28d67f0bf
Merge pull request #21891 from jtattermusch/remove_useless_release_links
...
get rid of the https://grpc.io/release plague
2020-02-13 17:43:41 +01:00
Lidi Zheng
5a29f33a25
Optimize the logic & add comments
2020-02-12 14:32:17 -08:00
Lidi Zheng
2789f83f85
Make pytype happy
2020-02-12 10:46:56 -08:00
Richard Belleville
d46cd97bc6
Merge remote-tracking branch 'origin/master' into simple_stubs
2020-02-11 17:53:56 -08:00
Richard Belleville
6eddf397e9
Reviewer advice
2020-02-11 17:44:56 -08:00
Lidi Zheng
3061ee37c0
Remove unused import
2020-02-11 16:46:48 -08:00
Lidi Zheng
fbd213d04b
Make client-side graceful shutdown faster
2020-02-11 16:46:23 -08:00
Esun Kim
0b26a2ff56
Added abseil-based sync
2020-02-11 14:44:25 -08:00
Richard Belleville
df247fb33a
Experimental API decorator
2020-02-10 16:47:43 -08:00
Richard Belleville
7c581ab099
Revert "Stop emitting experimental warnings"
...
This reverts commit 3daa32de4e .
2020-02-10 14:57:30 -08:00
Richard Belleville
ff3088979a
Why you incomplete, Python 3.6?
2020-02-10 14:53:33 -08:00
Richard Belleville
67a492c946
Yapf
2020-02-10 13:47:25 -08:00
Richard Belleville
3daa32de4e
Stop emitting experimental warnings
2020-02-10 13:39:43 -08:00
Richard Belleville
e7e41e7610
Change up ordering
2020-02-10 13:37:43 -08:00
Richard Belleville
6e7f9f2ebe
Add typing
2020-02-10 13:34:10 -08:00
Richard Belleville
70d3765712
Use debug level logging
2020-02-10 13:19:08 -08:00
Richard Belleville
09774aebfb
Put libraries in order of reference
2020-02-10 13:18:18 -08:00
Richard Belleville
270880f440
Yapf
2020-02-10 11:56:38 -08:00
Richard Belleville
78c9ce56e5
Remove unguarded import of simple_stubs
2020-02-10 11:36:33 -08:00
Mark D. Roth
bc9cc67fa6
Merge pull request #21857 from markdroth/json_old_api_remove
...
Remove old JSON API
2020-02-10 07:30:52 -08:00
Richard Belleville
e5b287ead8
Yapf. Pylint
2020-02-07 16:51:25 -08:00
Richard Belleville
ac864c7502
Make APIs experimental
2020-02-07 16:42:38 -08:00
Richard Belleville
84c8dc739e
Add insecure_channel_credentials function
2020-02-07 15:59:24 -08:00
Lidi Zheng
8701b18efb
Use str instead of Text
2020-02-07 10:40:26 -08:00
Richard Belleville
aadcded305
Add docstrings
2020-02-06 16:56:01 -08:00
Richard Belleville
1abe2f0ac2
Add stream_stream
2020-02-06 16:37:39 -08:00
Richard Belleville
38bef98463
Add stream-unary
2020-02-06 16:27:21 -08:00
Richard Belleville
b5f06c216e
Implement unary_stream
2020-02-06 16:10:25 -08:00
Richard Belleville
4ac50ceed6
Add maximum-based channel eviction
2020-02-06 15:59:01 -08:00
Lidi Zheng
15ff162fe3
Improve the documentation about newly added exception classes
2020-02-06 14:21:43 -08:00
Lidi Zheng
22cd31b0ec
Remove TODO
2020-02-06 14:21:42 -08:00
Lidi Zheng
ecf44b094b
Prohibit mixing two styles of API on client side
2020-02-06 14:21:42 -08:00
Lidi Zheng
072c150e77
Merge pull request #21885 from lidizheng/aio-channel-ready
...
[Aio] Add channel_ready helper function
2020-02-06 12:35:37 -08:00
Lidi Zheng
231d4b22a1
Merge pull request #21919 from Skyscanner/set-error-description
...
[Aio] Set debug_error_string to AioRpcError
2020-02-06 12:01:01 -08:00
Lidi Zheng
be85024b34
Merge pull request #21809 from lidizheng/aio-compression
...
[Aio] Support compression for both client and server
2020-02-06 10:04:42 -08:00
Mariano Anaya
1df63bf35b
Get the debug_error_string in a simpler fashion
...
* Use the public method in ``AioRpcStatus``
* Keep everything encapsulated inside the function that creates the
error.
2020-02-06 09:19:16 +01:00
Lidi Zheng
473a75b47e
Reduce side effect of a "create" method
2020-02-05 15:02:21 -08:00
Mariano Anaya
583712704a
[Aio] Set debug_error_string to AioRpcError
...
When handling errors in aio, also set the ``debug_error_string``, to get
more information (when available), about the exception, and help debug.
2020-02-05 16:49:08 +01:00
Richard Belleville
741b407ac4
Add simple eviction mechanism
2020-02-04 18:34:55 -08:00
Mark D. Roth
01e87e2d93
Remove old JSON API
2020-02-04 15:21:27 -08:00
Lidi Zheng
c564d28f9a
Merge pull request #21903 from lidizheng/aio-fix-close
...
[Aio] Attempt to fix recent AsyncIO windows flake
2020-02-04 14:57:47 -08:00
Yash Tibrewal
c3bcb6c7ce
Merge pull request #21846 from yashykt/workserializer
...
Replace LogicalThread with WorkSerializer
2020-02-04 14:23:28 -08:00
Richard Belleville
5a8a6e3ad3
Add thread-safe channel cache. Test that it actually caches
2020-02-04 12:34:34 -08:00
Lidi Zheng
b378b66f8c
[Aio] Attempt to fix recent AsyncIO windows flake
2020-02-04 11:03:03 -08:00
Lidi Zheng
daeaf8eff4
Promote the channel_ready & simplify test logic
2020-02-04 10:26:57 -08:00
Lidi Zheng
0919f939b4
Improve compression docstring & simplify metadata default value
2020-02-04 10:10:46 -08:00
Jan Tattermusch
21512217f2
get rid of the https://grpc.io/release plague
2020-02-04 15:01:03 +01:00
Richard Belleville
0c4af58acc
Add test and fake LRU cache interface
2020-02-03 18:30:00 -08:00
Lidi Zheng
6a330edf74
Add channel_ready helper function
2020-02-03 16:44:19 -08:00
Lidi Zheng
d190a0e08c
Make YAPF happy
2020-02-03 15:59:51 -08:00
Lidi Zheng
cd76b79e7f
Support compression for both client and server
2020-02-03 15:57:22 -08:00
Lidi Zheng
ffb41a2368
Merge pull request #21819 from Skyscanner/close_ongoing_calls
...
[Aio] Close ongoing calls when the channel is closed
2020-02-03 14:55:16 -08:00
Pau Freixes
84d2a70741
Merge branch 'master' into close_ongoing_calls
2020-02-03 17:13:01 +01:00
Pau Freixes
2d89ef0acd
Fix pylint issue
2020-02-03 17:07:20 +01:00
Pau Freixes
3a8be1784c
make YAPF happy
2020-02-03 17:06:05 +01:00
Pau Freixes
c94364f311
Use a weakset for storing ongoing calls
2020-02-03 17:04:54 +01:00
Pau Freixes
2cef2fce39
Use set as data structure for trace ongoing calls
2020-02-03 15:52:26 +01:00
Pau Freixes
d0b218ae18
Once cancelled just destroy the channel
2020-02-03 15:29:41 +01:00
Lidi Zheng
47246c86bb
Fix the server credentials & improve socket implementation
2020-01-31 15:17:52 -08:00
Lidi Zheng
343e77ab9e
Merge pull request #21714 from lidizheng/aio-auto
...
[Aio] Introduce gRPC Async into our interop combo
2020-01-31 15:15:51 -08:00
Lidi Zheng
fb849fbda7
Merge pull request #21863 from lidizheng/flake-channel-argument
...
[Aio] Deflake the channel_argument_test & improve socket error handling
2020-01-31 14:16:04 -08:00
Lidi Zheng
788d14cb1f
Enable more local interop test cases and other fixes:
...
* Support echo status and metadata for interop test server
* Add set_code and set_details for ServicerContext
* Add an is_ok() method on cygrpc._AioCall object
* Sanitize user supplied status code
* Prettify server-side unexpected exception log
* Reduce log spams from unary calls
2020-01-31 13:19:09 -08:00
Lidi Zheng
9b26b410fb
Support echo status for interop test server
2020-01-31 13:19:09 -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
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
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
Mark D. Roth
380eb750ec
New JSON API
2020-01-29 14:52:19 -08: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
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
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
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
435cf89108
Fix a bug that prevents metadata modification in interceptors
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
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
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
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
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
5f0a70973e
Implement connectivity state related APIs
2020-01-14 10:55:26 -08: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
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
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
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
2a342b22a7
Fixes bug with deadline
2020-01-09 00:03:42 +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
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
4955cda816
Merge pull request #21232 from lidizheng/aio-streaming
...
[Aio] Streaming API - Server side streaming
2019-12-10 17:45:51 -08:00
Richard Belleville
a0485f78aa
Drop Python 2 support
2019-12-10 17:31:10 -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
Richard Belleville
5c76f50e2f
Format Python code
2019-12-10 11:41:59 -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
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
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
Richard Belleville
467bc90a6f
Simplify naming
2019-12-03 16:29:27 -08:00
Richard Belleville
b9b126a237
Add new functions to grpc api surface
2019-12-03 16:14:40 -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
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
bb38187221
Add a TODO to remove a.out
2019-11-26 11:18:00 -08:00
Mark D. Roth
4e393dc035
Convert grpc_proxy_mapper to C++.
2019-11-22 12:32:47 -08:00
Yash Tibrewal
3b1d176e9d
LogicalThread
2019-11-22 10:38:35 -08:00
Mark D. Roth
0e487a7405
Convert grpc_connector to C++.
2019-11-14 09:45:17 -08: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
Lidi Zheng
918492d3ca
Make buildifier happy
2019-11-06 11:10:17 -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
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
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
yihuaz
5570dec9a5
Merge pull request #20916 from yihuazhang/python
...
Add more documentation on local credentials
2019-11-04 13:03:24 -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
acc6053716
Fix interceptors for unary-unary case
2019-11-01 15:28:48 -07:00
Lidi Zheng
2817afd4e9
Make sure Core aware of gevent Cython objects
2019-10-31 16:41:14 -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
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
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
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
Yash Tibrewal
07ef24344c
Regenerate projects
2019-10-24 11:54:20 -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
Richard Belleville
0c6f8dbed3
Remove ChannelOptions from __init__.py
2019-10-23 14:07:47 -07:00
Richard Belleville
da9f5f78fe
Add ChannelOptions to experimental module
2019-10-23 12:42:34 -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
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
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
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
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
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
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
175c8e44b9
Cosmetic changes to increase readability
2019-10-15 17:22:56 -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
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
Mark D. Roth
51d18ecc63
Convert mpscq API from C to C++.
2019-09-05 10:32:36 -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
Lidi Zheng
e25e7c921d
Merge pull request #19971 from lidizheng/local
...
Expose local credentials on Python layer
2019-08-23 10:05:42 -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
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
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
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
Juanli Shen
a802b14be6
Add xds resolver
2019-08-16 15:09:32 -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
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
Lily Li
195aae6cb5
add compatibility check badge to README
2019-06-06 16:34:48 -07:00
Lidi Zheng
c0dd83e9a0
Add documentation about CallCredentials restriction
2019-06-04 11:12:23 -07:00
Lidi Zheng
f6f7ef60c6
Merge pull request #19174 from lidizheng/expose-exception
...
Surface exception from metadata credentails plugin methods
2019-05-29 15:39:06 -07:00
Lidi Zheng
d835d1bb1f
Surface exception from metadata credentails plugin methods
2019-05-29 10:41:38 -07:00
Richard Belleville
0ebeb40718
Merge pull request #19084 from gnossen/python2-deprecation-notice
...
Add python deprecation notices.
2019-05-28 13:06:52 -07:00
Srini Polavarapu
ec640a53c6
Merge pull request #19105 from gnossen/twine_check_artifacts
...
Produce Python Wheels with a Valid long_description field
2019-05-28 10:11:34 -07:00
Esun Kim
90fbdc92f5
Roll-forward "Config migration"
...
This reverts commit 236ae12bb1 .
2019-05-20 15:47:24 -07:00
Richard Belleville
cb9e2188ab
Add python deprecation notices.
2019-05-20 13:05:37 -07:00
Lidi Zheng
ebfed6ad7b
Merge pull request #19030 from mehrdada/unsubscribe_all
...
Unsubscribe all connectivity callbacks on Channel.close
2019-05-17 10:04:57 -07:00
murgatroid99
70e850a023
Merge branch 'master' into cares_windows_platform_detection
2019-05-14 17:41:25 -07:00
Mehrdad Afshari
c7343ea03d
Unsubscribe all connectivity callbacks on Channel.close
2019-05-14 16:30:57 -07:00
murgatroid99
7743130f64
Consolidate conditional localhost resolution into existing file
2019-05-14 15:26:56 -07:00
Alexander Polcyn
236ae12bb1
Revert "Config migration"
...
This reverts commit 87905ae5ea .
2019-05-14 14:36:33 -07:00
murgatroid99
90e52f00a1
Moved code back into one file with a #ifdef
2019-05-10 14:47:26 -07:00
murgatroid99
4b4006f833
libuv cares: scope manual localhost resolution to only Windows
2019-05-10 11:15:12 -07:00
Srini Polavarapu
6bc2ff1b5f
Regenerate projects
2019-05-10 10:38:59 -07:00
Esun Kim
87905ae5ea
Config migration
2019-05-09 12:29:38 -07:00
Michael Lumish
95a4a0ef76
Merge pull request #18809 from murgatroid99/cares_libuv
...
Add cares glue for libuv event loop
2019-05-02 13:43:52 -07:00
Esun Kim
1518ecbd76
Added new configuration system to core/grp.
...
More generic configuration system is introduced in order to i) unify the
way how modules access the configurations instead of using low-level
get/setenv functions and ii) enable the customization for where configuration
is stored. This could be extended to support flag, file, etc.
Default configuration system uses environment variables as before so
basically this is expected to work just as it did. This behavior can
change by redefining GPR_GLOBAL_CONFIG_DEFINE_*type* macros.
* Migrated configuration
GRPC_CLIENT_CHANNEL_BACKUP_POLL_INTERVAL_MS
GRPC_EXPERIMENTAL_DISABLE_FLOW_CONTROL
GRPC_ABORT_ON_LEAKS
GRPC_NOT_USE_SYSTEM_SSL_ROOTS
2019-04-30 15:49:24 -07:00
Muxi Yan
efbeb750ec
Merge pull request #18814 from muxi/fix-cfstream-build-yaml
...
Build system fix for default CFStream
2019-04-26 08:14:30 -07:00
Arjun Roy
8ce42f67b2
Shrink arena size by 40 bytes and add additional
...
alignment options (for cache-alignment).
We shrink by:
1) Removing an unnecessary zone pointer.
2) Replacing gpr_mu (40 bytes when using pthread_mutex_t) with
std::atomic_flag.
We also header-inline the fastpath alloc (ie. when not doing a zone
alloc) and move the malloc() for a zone alloc outside of the mutex
critical zone, which allows us to replace the mutex with a spinlock.
We also cache-align created arenas.
2019-04-24 16:39:03 -07:00
murgatroid99
dc1bcf8762
Consolidate helper function from windows and libuv
2019-04-22 17:31:55 -07:00
Muxi Yan
9e593f721f
build system fix for default CFStream
2019-04-19 14:14:48 -07:00
murgatroid99
41871bf7de
Add cares glue for libuv event loop
2019-04-18 17:08:51 -07:00
Lidi Zheng
09d18aa659
Propagate KeyboardInterrupt above completion queue
2019-04-16 15:30:48 -07:00
Mark D. Roth
62d9be1533
Merge pull request #18631 from markdroth/pare_down_channel_args_api
...
Move functions for individual args out of channel_args.{h,cc}.
2019-04-16 07:11:33 -07:00
Richard Belleville
f900eec41d
Revert "Merge pull request #18727 from grpc/revert_compression"
...
This reverts commit 8054a731d1 , reversing
changes made to c3d3cf8053 .
2019-04-11 13:04:54 -07:00
Richard Belleville
167540efd4
Revert "Merge pull request #18564 from grpc/compression"
...
This reverts commit 9dfeb14be0 , reversing
changes made to 7009f2df58 .
2019-04-11 10:10:29 -07:00
Richard Belleville
5afd77398e
Implement compression API within gRPC Python.
2019-04-09 15:14:03 -07:00
Mark D. Roth
eccfecd6a6
Move functions for individual args out of channel_args.{h,cc}.
2019-04-03 13:15:40 -07:00
Lidi Zheng
0231bf3b01
Regenerate projects
2019-03-29 16:24:50 -07:00
Mark D. Roth
934e31d7d1
Merge pull request #18357 from markdroth/address_list_not_in_channel_args
...
Restructure how addresses and service config are passed from resolver to LB policy
2019-03-27 11:40:44 -07:00
Lidi Zheng
c9b4d8347b
Merge pull request #18522 from lidizheng/fix-cython-int
...
Attempt to not depend on stdint.h
2019-03-26 16:24:25 -07:00
Lidi Zheng
04697287b7
Attempt to not depend on stdint.h
2019-03-26 13:48:39 -07:00
Fabian Holler
8c49802f75
add strsplit.c, strsplit.h files to build and test files
...
The files are new in the updated cares release.
2019-03-26 13:13:49 -07:00
Mark D. Roth
206592ce9c
Restructure how addresses and service config are passed from resolver to LB policy.
2019-03-26 11:57:21 -07:00
Jared Hance
3de283c665
Make gil handling in completion queue more robust
...
It turns out that the code generation for "with gil" is a bit more
complicated than the logic for re-obtaining the gil at the end of
"with nogil." This is because PyGILState_Ensure seems to, during
interpreter finalization, think it needs to call a new thread
(resulting in a call to cpython new_threadstate) which then segfaults.
Because "with nogil" knows that, prior to executing, it already had
the gil, it doesn't need to set up as much state, and thus the segfault
does not occur.
To avoid this, we just only use "with nogil" within the infinite loop,
and then end the "nogil" block before we check signals. This avoids
needing any "with gil" call at all.
I was able to reliably reproduce the segfault within a few minutes
before the patch by running a binary in a loop (with py3) while
maxing out my machines cpu usage. After the patch, I have not
been able to reproduce the segfault after two hours.
Note that this race can only occur when the user does not properly
clean up all their channels, and is relying on garbage collection to
do so (which isn't guaranteed). However, we want to avoid a segfault
on failure to close because this isn't a good user error and makes it
hard to debug.
2019-03-20 12:01:11 -07:00
Lidi Zheng
0c70b0f008
Merge pull request #18414 from evanj/utf8-encodable
...
python docs: details are UTF-8 encodable, not just ASCII.
2019-03-19 12:59:22 -07:00
Evan Jones
86991f633d
python docs: details are UTF-8 encodable, not just ASCII.
...
Context detail messages are Unicode strings in both the implementation and
specification. Fix the documentation to make this clearer. The
specification for the Status-Message response field says "Status-Message is
[...] a Unicode string [...] encoded as UTF-8" [1]. The implementation
seems to call _common.encode(), so anything that is UTF-8 encodable works.
For example:
context.set_code(grpc.StatusCode.ABORTED)
context.set_details('emoji error: \U0001F600')
Correctly returns a smiley face emoji to the client.
2019-03-18 10:59:18 -04:00
Lidi Zheng
c3ecc61867
Use C-Core API to perform time conversion
2019-03-15 11:48:10 -07:00
Lidi Zheng
585582c4a7
Merge pull request #18383 from lidizheng/fix-ctypedef
...
Use correct C integer types in Cython
2019-03-15 11:31:06 -07:00
Lidi Zheng
ec78d0f569
Use correct C integer types in Cython
2019-03-14 19:51:41 -07:00
Yihua Zhang
b017c801b6
Add SPIFFE security stack to gRPC core
2019-03-14 15:24:48 -07:00
Richard Belleville
749c52de56
Refcount vtables
2019-03-08 15:31:37 -08:00
Yash Tibrewal
abcd5861eb
Nuking the poll-cv polling engine
2019-03-07 14:49:24 -08:00
Lidi Zheng
c73c724778
Merge pull request #18277 from lidizheng/nogil-unref
...
Remove GIL for grpc_call_unref
2019-03-06 13:32:22 -08:00
Lidi Zheng
8326ac64e4
Remove GIL for grpc_call_unref
2019-03-06 09:57:30 -08:00