Commit Graph

2594 Commits

Author SHA1 Message Date
Richard Belleville 3c3eb36b36 Yapf 2019-02-26 17:00:23 -08:00
Richard Belleville 795efaa108 Appease the pylint gods 2019-02-26 16:35:19 -08:00
Richard Belleville 8665767aa5 Fix bad merge 2019-02-26 13:12:53 -08:00
Richard Belleville 2286fcd63e Merge branch 'master' into enable-deadline-propagation 2019-02-26 12:35:38 -08:00
Richard Belleville 969f698cf2 Enable deadline propagation 2019-02-26 12:33:53 -08:00
Nguyen Quang Huy c9acd8380f Fix some typos
Correct some words spelling for reading more easily.
2019-02-26 15:46:13 +07:00
Eric Gribkoff 1c2303c635 use isinstance for internal api to not catch mocks 2019-02-25 21:44:26 -08:00
Lidi Zheng 07b2b54f07
Merge pull request #18116 from lifanov/cstd
generalize macOS workaround for -std=c++11 passed in C mode
2019-02-25 11:09:19 -08:00
yang-g 456f748b2f Revert "Merge pull request #18146 from grpc/revert-17308-shutdown"
This reverts commit 9079e98dfc, reversing
changes made to 76a38bfcc2.
2019-02-25 10:11:06 -08:00
Yang Gao 4bc2ca4de6
Revert "Move grpc_shutdown internals to a detached thread" 2019-02-22 16:34:24 -08:00
Nikolai Lifanov 580b720a39 address comments by ericgribkoff@
o re-add USE_PREBUILT_GRPC_CORE option that was erroneously removed
o fix typo in comment
2019-02-22 15:55:59 -08:00
Eric Gribkoff d6e8c4fdb1
Merge pull request #18129 from ericgribkoff/abort_test_test
Disable test_abort_does_not_leak_local_vars
2019-02-22 14:04:26 -08:00
Lidi Zheng 75df1eccad
Merge pull request #17881 from lidizheng/bzl-py3-fix
[Roll Forward] Enable Python 3 for Bazel to Run Tests
2019-02-22 11:42:42 -08:00
Nikolai Lifanov a916a53347 use str instead of Text to appease Python 2.7
The Python 2.7 Linux test runner doesn't have typing module available.
2019-02-22 11:32:26 -08:00
Mark D. Roth 5f00cfd3bd
Merge pull request #18096 from markdroth/lb_policy_api
Second attempt: LB policy picker API
2019-02-22 10:10:43 -08:00
Nikolai Lifanov 9eb1171dfb be compatible with Python 2 and Python 3
In Python 3, cc_err is going to be bytes().
2019-02-21 17:54:27 -08:00
Mehrdad Afshari 0ac7203777 Removed unused ChannelCredentials.c_credentials 2019-02-21 17:21:35 -08:00
Nikolai Lifanov 4fdfdd5d2c Merge branch 'master' into cstd 2019-02-21 16:18:52 -08:00
Nikolai Lifanov ad093660ff format with yapf
This was already formatted with yapf, but perhaps I didn't do this
correctly. I copied the diff directly from kokoro build log this
time.
2019-02-21 16:15:33 -08:00
Nikolai Lifanov c1451e83d5 generalize macOS workaround for -std=c++11 passed in C mode
GCC allows this, but notably clang does not. Other systems,
like FreeBSD and some Linux distros ship with clang as default
compiler. While here, switch the approach to filtering out std
flag since the make workaround relies on GNU make syntax and
'make' binary could be bmake and/or gmake could be absent.

The idea to filter the flags was taken from an answer to this
Stack Overflow question:
https://stackoverflow.com/questions/15527611/how-do-i-specify-different-compiler-flags-in-distutils-for-just-one-python-c-ext
2019-02-21 15:49:04 -08:00
Lidi Zheng 9a548969ed
Merge branch 'master' into bzl-py3-fix 2019-02-21 14:14:23 -08:00
Eric Gribkoff 8ba4d3a801 Disable test_abort_does_not_leak_local_vars
This test relies on gc timing and has been flaky
(https://github.com/grpc/grpc/issues/17927).
2019-02-21 14:02:06 -08:00
Eric Gribkoff deb1081536 Disable flaky health service test 2019-02-21 12:09:36 -08:00
Eric Gribkoff af3d32214c increase timeout 2019-02-20 19:44:13 -08:00
Eric Gribkoff 93ef0db86b use else in right spot 2019-02-20 17:11:42 -08:00
Eric Gribkoff ab5b28538f use else: 2019-02-20 16:20:32 -08:00
Eric Gribkoff fbc4ea7d8e mark as experimental 2019-02-20 16:00:11 -08:00
Eric Gribkoff a2495502df add enter_graceful_shutdown() to health service 2019-02-20 15:55:19 -08:00
Yang Gao b03e014ad8
Merge pull request #17308 from yang-g/shutdown
Move grpc_shutdown internals to a detached thread
2019-02-20 15:37:18 -08:00
Lidi Zheng cb3966b881 Use `tuple` instead of `list`/`map` combination 2019-02-20 14:07:34 -08:00
Lidi Zheng 61bea3891b Another attempt to fix this problem cleanly 2019-02-20 14:07:34 -08:00
Lidi Zheng e9c67f23f3 Add a new environment variable GRPC_BAZEL_BUILD 2019-02-20 14:07:34 -08:00
Lidi Zheng 48ccc2477c Prevent the Bazel hack from affecting environment other than Bazel 2019-02-20 14:07:34 -08:00
Lidi Zheng d209deb14b Revert "Revert "Merge pull request #17644 from lidizheng/bzl-py3""
This reverts commit 7da0aacef2.
2019-02-20 14:07:34 -08:00
Eric Gribkoff ae44187910 Merge branch 'master' into non_blocking_stream 2019-02-20 11:22:25 -08:00
Eric Gribkoff bf7107b9dc comments 2019-02-20 11:00:04 -08:00
Richard Belleville f6cba4b2fb
Merge pull request #18108 from grpc/enable-load-reporting
Enable Load Reporting
2019-02-20 10:58:55 -08:00
Eric Gribkoff 2ba9a5aaa8 bazel dep 2019-02-20 10:33:02 -08:00
Richard Belleville 4f299d84ed Add private _finalize_state method to ServicerContext 2019-02-20 09:44:41 -08:00
Kim Bao Long 0203bf74f5 Remove the redundant words in comments
Although it is spelling mistakes, it might make an affects while reading docs.

Co-Authored-By: Nguyen Phuong An <AnNP@vn.fujitsu.com>
Signed-off-by: Kim Bao Long <longkb@vn.fujitsu.com>
2019-02-20 16:21:59 +07:00
yang-g fe3555f0fd Merge with head and resolve conflict 2019-02-19 20:46:51 -08:00
Eric Gribkoff da1f8d7c66 rpc test fix 2019-02-19 15:46:49 -08:00
Eric Gribkoff 003212648f fixup 2019-02-19 15:08:42 -08:00
Eric Gribkoff 77f325a9af bazel target 2019-02-19 14:54:02 -08:00
Eric Gribkoff a5c96cf765 fix test 2019-02-19 14:38:11 -08:00
Eric Gribkoff 0346ec2f45 stream_observer->on_next_callback 2019-02-19 14:18:00 -08:00
Eric Gribkoff 830d7d1e61 order 2019-02-19 14:02:29 -08:00
Eric Gribkoff 00f85c28c9 update tests.json 2019-02-19 13:46:52 -08:00
Eric Gribkoff 9345eac211 non-blocking server streaming for health service 2019-02-19 13:24:31 -08:00
Mark D. Roth aa149fedbb Revert "Merge pull request #18093 from grpc/revert-17770-lb_policy_picker_api"
This reverts commit f327b83706, reversing
changes made to b3b5d63423.
2019-02-19 13:19:24 -08:00
hcaseyal 275296c594
Revert "LB policy picker API" 2019-02-19 11:05:52 -08:00
yang-g 0df63d3c98 Merge branch 'master' into shutdown 2019-02-15 21:51:03 -08:00
Eric Gribkoff b7947776f8
Merge pull request #16513 from ericgribkoff/python_unit_fork_tests
Add fork tests as Python unit tests
2019-02-15 18:31:45 -08:00
Eric Gribkoff ff0d2195cf address comments 2019-02-15 17:00:21 -08:00
yang-g 3c61849461 python changes 2019-02-15 15:48:52 -08:00
Eric Gribkoff 2ea6d3ef0b Add fork tests as Python unit tests 2019-02-15 09:50:46 -08:00
Srini Polavarapu f7f6861720
Merge pull request #18033 from srini100/master
Bump master to v1.20.x and pick "godric" for that release
2019-02-13 12:17:12 -08:00
Mark D. Roth bab8123763 LB policy picker API 2019-02-13 08:30:04 -08:00
Srini Polavarapu b0efc103e3 Regenerate projects 2019-02-12 21:07:42 -08:00
Arjun Roy 195a30bb8b Grpc: Change grpc_handshake and grpc_handshake_mgr to use CPP implementations.
grpc_handshake is renamed to GrpcHandshake, using C++ class definitions
instead of C-style vtable classes. Update callers to use new interfaces.
We use RefCountedPtr to simplify reference tracking.
2019-02-11 11:35:08 -08:00
Eric Gribkoff 5a20b60cda fix flake in test_abort_does_not_leak_local_vars 2019-02-05 09:21:02 -08:00
Eric Gribkoff 28252eb0dd force gc in test 2019-02-01 15:32:34 -08:00
Eric Gribkoff c5255e9a5e python: do not store raised exception in _Context.abort()
Python 3 exceptions include a `__traceback__` attribute that includes
refs to all local variables. Saving the exception results in leaking
references to the, among other things, the Cython grpc_call wrapper and
prevents garbage collection and release of core resources, even after
the server is shutdown.

See
https://www.python.org/dev/peps/pep-3134/#open-issue-garbage-collection
2019-02-01 09:32:39 -08:00
Eric Gribkoff 7da0aacef2 Revert "Merge pull request #17644 from lidizheng/bzl-py3"
This reverts commit a25828ad78, reversing
changes made to 5176fd80fc.
2019-01-29 13:50:16 -08:00
yihuaz 6d3580421d
Merge pull request #17549 from yihuazhang/SPIFFE-API-CHANGE
Add a new TLS credential surface API
2019-01-29 12:56:34 -08:00
Vijay Pai 8fb2f4abea
Fix a common typo 2019-01-29 10:04:43 -08:00
Yihua Zhang a3d997cbdc Add a TLS credential surface API (experimental) 2019-01-29 10:04:28 -08:00
Lidi Zheng 5198ccd89c
Revert "Add basic benchmark test for Python" 2019-01-29 00:40:01 -08:00
Lidi Zheng a25828ad78
Merge pull request #17644 from lidizheng/bzl-py3
[gRPC] Enable Python 3 for Bazel to Run Tests
2019-01-28 16:23:33 -08:00
Lidi Zheng fcbb126baf Point the hack of proto message comparison to new issue 2019-01-28 14:56:52 -08:00
Lidi Zheng ec7d66940b
Merge pull request #17839 from lidizheng/issue-17831
Fix for macOS build
2019-01-28 13:53:16 -08:00
Lidi Zheng 91fde06b12 Remove the dependency of 'six' 2019-01-28 12:12:06 -08:00
Lidi Zheng 1a688982a4 Cast the str type if it is unicode 2019-01-28 11:33:19 -08:00
Lidi Zheng 16b8279ebe
Merge pull request #17793 from lidizheng/py-bm
Add basic benchmark test for Python
2019-01-28 11:00:37 -08:00
Lidi Zheng 7e90dad675 Adopt reviewer's advices 2019-01-28 10:55:19 -08:00
Lidi Zheng 8a7a75e2c8
Merge pull request #17811 from lidizheng/enable-channelz-test
Revert "Remove the fake package dependency && temporarily skip the Channelz tests"
2019-01-25 16:06:03 -08:00
Lidi Zheng f817d49e47 Update the README.md 2019-01-25 14:03:37 -08:00
Eric Gribkoff 196889cdad
Merge pull request #17724 from ericgribkoff/rename_context_hooks
rename census context hooks
2019-01-24 13:45:08 -08:00
Lidi Zheng 141e42f9b9 Revert "Remove the fake package dependency && temporarily skip the Channelz tests"
This reverts commit 08a90f03d4.
2019-01-24 13:45:07 -08:00
Richard Belleville dbad0522c3 Revert "Merge pull request #17752 from grpc/license-symlinks"
This reverts commit 3f8e15e2a4, reversing
changes made to a8662121c7.
2019-01-24 10:10:22 -08:00
Lidi Zheng b60c5cdc82 Adopte reviewer's suggestion 2019-01-23 12:27:43 -08:00
Lidi Zheng 95d4120f46 Add copyright to BUILD file 2019-01-22 18:34:17 -08:00
Lidi Zheng 4f451c78a4 Add basic benchmark test for Python 2019-01-22 16:50:47 -08:00
Richard Belleville 3f8e15e2a4
Merge pull request #17752 from grpc/license-symlinks
Stop copying LICENSE files
2019-01-22 10:23:07 -08:00
Lidi Zheng 0aa05958c2
Merge pull request #17543 from lidizheng/remove-foundation-dep
Remove dependency of grpc.framework.foundation.callable_util
2019-01-18 11:19:12 -08:00
Richard Belleville 8609f42e15 Stop copying LICENSE files 2019-01-17 15:16:37 -08:00
Lidi Zheng 17fa4b0caf Use monkey patch function to solve namespace package issue 2019-01-16 11:22:57 -08:00
Juanli Shen bbe2587c39 Enable per-channel subchannel pool 2019-01-15 14:15:18 -08:00
Eric Gribkoff 30a95d354c rename census context hooks 2019-01-15 13:04:34 -08:00
Yang Gao 75b8b1e2c6
Merge pull request #17697 from rmstar/remote_network_status_test
Remove network_status_tracker
2019-01-14 10:20:16 -08:00
Lidi Zheng 222db62721 Revert the compare of protobuf message to comparing encoded result 2019-01-11 17:03:51 -08:00
Eric Gribkoff 4d391b64e1 avoid AttributeError when object init fails 2019-01-11 13:35:02 -08:00
Prashant Jaikumar 95965f71d3 Remove network_status_tracker
Remove network_status_tracker and its unit test as it does nothing. We
can add tests for network status change in another commit.
2019-01-11 12:15:37 -08:00
Lidi Zheng 7df3475a9f Enable Bazel Python 3 for every PR
* Reverted hack in _reflection_servicer_test.py
* To see if Kokoro is happy about it
2019-01-09 14:36:23 -08:00
Eric Gribkoff 8d9190c0dd
Merge pull request #17675 from ericgribkoff/really_dealloc
correctly name __dealloc__ method
2019-01-09 12:01:10 -08:00
Eric Gribkoff 025cb9b1e7 correctly name __dealloc__ method 2019-01-09 10:33:48 -08:00
Richard Belleville ca5c0a8366 Switch to absolute import 2019-01-09 09:43:14 -08:00
apolcyn 26dddbb10d
Merge pull request #16187 from apolcyn/ipv6_resolver_scope_ids
Support named scope id's in grpc_parse_ipv6 on posix platforms
2019-01-08 14:36:20 -08:00
Lidi Zheng 0d931d9c8f Make Python 3 pass all unit tests 2019-01-07 13:41:02 -08:00
Lidi Zheng 814c858f3f Enable Python 3 2019-01-04 18:45:01 -08:00
Eric Gribkoff b542cc8917
Merge pull request #17642 from ericgribkoff/restore_fork_support_flag
restore cython flag value to default after test
2019-01-04 15:20:10 -08:00
Eric Gribkoff 9685299cd3
Merge pull request #17641 from ericgribkoff/logging_test_fix
Do not reload grpc in unit tests
2019-01-04 15:19:41 -08:00
Eric Gribkoff 4b2086eecd restore cython flag value to default after test 2019-01-04 14:12:11 -08:00
Eric Gribkoff d79d2f1ca7 Do not reload grpc in unit tests
This can break subsequently run tests, including any which have already
stored references to gRPC enums (such as grpc.StatusCode.OK). The
subsequent tests will compare now be comparing the old enums to the
reloaded enums, and they will not match. This causes errors in
_metadata_code_details_test and a hang in _metadata_flags_test, when run
in sequence locally after _logging_test.

It's unclear why this has been working on Kokoro, but it is reproducible
locally and is behavior that should be avoided.
2019-01-04 14:03:31 -08:00
Sanjay Pujare 94d5587643 Regenerate projects 2019-01-03 15:35:20 -08:00
Richard Belleville a76465c65c
Merge pull request #17600 from grpc/memory-leak
Free grpc_channel_args after creation
2018-12-27 16:42:43 -08:00
Richard Belleville 87e45f384c
Merge pull request #17580 from grpc/expose-version
Expose version
2018-12-27 16:20:11 -08:00
Richard Belleville 0daa420417 Free grpc_channel_args after creation 2018-12-27 15:21:12 -08:00
Richard Belleville dd4830eae8 Make gRPC version string available as grpc.__version__ 2018-12-27 13:50:30 -08:00
Eric Gribkoff 4e3e46df22 fix test 2018-12-27 11:53:54 -08:00
Eric Gribkoff e678187996 use test constants, fix formatting 2018-12-27 09:39:53 -08:00
Eric Gribkoff b74af8c70b skip test with gevent 2018-12-26 15:04:38 -08:00
Eric Gribkoff 71e7e6ddc7 Add Watch method to health check service 2018-12-26 12:39:58 -08:00
Alexander Polcyn 00763bc3ea Support named scope id's with ipv6 resolver on posix 2018-12-26 11:03:43 -08:00
Eric Gribkoff b6b745f22d disable broken gevent test 2018-12-21 15:04:42 -08:00
Eric Gribkoff 2f029bade0 Clean up server and channel objects in tests 2018-12-21 15:04:42 -08:00
Jan Tattermusch 95511c0cfd
Merge pull request #17407 from jtattermusch/interop_csharp_sni_fix
better testing of SNI for C-based languages
2018-12-21 11:12:46 +01:00
Lidi Zheng 102d5d88a6
Merge pull request #17570 from lidizheng/fix-complain
Fix Complain of Higher Version Pylint
2018-12-20 14:21:14 -08:00
Mark D. Roth db9be19f5d
Merge pull request #16008 from markdroth/client_channel_refactor
Refactor request routing code out of client_channel
2018-12-20 13:42:51 -08:00
Lidi Zheng 1ac4a01a0e Fix Complain of Higher Version Pylint 2018-12-20 12:13:08 -08:00
Lidi Zheng 97453a3d81
Merge pull request #17303 from lidizheng/sanity-python-3
Run pylint test in Python 3
2018-12-20 11:22:37 -08:00
Mark D. Roth 09f57c17ee Refactor request routing code out of client_channel. 2018-12-20 10:10:19 -08:00
Jan Tattermusch 4f261a071e do not use server override in python interop client by default 2018-12-20 14:49:54 +01:00
Eric Gribkoff 6211f4589b removed unused traceback import 2018-12-19 08:34:13 -08:00
Lidi Zheng 71094e25c5 Remove dependency of grpc.framework.foundation.callable_util
* Used in _channel.py, _server.py, and _utilities.py
* This API can trace back to 4 years ago
* The code change ensures the logging info is exactly the same
2018-12-18 11:43:53 -08:00
Eric Gribkoff 1af10acdac
Merge pull request #17444 from ericgribkoff/server_dealloc
Refactor server deallocation
2018-12-18 10:59:04 -08:00
Lidi Zheng cb408e70fb
Merge pull request #17535 from lidizheng/remove-fake-channelz-dependency
Remove the fake package dependency
2018-12-18 10:36:29 -08:00
Eric Gribkoff 3c49252d47 bazel docker image does not support ipv6 2018-12-17 21:05:13 -08:00
Eric Gribkoff 8183fe1299 fix BUILD.bazel 2018-12-17 18:29:25 -08:00
Lidi Zheng 08a90f03d4 Remove the fake package dependency && temporarily skip the Channelz tests 2018-12-17 15:11:44 -08:00
Eric Gribkoff 05d3ab2852 Address comments, improve tests 2018-12-17 15:09:46 -08:00
Eric Gribkoff 7bd03aeb0d Revert "Revert "re-enable ExitTest""
This reverts commit 1bd231605a.
2018-12-17 14:24:35 -08:00
Juanli Shen 1bd231605a
Revert "re-enable ExitTest" 2018-12-17 11:21:15 -08:00
Eric Gribkoff 718084c6b4 disable fork test on windows 2018-12-17 08:53:09 -08:00
Eric Gribkoff 468ae0f486 add tracking issue 2018-12-17 08:53:09 -08:00
Eric Gribkoff a76d72e0a6 add tests 2018-12-17 08:53:09 -08:00
Eric Gribkoff 082b63e095 Refactor server deallocation 2018-12-17 08:53:09 -08:00
Lidi Zheng d64fd75dd8
Merge pull request #17490 from lidizheng/py-status-3
Add grpcio-status extension package
2018-12-14 13:03:31 -08:00
Lidi Zheng 8621bd47ad Assign noop to build_package_protos for backward compatibility 2018-12-14 11:23:18 -08:00
Lidi Zheng 40b8ca97a1 Update docstring to make it more clear
* Mark API as experimental
* Rephrase the raise condition
* Add more detail to the returned object
2018-12-14 10:28:48 -08:00
Eric Gribkoff eb65dbb030
Merge pull request #17466 from ericgribkoff/exit_tests
re-enable ExitTest
2018-12-14 09:06:01 -08:00
Lidi Zheng b9cb2459ea Include LICENSE in artifact 2018-12-13 18:07:52 -08:00
Lidi Zheng 0e2f4061f5 Fix typo && remove unecessary except 2018-12-13 17:05:39 -08:00
Lidi Zheng 45b3230ef2 Add grpcio-status extension package
* The new package has 2 API `from_call` and `to_status`
* Utilize the experimental API `abort_with_status`
* Add 5 unit test cases
2018-12-13 10:18:44 -08:00
Eric Gribkoff e1c78993be re-enable unit._exit_test.ExitTest 2018-12-12 20:15:53 -08:00
Lidi Zheng e9cae6bba3
Merge pull request #17481 from lidizheng/py-status-2
New abort with grpc.Status API
2018-12-12 16:38:14 -08:00
Richard Belleville bd142d6c46 Actually build CensusContext 2018-12-12 14:59:50 -08:00
Lidi Zheng 087d48a8bd Update the documentation about the status code constraint 2018-12-12 14:31:52 -08:00
Lidi Zheng fd74fcf2a0 New abort with grpc.Status API
* Add `abort_with_status` method in ServicerContext
* Add `Status` interface similar to the design of Details in interceptor
* Add 3 unit test cases for abort mechanism
2018-12-12 13:48:39 -08:00
Richard Belleville e829a81118
Merge pull request #17460 from grpc/enable-census
Add hooks for census context propagation
2018-12-11 14:49:19 -08:00
Richard Belleville 6b3baf2618 Add hooks for census context propagation
Appease the yapf gods

Reformat
2018-12-11 12:59:31 -08:00
Noah Eisen 9e9cae7839
Merge pull request #17456 from ncteisen/socket-pagination
Channelz: Add Pagination to ServerSockets
2018-12-11 12:27:49 -08:00
ncteisen 7b1fc0faa2 Add max_results to ServerSockets 2018-12-11 08:24:40 -08:00
Mark D. Roth c5f344deaf
Revert "Revert "Allow encoding arbitrary channel args on a per-address basis."" 2018-12-11 07:48:14 -08:00
Lidi Zheng 8cb2d0546d Upgrade sanity Docker image to debian:stretch
* Use latest pylint in Python 3.7 (they dropped support for PY2)
* Make latest pylint happy
* Forced to upgrade to shellcheck 0.4.4
* Make shellcheck 0.4.4 happy
* Adopt reviewers' advice to reduce global disabled rules
2018-12-10 16:21:49 -08:00
hcaseyal 936512fe02
Merge pull request #17450 from grpc/revert-17343-server_address_list
Revert "Allow encoding arbitrary channel args on a per-address basis."
2018-12-07 17:31:18 -08:00
Lidi Zheng 64fc25f38c
Merge pull request #17411 from lidizheng/add-license
Add License to Python tarball
2018-12-07 16:49:52 -08:00
hcaseyal 27e2ba31bf
Revert "Allow encoding arbitrary channel args on a per-address basis." 2018-12-07 16:13:37 -08:00
Mark D. Roth dedff37b4f Allow encoding arbitrary channel args on a per-address basis. 2018-12-07 12:41:51 -08:00
Eric Gribkoff d74a6b1860
Merge pull request #17410 from ericgribkoff/channelz_stop_server
stop() server and enable skipped channelz test
2018-12-07 09:19:27 -08:00
Eric Gribkoff a324bcaad0 Pre-fix python3 pylint failures 2018-12-06 14:51:00 -08:00
Lidi Zheng 5584d58e6c Add LICENSE to grpcio-* packages
* Using the proprocess command to copy the LICENSE
2018-12-05 15:25:48 -08:00
Eric Gribkoff 9dce850250 stop() server and enable skipped channelz test 2018-12-05 11:48:17 -08:00
Eric Gribkoff 8998dfcb7a
Merge pull request #17396 from ericgribkoff/creds_close_hang
credentials: call grpc_init/grpc_shutdown when created/destroyed
2018-12-04 18:31:45 -08:00
Eric Gribkoff e699c47c1e credentials: call grpc_init/grpc_shutdown when created/destroyed
This addresses https://github.com/grpc/grpc/issues/17001. Prior to
https://github.com/grpc/grpc/pull/13603, our credentials cython objects
used grpc_initi() and grpc_shutdown() on creation and destruction. These are
now managed differently, but the grpc_init() and grpc_shutdown() calls
are still required. See the MetadataCredentialsPluginWrapper in C++,
which extends the GrpcLibraryCodegen class to ensure that grpc_init()
and grpc_shutdown() are called appropriately.

Without this, we can deadlock when a call to grpc.Channel#close()
triggers grpc_shutdown() to block and wait for all timer threads to
finish: one of these timer threads may end up unreffing the subchannel
and triggering grpc_call_credentials_unref, which will jump back into
Cython and hang when it tries to reacquire the GIL.
2018-12-04 14:29:04 -08:00
Lidi Zheng c339ba3229
Merge pull request #16971 from lidizheng/surface-exceptions
Surface exceptions from Cython to Python as much as possible
Fixed #16643
2018-12-03 16:42:13 -08:00
Lidi Zheng 7ef8fc826c
Merge pull request #17266 from lidizheng/python-channelz
Channelz Python wrapper implementation
2018-11-29 16:10:32 -08:00
Lidi Zheng 69b6c047bc Update docstring of Channelz function && add default variable initialization 2018-11-29 12:57:00 -08:00
Lidi Zheng 8e3234963e Update comments && modify function name 2018-11-29 11:29:43 -08:00
Eric Gribkoff 3a47e2c41d
Merge pull request #17307 from ericgribkoff/create_server_format
fix docstring on grpc.server
2018-11-29 09:40:03 -08:00
Lidi Zheng 7eddafabdd Disable three subchannel unit tests for gevent 2018-11-28 17:15:42 -08:00
Lidi Zheng 99f248ae12 Remove the `del` hack and skip server related test cases 2018-11-28 14:49:28 -08:00
Lidi Zheng d75abb6663 Adding comment about `del` about #17258 2018-11-28 14:32:36 -08:00
Eric Gribkoff d9f656a911 fix docstring on grpc.server 2018-11-28 11:13:06 -08:00
Lidi Zheng 53476eced4 Adopt reviewer's suggestions
* Correct the StatusCode
* Format code
* Use @staticmethod
* Fix typo
2018-11-28 10:30:39 -08:00
Mehrdad Afshari 8199aff7a6 Fix Python blocking interceptors facing RpcError
RpcError should be returned from the continuation intact,
not raised.
2018-11-28 00:53:46 -08:00
Lidi Zheng 43599facf4 Channelz Python wrapper implementation
* Expose the C-Core API in Cython layer
* Handle the object translation
* Create a separate package for Channelz specifically
* Handle nullptr and raise exception if seen one
* Translate C++ Channelz unit tests
* Adding 5 more invalid query unit tests

Adding peripheral utility for grpcio-channelz package
* Add to `pylint_code.sh`
* Add to Python build script
* Add to artifact build script
* Add to Bazel
* Add to Sphinx module list
2018-11-27 17:27:39 -08:00
Lidi Zheng 3adca9ff93 Surface exceptions from Cython to Python as much as possible 2018-11-27 12:11:09 -08:00
Ruslan Nigmatullin f8f711ae4c [cython] Declare symbols once 2018-11-26 22:12:16 -08:00
Lidi Zheng 4bc98acfd7
Merge pull request #17281 from lidizheng/issue-16718
Raise the exception while credential initialization
2018-11-26 10:35:20 -08:00
Lidi Zheng b7fd18daa4 Raise the exception while credential initialization 2018-11-26 10:15:14 -08:00
Jan Tattermusch 346d745c6e
Merge pull request #15640 from jtattermusch/slow_python_interop_build
Run interop tests using python3.4 (and build interop with 3.4 only)
2018-11-26 09:38:05 +01:00
Lidi Zheng e0d9692fa3
Merge pull request #17268 from mehrdada/remove-beta-elements-from-bazel
Remove beta module dependency from the Python Bazel package
2018-11-21 15:56:50 -08:00
Mehrdad Afshari e69c1b960f Remove BUILD.bazel files from beta code elements
Beta code elements are going to get deprecated and
Bazel support is much newer, so Bazel users are
not supposed to accidentally depend on beta code
elements.  Preventing Bazel from building and
including beta code elements makes our tests pass
without depending on beta in grpcio target and
helps avoid including that dependency accidentally
if you are using Bazel.
2018-11-21 13:40:10 -08:00
Mehrdad Afshari 107539c0d7 Removed unused import from grpc.beta in tests 2018-11-21 13:37:02 -08:00
Yash Tibrewal 248e304671 Merge branch 'master' into httpplumbing 2018-11-21 11:48:41 -08:00
Jan Tattermusch b609caebf1 trailing "-bin" metadata is binary 2018-11-21 19:12:15 +01:00
Jan Tattermusch 29f44db128 fix initial->trailing 2018-11-21 19:06:14 +01:00
Jan Tattermusch 95bae1ead9 make client_email loading python3 compatible 2018-11-21 13:08:30 +01:00
Mehrdad Afshari 989af50e1d Remove beta modules from the Python Bazel package 2018-11-21 00:17:25 -08:00
Eric Gribkoff b654c8d279 python: close channels in _server_ssl_cert_config_test 2018-11-20 15:29:02 -08:00
Muxi Yan f3e4ae633e Regenerate projects 2018-11-19 15:24:53 -08:00
Yash Tibrewal fc332d2c92 Merge master 2018-11-16 11:11:04 -08:00
Juanli Shen 8a880801ae Add support for LB config in service config 2018-11-15 13:31:27 -08:00
Yihua Zhang 3fefdde3cc remove ALTS shared resources 2018-11-13 09:44:28 -08:00
Lidi Zheng 9b65b40247 Label wait-for-ready argument in multicallables as experimental 2018-11-12 13:57:59 -08:00
Richard Belleville 27bab0c631
Merge pull request #17143 from grpc/module-root-logger
Only Add NullHandler to Module-Root Logger
2018-11-12 10:12:23 -08:00
Richard Belleville c477cb8597 Add missing transitive dependencies
This commit resolves an interop test currently failing on master. Over
the past couple of weeks, bazel-based tests have been introduced. The
current setup does not appear to automatically handle transitive
dependencies. Instead, transitive dependencies such as `requests` have
been manually added to `requirements.bazel.txt`. It appears that the
build server happened to have the dependencies of the `requests` library
installed already, but later had a configuration wipe.

This was compounded by the google-auth library erroneously reporting
that the `requests` module itself was not installed. In fact, it was the
transitive dependencies of `requests` that were not being installed by
the build file. (third-order dependencies of our test)

I consider this a quick fix to get the build passing. In the long run,
we need to automatically resolve and install transitive dependencies in
our bazel builds.

Resolves: #17170
2018-11-09 16:53:43 -08:00
Richard Belleville ecd9063424 Use single NullHandler for whole library
I was trying to get a feel for what the rest of the python ecosystem
does with its logging, so I looked into the top few libraries on pypi:

urllib3 maintains a logger for not quite every module, but for each
one that does heavy lifting. The logger name is `__name__`, and no
handlers are registered for any module-level loggers, including
NullHandler. Their documentation spells out how to configure logging
for the library.

They explicitly configure a library root-level logger called `urllib3`
to which they attach a `NullHandler`. This addresses the "no handlers
could be found" problem.

Their tests explicitly configure handlers, just like ours do.

scrapy is more hands-on. It provides a configuration module for its
logging and a whole document on how to handle logging with scrapy. It
looks like log.py's whole reason for existence is making sure that a
handler is attached to to the scrapy handler at startup.

I think the extra complexity here is because scrapy also offers a CLI,
so there has to be some way to configure logging without resorting to
writing python, so I felt we didn't need to resort to this added
complexity.

---

Based on all of the libraries I've looked at, I think our current
approach is reasonable. The one change I would make is to explicitly
configure a `grpc` logger and to only attach a `NullHandler` to it
instead of putting the burden on the author of each new module to
configure it there.

With this change, I have

- Configured a logger in each module that cares about logging
- Removed all NullHandlers attached to module-level loggers
- Explicitly configured a `grpc` logger with a `NullHandler` attached

Resolves: #16572
Related: #17064
2018-11-09 08:47:42 -08:00
Lidi Zheng 01c6565fb5
Merge pull request #16995 from lidizheng/from-3.4-to-3.7
Migrate tests from Python 3.4 to Python 3.7
2018-11-07 11:11:02 -08:00
Lidi Zheng 678ea08950
Merge pull request #16919 from lidizheng/wait-for-ready
Add wait-for-ready semantics
2018-11-07 11:10:23 -08:00
Lidi Zheng a7a3f5b42e
Merge pull request #17074 from lidizheng/python-doc-gen
The new gRPC Python documentation generator
2018-11-07 11:08:19 -08:00
Lidi Zheng cabe8d8f10 New Python documentation generation
* Use templates instead of generating them every time
* Theme changed
* Add grpc_* modules
* APIs grouped
* No documentation for class members without docstring
* Add docstring for status code
2018-11-06 18:07:03 -08:00
Lidi Zheng 4821221e3a Add wait-for-ready semantics
* Include unit tests to test default behaviour, disable behaviour, enable behaviour of the wait-for-ready mechanism
* Import flags constants from grpc_types.h
* Use WaitGroup to wait for TRANSIENT_FAILURE state in unit test
2018-11-06 17:16:52 -08:00
Lidi Zheng 88150dbe2c
Merge pull request #17128 from lidizheng/add-comment-to-commands-py
Add background about gRPC Python's building process on macOS
2018-11-06 17:05:55 -08:00
Lidi Zheng 03841be6ce Add background about the special condition 2018-11-06 16:12:27 -08:00
Lidi Zheng 8a0b08b574 Migrate tests from Python 3.4 to Python 3.7 2018-11-06 15:37:51 -08:00
Jan Tattermusch 7517b839ac
Merge pull request #17057 from jtattermusch/faster_python_build
Add python monkey-patch for parallel build_ext compilation
2018-11-06 12:13:18 +01:00
Lidi Zheng 2a1fbccb2c
Merge pull request #16976 from benjaminp/remove-pkg_resources
Replace pkg_resources with pkgutil.
2018-11-05 17:00:46 -08:00
Lidi Zheng b8a9989005 Add support for utf-8 error messages
* Both server and client should be fine with utf-8 error messages now
* Adding an interop test: special status message
2018-11-05 13:31:02 -08:00
yihuaz 5e9c9792b5
Merge pull request #16773 from yihuazhang/alts_tsi_handshaker_use_pollset_set
Use gRPC thread model (i.e., pollset_set) in ALTS TSI implementation
2018-11-02 11:05:54 -07:00
Srini Polavarapu f00af6d1ab
Merge pull request #17081 from nathanielmanistaatgoogle/restore-python-bazel
Restore reverted Python Bazel work
2018-11-02 10:06:10 -07:00
Noah Eisen 53657b5de3
Merge pull request #17050 from ncteisen/channelz-sockets
Channelz: Socket Tracks Addresses
2018-11-01 23:39:51 -04:00
Benjamin Peterson 187f7e4e4c Replace pkg_resources with pkgutil.
pkg_resources (part of setuptools) is overkill for reading resource files. The standard library module pkgutil can do that just fine.
2018-11-01 17:01:12 -07:00
Yihua Zhang cd768ec12a use gRPC thread model 2018-11-01 16:26:46 -07:00
Richard Belleville b741454fe4
Merge pull request #17064 from gnossen/fix-logging
Fix logging
2018-11-01 16:11:28 -07:00
Lidi Zheng f091ba1b66
Merge pull request #17008 from stub42/yay_destructors
Handle missing globals in Python Channel destructors
2018-11-01 14:15:16 -07:00
Richard Belleville 18cc5f5dbe Use custom assertions 2018-11-01 13:29:28 -07:00
Richard Belleville cf624a98e6 Isolate logging in all test cases 2018-11-01 13:24:03 -07:00
Naresh cd931752ca Bazel rules for gRPC Python interop tests
Add interop tests for gRPC Python. py_proto_library rules are added to
src/proto/grpc/testing/BUILD since grpc_proto_library is not compatible
with py_* rules.

'requests' python module is added to requirements.bazel.txt as it is a
dependency for google-auth. Previously, this was installed through
tools/run_tests/helper_scripts/build_python.sh before running tests.
2018-11-01 12:01:02 +00:00
Naresh e4382abc9c Bazel rules for Python grpcio_reflection 2018-11-01 12:01:02 +00:00
ncteisen 44b262c361 fix build and sanity 2018-10-31 21:11:28 -07:00
Richard Belleville dc05e31ff1 Appease the yapf gods 2018-10-31 17:22:30 -07:00
Richard Belleville 78eae493b4 Add explicit test that user can configure their own handler 2018-10-31 17:20:43 -07:00
Richard Belleville fec37654fb Fix splat 2018-10-31 17:04:51 -07:00
Richard Belleville acc72c0835 Format code 2018-10-31 16:47:56 -07:00
Richard Belleville 79d0424468 Pull out function to patch stderr 2018-10-31 16:45:54 -07:00
Richard Belleville b7335f5c01 Add test for 'No handlers could be found' problem 2018-10-31 16:43:36 -07:00
ncteisen 1a3c2d3e3a Move uri_parser to lib 2018-10-31 14:14:09 -07:00
Richard Belleville a3ffca1440 Format code 2018-10-31 11:47:13 -07:00
Richard Belleville db1294dd47 Add logging tests to tests.json 2018-10-31 10:56:29 -07:00
Jan Tattermusch 185a0a7028 add python monkey-patch for parallel build_ext compilation 2018-10-31 09:01:01 +01:00
Richard Belleville 4d086ef0f4 Fix various mind-numbing typos 2018-10-30 18:53:00 -07:00
Richard Belleville fb972c960f Add basicConfig handler to grpcio_testing 2018-10-30 18:44:06 -07:00
Richard Belleville 240ca50ec2 Add basicConfig handler to unit tests 2018-10-30 18:43:18 -07:00
Richard Belleville 839722adc5 Add NullHandler to avoid warnings about no handler 2018-10-30 18:16:53 -07:00
Richard Belleville 1e05d48d2d Revert "Configure module level loggers with basicConfig()"
This reverts commit a20e2073c1.
2018-10-30 17:53:50 -07:00
Richard Belleville ff1c31f47c Add failing unit test 2018-10-30 17:51:15 -07:00
ncteisen 3cb8b0b8cb Move uri_parser to common spot 2018-10-30 11:39:26 -07:00
Lidi Zheng 4e5ee57000 Change flag to `REQUIRE_CUSTOM_LIBRARIES_opt` 2018-10-30 10:00:55 -07:00
Lidi Zheng 7502a2311a
Try cleaner separation
* reduce possible contamination of environment variables
2018-10-29 22:48:35 -07:00
Lidi Zheng 688db0ec5b
Remove the environment variable changing line
* This commit failed `tools/run_tests/artifacts/build_artifact_csharp.sh`
* It doesn't make any sense!
2018-10-29 21:14:49 -07:00
Lidi Zheng 9569ebe770 Add reference to the issue 2018-10-29 16:38:20 -07:00
Lidi Zheng 465886533f Ensure libboringssl.a is always built for Python 2018-10-29 16:35:21 -07:00
Stuart Bishop 11ab724b97
Handle missing globals in Python Channel destructors
If the last reference to a Python object is at module scope, when
its destructor is run before program termination it may find that
the globals it requires no longer exist. Destructors of objects
likely to be stored at module global scope need to check that
globals exist before attempting to use them, to avoid warnings
being printed by the Python interpreter.

See grpc#17004
2018-10-26 00:54:21 +07:00
Mark D. Roth 496d0676c8
Merge pull request #16507 from markdroth/health_checking_client
Health checking client
2018-10-24 13:17:01 -07:00
Mark D. Roth f85fd026e3 Client-side health checking support. 2018-10-24 12:29:04 -07:00
Yihua Zhang 81bc942cd8 security connector refactor 2018-10-22 09:37:48 -07:00
Vishal Powar a33e796575 Changes to register xds plugin init and shutdown.
Also,
 - Changes to extract grpclb_proto into its own build target
 - Remove client_load_reporting_filter from xds plugin.
2018-10-18 12:43:42 -07:00
ncteisen 247b5b70c4 Merge branch 'master' of https://github.com/grpc/grpc into channelz 2018-10-15 15:59:36 -04:00