Commit Graph

2594 Commits

Author SHA1 Message Date
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
ncteisen c27d2fcbbe Ban gevent test 2018-10-15 15:59:27 -04:00
Lidi Zheng 08588f7077
Merge pull request #16864 from lidizheng/master
Fix Exception throw for invalid channel args
2018-10-15 09:58:08 -07:00
Lidi Zheng 118e134ded fix Exception throw for invalid channel args
* unit test included
* throw ValueError exception from Cython to Python
* prevent the deconstruction method from failing when Channel initialization failed
2018-10-14 23:33:58 -07:00
Mehrdad Afshari 9d2f985f55 Revert "Bazel rules for gRPC Python interop tests"
This reverts commit 9172775bc8.
2018-10-12 12:12:36 -07:00
Mehrdad Afshari 45e8ada064 Revert "Bazel rules for Python grpcio_reflection"
This reverts commit 2e78e516ad.
2018-10-12 12:12:29 -07:00
Nathaniel Manista 73419c49ac
Merge pull request #16831 from ghostwriternr/bazel-python-reflection
Bazel rules for Python grpcio_reflection.
2018-10-12 13:27:26 +02:00
Nathaniel Manista 8ae3285323
Merge pull request #16813 from ghostwriternr/bazel-python-interop-tests
Bazel rules for gRPC Python interop tests.
2018-10-12 10:14:13 +02:00
Naresh 2e78e516ad
Bazel rules for Python grpcio_reflection 2018-10-11 09:14:58 +00:00
Naresh 9172775bc8 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-10-11 08:43:34 +00:00
Naresh 873e0757cb
Bazel rules for Python grpcio_health_checking
Add Bazel rules for building and testing grpcio_health_checking.

An unofficial fork for rules_protobuf is used for now as it incorporates
a change (#196 by duduko on the upstream repo pubref/rules_protobuf)
which allows the protoc compiler to compile generated protos too. This
was not merged because the change was failing for golang, but works as
expected for Python.

This is needed because grpcio_health_checking fetches it's proto file
from a different directory (previously achived through setup.py) and
thus needs to be moved to the required location within bazel-genfiles
using a genrule.
2018-10-09 17:04:11 +00:00
Stanley Cheung e5ce1e36e6 Regenerate projects 2018-10-08 15:50:50 -07:00
Nathaniel Manista 83b678220e
Merge pull request #16335 from ghostwriternr/python_bazel_4
Add Bazel targets for (some) Python unit tests.
2018-10-08 14:44:20 +02:00
Naresh e80230ae6f
Add Bazel targets for Python unit tests
There are exactly 50 tests under grpcio_tests/tests/testing and
grpcio_tests/tests/unit for gRPC Python. Add Bazel targets for 44 of
them. unit._reconnect_test has been left out for now due to an
unexpected RuntimeError (#16336) and unit._server_ssl_cert_config_test
because of changes needed to the import path within
src/python/grpcio_tests/tests/testing/proto/services.proto (will
possibly be included as a fix to #15370).

The count of tests here is reported the way unittest counts tests, which
is the number of individual unit test classes it sees. This will be
different from Bazel's count, which counts the number of Bazel test
targets, which (by convention mostly) is one per test module.
2018-10-03 11:11:27 +00:00
hcaseyal a46ac13db3
Merge pull request #16735 from hcaseyal/delete_lookup_table
Delete hpack lookup table
2018-10-01 15:22:05 -07:00
Hope Casey-Allen 4772a743e8 Delete hpack lookup table 2018-09-28 13:47:04 -07:00
Vijay Pai be18cedf90 Delete epollsig poller and tests using it 2018-09-22 08:07:47 -07:00
hcaseyal 5bb69e0f01
Merge pull request #16488 from hcaseyal/hpack_static_table
Hpack changes part 1: make grpc use the static hpack table on the encode path and optimize encoding
2018-09-20 09:32:59 -07:00
Hope Casey-Allen 327c514fe7 Some reorganizing to respond to code review comments 2018-09-19 13:50:25 -07:00
Mehrdad Afshari 3586ac1c99 Fix SSL channel credential when an argument is None 2018-09-17 11:08:00 -07:00
Nathaniel Manista 9eebb6d13d
Merge pull request #16378 from ghostwriternr/module-level-logger-fix
Configure module level loggers with basicConfig().
2018-09-06 17:45:50 +02:00
Ruslan Nigmatullin dcc0a223c6 [bazel] Fix python BUILD rules
* Add missing cython sources
* Make grpcio a library as it is not a binary
2018-09-04 23:19:57 +00:00
Juanli Shen 35501ad1df
Merge pull request #16467 from AspirinSJL/bump_master
Bump version to 1.16.0-dev
2018-08-27 18:34:38 -07:00
Yash Tibrewal 8d47cd4992
Revert "Revert "Fathom tcp changes"" 2018-08-27 14:56:01 -07:00
Juanli Shen 8ceb27a324 Regenerate projects 2018-08-27 14:27:55 -07:00
Jan Tattermusch 97ba943f17
Revert "Fathom tcp changes" 2018-08-27 12:43:20 +02:00
Yash Tibrewal f71fd84e42 more stuff 2018-08-24 17:05:30 -07:00
Yash Tibrewal aab47cbdf2
Merge pull request #15941 from yashykt/fathomtcpchanges
Fathom tcp changes
2018-08-24 12:27:56 -07:00
Eric Gribkoff 3d1dacd73d Check poll strategy in core fork handler and log error if unsupported 2018-08-23 09:40:39 -07:00
Eric Gribkoff acc020caf7 Support tracking and closing fds post-fork in ev_poll_posix
This extends gRPC Python's fork compatibility to Mac OS, which does not support
epoll

The changes are a no-op if fork support is disabled
2018-08-23 09:40:39 -07:00
Mehrdad Afshari 77b7133244
Merge pull request #16435 from mehrdada/move-cred-wrapper-into-credentials.pyx
Move _server_cert_config_fetcher_wrapper to credentials.pyx.pxi
2018-08-23 08:42:04 -07:00
Eric Gribkoff dcbfa70226
Merge pull request #16432 from ericgribkoff/allow_pthread_atfork_mac
Define the allow pthread atfork macro for gRPC Python MacOS builds
2018-08-22 21:01:58 -07:00
Mehrdad Afshari 3a5da64e5d Move _server_cert_config_fetcher_wrapper to credentials.pyx.pxi 2018-08-22 18:25:18 -07:00
Eric Gribkoff e04ba7568c
Merge pull request #16318 from ericgribkoff/fork_support_v2_check_if_shutdown
Python fork handler checks if gRPC core successfully shutdown
2018-08-22 15:38:21 -07:00
Juanli Shen 142acb3b0f
Merge pull request #16425 from lamby/spelling-errors
Fix a number of spelling errors.
2018-08-22 14:20:24 -07:00
Eric Gribkoff b59d8674d2 Python post-fork handler: exit if grpc shutdown fails 2018-08-22 13:07:22 -07:00
Eric Gribkoff 0ff641a246 Define the allow pthread atfork macro for gRPC Python MacOS builds 2018-08-22 12:25:08 -07:00
Eric Gribkoff f8cf7ee56d Support gRPC Python client-side fork with epoll1
A process may fork after invoking grpc_init() and use gRPC in the child
if and only if the child process first destroys all gRPC resources
inherited from the parent process and invokes grpc_shutdown().
Subsequent to this, the child will be able to re-initialize and use
gRPC. After fork, the parent process will be able to continue to use
existing gRPC resources such as channels and calls without interference
from the child process.

To facilitate gRPC Python applications meeting the above constraints,
gRPC Python will automatically destroy and shutdown all gRPC Core
resources in the child's post-fork handler, including cancelling
in-flight calls (see detailed design below). From the client's
perspective, the child process is now free to create new channels and
use gRPC.
2018-08-22 10:34:54 -07:00
Chris Lamb fba18d8551 Fix a number of spelling errors. 2018-08-22 16:52:46 +01:00
Mehrdad Afshari 0aa1bd2ed4 Ensure thread_pool is not None for grpc.Server 2018-08-21 17:29:35 -07:00
Naresh a20e2073c1
Configure module level loggers with basicConfig()
Module level loggers were introduced to gRPC Python in 06e1683, but
missed configuring these, leading to 'No handler found for module'
errors. Using the root logger implicitly calls basicConfig() which does
the basic configuration for the logging system by creating a
StreamHandler with a default Formatter and adding it to the logger. But
this is not the case for module level loggers.

Fix this issue by explicitly calling logging.basicConfig().
2018-08-17 12:24:58 +00:00
Vijay Pai 381bcab8bd Move a file from src/cpp to src/core since core depends on it 2018-08-16 15:44:19 -07:00
Paul Petit 33e5c0d091 Replace is by == for a status comparison
This worked fine with CPython, but the condition
was always evaluated to False with Pypy, causing
bugs down the road.
Tested with Pypy 6.0.
2018-08-16 11:35:30 +02:00
Yash Tibrewal 556775d7c7 Merge master 2018-08-13 10:53:06 -07:00
Eric Gribkoff ea7c0a60c5
Merge pull request #16296 from ericgribkoff/close_segfault_fix
Check if Python channel is closed before starting core ops
2018-08-10 13:35:24 -07:00
tdbhacks bcd747d42d Added system roots feature to load roots from OS trust store
Added a flag-guarded feature that allows gRPC to load TLS/SSL
roots from the OS trust store. This is the Linux-specific
implementation of such feature.
2018-08-09 11:01:31 -07:00
Eric Gribkoff 5a664d7260 check if channel is closed before starting core ops 2018-08-09 09:02:32 -07:00
Jan Tattermusch 02d4afb94c yapf code 2018-08-07 14:28:41 +02:00
Jan Tattermusch bc8495da7a upgrade python to protobuf 3.6.0 2018-08-07 14:28:40 +02:00
Nathaniel Manista 4725386352
Merge pull request #15993 from ghostwriternr/python_bazel_2
Minimal Bazel BUILD files for grpcio Python.
2018-08-03 06:56:12 +02:00
Mehrdad Afshari f61e16144e Add op index support for custom hooks 2018-08-02 09:56:52 -07:00
Naresh 848fd9d75f
Minimal Bazel BUILD files for grpcio Python
Follow-up on the additions in #15992. Pad the grpcio Python package
with necessary BUILD files along with 2 simple tests.
2018-08-02 14:46:36 +00:00
Mehrdad Afshari c666aa6151 Add low-level Cython debug/expansion hooks 2018-08-02 02:30:08 -07:00
Mehrdad Afshari 603b82c559 Add a matching _unwrap_grpc_arg 2018-07-31 11:43:40 -04:00
Mehrdad Afshari fbfebd8e4e Add Cython functionality to directly wrap grpc_arg 2018-07-30 22:24:36 -07:00
Alexander Polcyn 9896c64186 Revert "Merge pull request #16158 from apolcyn/revert_windows_breakage"
This reverts commit d9e8f86675, reversing
changes made to 04847aeb1e.
2018-07-27 01:38:26 -07:00
apolcyn d9e8f86675
Merge pull request #16158 from apolcyn/revert_windows_breakage
Revert "Merge pull request #15797 from apolcyn/windows_compile_and_sort"
2018-07-26 16:46:04 -07:00
Alexander Polcyn f34c653936 Revert "Merge pull request #15797 from apolcyn/windows_compile_and_sort"
This reverts commit ae8d3efc3a, reversing
changes made to e41215e181.
2018-07-26 14:32:07 -07:00
Mehrdad Afshari b12f0aaf07 Add SERVICE_NAME to reflection/health 2018-07-26 11:45:59 -07:00
apolcyn ae8d3efc3a
Merge pull request #15797 from apolcyn/windows_compile_and_sort
Enable c-ares address sorting on windows
2018-07-25 16:59:57 -07:00
Alex Polcyn 1b1d5e52e7 Get c-ares to compile and do address sorting on windows 2018-07-25 13:21:43 -07:00
Mehrdad Afshari b928f99fdf Disable ChannelConnectivityTest for the Beta API
The Beta API has been unsupported for a while and
we plan to disable the flaky tests in the Beta API
as we see them before we entirely remove it.
2018-07-25 10:47:17 -07:00
Srini Polavarapu 8c9af7464c Regenerate projects 2018-07-19 09:52:56 -07:00
Yash Tibrewal f0397933b0 Fathom TCP level changes. TracedBuffer for keeping track of all buffers
to be traced. Adding tests for Fathom and TracedBuffer. A lot more.
Please read PR description.
2018-07-16 16:28:15 -07:00
ncteisen afb9829819 Fix the muddled linkeage of channelz 2018-07-06 15:34:54 -07:00
Yihua Zhang c5f1eda10f implement loca credentials 2018-07-02 13:29:27 -07:00
David G. Quintas 3acf8e6207
Merge pull request #15840 from dgquintas/common_nanopb
Update to use the canonical version of LB proto
2018-06-22 16:04:32 -07:00
Juanli Shen f5f1d57d7a Add load reporting filter 2018-06-22 10:00:48 -07:00
David Garcia Quintas f3955ba711 Update to use the canonical version of LB proto 2018-06-21 17:46:31 -07:00
Mehrdad Afshari 84955e7a48 Upmerge v1.13.x into master 2018-06-20 16:01:20 -07:00
Mehrdad Afshari 650fcb6b8d Add MANIFEST and README to grpcio_testing package 2018-06-20 11:26:29 -07:00
ncteisen 68d4f50f77 Merge branch 'master' of https://github.com/grpc/grpc into channelz 2018-06-19 14:00:52 -07:00
Mark D. Roth 9e3e64604d
Merge pull request #15274 from JackOfMostTrades/verify-callback-core
Create verify_peer_options when creating ssl credentials to support a peer verification callback
2018-06-19 10:00:16 -07:00
Jim King 01cbab60f3
Merge pull request #15070 from Vizerai/filter_port
Adding opencensus grpc plugin with bazel support.
2018-06-18 17:01:26 -07:00
Alexander Polcyn 7eda61937e Separate the posix part of the c-ares driver 2018-06-15 13:14:52 -07:00
Mehrdad Afshari 561630dfe2 Regenerate projects 2018-06-15 14:49:47 -04:00
ncteisen c14e95fc63 Merge branch 'master' of https://github.com/grpc/grpc into channelz 2018-06-15 11:13:46 -04:00
Srini Polavarapu d6616280d3
Merge pull request #15694 from srini100/bump-to-v1.14
Bump master to v1.14
2018-06-14 19:57:13 -07:00
Nathaniel Manista a5530e9e36 Specify thread-safety of grpc-created channels 2018-06-14 22:04:46 +00:00
Mehrdad Afshari b291f186be Refactor: reorder 2018-06-14 13:57:50 -07:00
Mehrdad Afshari 56142a5dbf Refactor: avoid calling with_call API
Avoid calling the public self.with_call
API internally and opt for sharing the
method body in a separate private method
and calling that instead.
2018-06-14 13:17:00 -07:00
ncteisen f92460e539 Merge branch 'master' of https://github.com/grpc/grpc into channelz 2018-06-13 23:00:07 -07:00
Mehrdad Afshari a33b807507 Re-raise grpc.RpcError instead of eating it 2018-06-13 16:32:00 -07:00
Mehrdad Afshari e9cbad592e Refactor: rename _LocalFailure to _FailureOutcome 2018-06-13 15:39:03 -07:00
Mehrdad Afshari e2ebd89a5f Optimize blocking intercepted stream-unary calls
Change the blocking stream-unary call code path to rely
on the underlying synchronous API, as opposed to calling
the Future-based underlying async API and invoking `.result()`
on the returned Future object immediately, which can be
resource-intensive.
2018-06-13 15:39:03 -07:00
Mehrdad Afshari 32919791c7 Optimize blocking intercepted unary-unary calls
Change the blocking unary-unary call code path to rely
on the underlying synchronous API, as opposed to calling
the Future-based underlying async API and invoking `.result()`
on the returned Future object immediately, which can be
resource-intensive.
2018-06-13 15:39:03 -07:00
kpayson64 30a0187aaa
Merge pull request #15744 from kpayson64/disable_lru
Disable LRU cache test on gevent
2018-06-13 15:18:14 -07:00
kpayson64 521246e2c5 Disable LRU cache test on gevent 2018-06-13 14:03:09 -07:00
Ian Haken 68eff58df6 Create verify_peer_options when creating ssl credentials in order to expose a verification callback option.
These options are not yet exposed to languages outside of core.
2018-06-12 12:59:37 -07:00
Nathaniel Manista 759eb90d2c
Merge pull request #15707 from ghostwriternr/fix-cython-file-endings
Update grpc_gevent cython files to include .pxi.
2018-06-11 16:01:42 -07:00
Nathaniel Manista b436d56d8b
Merge pull request #15689 from nathanielmanistaatgoogle/generic-rpc-handler-validation
Check conformance to grpc.GenericRpcHandler type.
2018-06-11 16:00:48 -07:00
Naresh 435c6f8d1e
Update grpc_gevent cython files to include .pxi
All files under `grpc/_cython/_cygrpc` in grpcio Python package
are used as include files and thus have a .pxi file extension.
grpc_gevent implementation was added in 1bfff8e, but didn't include the
.pxi file extension. Update these file names.
2018-06-11 23:34:59 +05:30
Srini Polavarapu 586c639795 Regenerate projects 2018-06-08 17:16:17 -07:00
Srini Polavarapu c79c156307 Regenrate projects 2018-06-08 17:01:18 -07:00
Mehrdad Afshari 92a06353e2
Merge pull request #15682 from mehrdada/bump-pylint
Bump pylint to 1.9.2
2018-06-08 15:21:29 -07:00
Nathaniel Manista 369d827445 Check conformance to grpc.GenericRpcHandler type 2018-06-08 21:07:14 +00:00
Nathaniel Manista 8872a312c3
Merge pull request #14879 from santoshankr/python_ssl_session_cache_lru
TLS session resumption support for Python clients.
2018-06-08 11:31:33 -07:00
Mehrdad Afshari d6547ea1a4 Change exception type to AssertError 2018-06-08 09:14:12 -07:00
Mehrdad Afshari f07f6c9a87 Remove comment that is no longer relevant 2018-06-08 08:31:30 -07:00
Mehrdad Afshari 6eac8c5e88 Run yapf to reformat Python code 2018-06-07 23:56:41 -07:00
Mehrdad Afshari 109b5b1dcc Fix arguments-differ pylint warning 2018-06-07 23:39:16 -07:00
Mehrdad Afshari de1718c1c0 Remove unused _junkdrawer 2018-06-07 23:38:50 -07:00
Mehrdad Afshari a941ec6d74 Fix import order to satisfy pylint 2018-06-07 23:38:34 -07:00
Mehrdad Afshari bfbd192a82 Fix raising-format-tuple pylint warning 2018-06-07 23:32:46 -07:00
Mehrdad Afshari b6955d996f Refactor to avord redefining argument 2018-06-07 23:30:34 -07:00
Mehrdad Afshari c095c5c847 Fix arguments-differ pylint warning 2018-06-07 23:26:38 -07:00
Mehrdad Afshari 6c44fd6e25 Fix useless-super-delegation pylint warnings 2018-06-07 23:22:19 -07:00
Mehrdad Afshari ebb176780b Implement abstract methods _LocalFailure inherits 2018-06-07 23:17:27 -07:00
Mehrdad Afshari a99945d500 Fix arguments-differ pylint warning 2018-06-07 23:12:10 -07:00
Mehrdad Afshari 4b7223d334 Remove unnecessary pylint suppressions 2018-06-07 22:52:51 -07:00
Mehrdad Afshari 0aaeedcbd4 Fix inconsistent-return-statements pylint warnings 2018-06-07 22:50:23 -07:00
Mehrdad Afshari c48acb86fd Fix code to pass len-as-condition pylint test 2018-06-07 22:39:42 -07:00
Nathaniel Manista 06e1683c7c
Merge pull request #14557 from ghostwriternr/py-custom-logger
Update logging in Python to use module-level logger.
2018-06-07 19:31:46 -07:00
Santosh Ananthakrishnan fd4c5dd031 TLS session resumption support for Python clients
This change adds an experimental ssl_session_cache_lru function to the
Python API that returns an encapsulated grpc_ssl_session_cache (#14483).
Python clients may use this object as an argument for the
grpc.ssl_session_cache channel option if they wish to cache and resume
TLS sessions with a server.
2018-06-07 22:20:31 +00:00
Nathaniel Manista b441dbbc2c
Merge pull request #15666 from nathanielmanistaatgoogle/15662
Retain references to channel arguments.
2018-06-07 13:14:03 -07:00
Nathaniel Manista 9c86b20bac Retain references to channel arguments
This works around issue 15662 which is not as easy to implement as I
would prefer it to be.
2018-06-06 21:57:39 +00:00
ncteisen c3c6e064b3 Add basic support for GetChannel 2018-06-05 16:59:25 -07:00
kpayson64 f423280a90
Merge pull request #15607 from kpayson64/upmerge_changes
Upmerge changes
2018-06-04 13:19:27 -07:00
kpayson64 b26b2af1db Merge remote-tracking branch 'upstream/v1.12.x' into upmerge_changes 2018-06-01 10:42:08 -07:00
kpayson64 0647b03296 Use gevent greenlets for metadata callbacks 2018-05-31 17:35:48 -07:00
Augie Fackler 38689e6587 Python: wordsmith documentation on Server.stop()
@nathanielmanistaatgoogle and I just had a good session helping me
figure out how to use this API correctly, and this rewording of the
documentation was the result.
2018-05-31 17:25:58 -04:00
Naresh 2e113ca6b2 Update logging in Python to use module-level logger
All logging in Python so far was done with the root logger, resulting
in logs like: `ERROR:Exception calling application:`. With module-level
loggers, the logs will instead include the module in which the
exception is raised: `ERROR:grpc._server:Exception calling application:`
2018-05-31 08:08:25 +00:00
kpayson64 deebcfea01 Use the correct proto for benchmark_serivce 2018-05-29 14:21:21 -07:00
Vizerai e501a3d3fd Merge branch 'master' of https://github.com/Vizerai/grpc into filter_port 2018-05-29 10:45:32 -07:00
Jan Tattermusch 272cdca728 regenerate projects 2018-05-24 14:46:33 -07:00
Noah Eisen 654ecedd03
Merge pull request #15341 from ncteisen/registry++
C++-ify the ChannelzRegistry, Adds Generic Object Support
2018-05-17 19:34:15 -07:00
ncteisen bba8840a4b Change filename to channelz 2018-05-17 15:07:51 -07:00
Noah Eisen 0b8b9a08e2 Surfaces debug_error_string to Python API
In case of error, the user can access call.debug_error_string()
which contains a string representation of error from the c core.
2018-05-17 07:42:02 -07:00
kpayson64 5fc081acd1
Merge pull request #14647 from kpayson64/fork_exec_ctx_check
Add exec_ctx check to fork handlers
2018-05-15 13:52:28 -07:00
Mehrdad Afshari 4ecc5d8225 Regenerate projects 2018-05-14 22:42:39 -07:00
Mehrdad Afshari 97c2932260 Install futures package only on Python 2 2018-05-14 19:08:31 -07:00
Mehrdad Afshari ac6aaa3f0b Install futures package only on Python 2 2018-05-14 17:02:03 -07:00
kpayson64 4fad281ce8 Merge remote-tracking branch 'upstream/master' into fork_exec_ctx_check 2018-05-11 12:20:11 -07:00
Vizerai 41e4cedb70 Adding opencensus grpc plugin.
Rebasing to merge commits.
2018-05-10 11:41:15 -07:00
jiangtaoli2016 274840e4d3 Migrate SSL_transport_security TSI to new TSI handshaker API 2018-05-09 14:42:48 -07:00
kpayson64 6d6c780ffc Merge remote-tracking branch 'upstream/master' into remove_cleanup_thread 2018-05-03 15:50:56 -07:00
Mehrdad Afshari 2d43a45ad1 Regenerate projects 2018-05-02 22:49:52 -07:00
Mehrdad Afshari e388cdfb63 Regenerate projects 2018-05-02 22:38:37 -07:00
Nathaniel Manista 72a85b1b2d
Merge pull request #15254 from nathanielmanistaatgoogle/12531
Add grpc.Channel.close.
2018-05-02 18:36:46 -07:00
Nathaniel Manista bccd32dafa Add grpc.Channel.close 2018-05-02 23:59:15 +00:00
Nathaniel Manista c955125c32
Merge pull request #15132 from nathanielmanistaatgoogle/12531
Keep Core memory inside cygrpc.Channel objects.
2018-05-02 13:30:05 -07:00
Nathaniel Manista ca7ba4d0ac Keep Core memory inside cygrpc.Channel objects
This removes invocation-side completion queues from the _cygrpc API.
Invocation-side calls are changed to no longer share the same lifetime
as Core calls.

Illegal metadata is now detected on invocation rather than at the start
of a batch (so passing illegal metadata to a response-streaming method
will now raise an exception immediately rather than later on when
attempting to read the first response message).

It is no longer possible to create a call without immediately starting
at least one batch of operations on it. Only tests are affected by this
change; there are no real use cases in which one wants to start a call
but wait a little while before learning that the server has rejected
it.

It is now required that code above cygrpc.Channel spend threads on
next_event whenever events are pending. A cygrpc.Channel.close method
is introduced, but it merely blocks until the cygrpc.Channel's
completion queues are drained; it does not itself drain them.

Noteworthy here is that we drop the cygrpc.Channel.__dealloc__ method.
It is not the same as __del__ (which is not something that can be added
to cygrpc.Channel) and there is no guarantee that __dealloc__ will be
called at all or that it will be called while the cygrpc.Channel
instance's Python attributes are intact (in testing, I saw both in
different environments). This commit does not knowingly break any
garbage-collection-based memory management working (or "happening to
appear to work in some circumstances"), though if it does, the proper
remedy is to call grpc.Channel.close... which is the objective towards
which this commit builds.
2018-05-02 18:24:47 +00:00
kpayson64 701e70da07 c++ify 2018-04-30 17:40:59 -07:00
kpayson64 a0bc0ac169 Remove CleanupThread
This is no longer needed with the addition of a close() API that allows
clean shutdown.
2018-04-30 14:03:47 -07:00
Mark D. Roth 2230d60942 Merge remote-tracking branch 'upstream/master' into c++_subchannel_list 2018-04-20 10:46:03 -07:00
Mehrdad Afshari b3069b095d
Merge pull request #15113 from mehrdada/pylint-tests-1
Eliminate some of the more esoteric pylint suppressions for tests
2018-04-19 11:23:49 -07:00
Mehrdad Afshari 1d74fa6748
Merge pull request #15114 from mehrdada/bump-protobuf-submodule-to-3.5.2
Bump protobuf submodule to 3.5.2
2018-04-19 10:50:44 -07:00
Mehrdad Afshari dd9697fef8 Eliminate broad-except suppression 2018-04-19 10:39:39 -07:00
Mehrdad Afshari 1611946161 Eliminate bare-except suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari 4cc8ea9be1 Eliminate old-style-class suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari fc3bb7c1f9 Eliminate wildcard-import suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari 86d04c2e34 Eliminate function-redefined suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari bc947ada75 Eliminate unnecessary-lambda suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari 4c87620da2 Eliminate undefined-variable suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari a6bf3ccac8 Eliminate non-iterator-returned suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari a7926f9a4c Eliminate undefined-loop-variable suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari 327b3fb6f8 Eliminate raising-bad-type suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari ce8e2fcd16 Eliminate unreachable suppression 2018-04-19 10:39:38 -07:00
Mehrdad Afshari 35c7e8c833 Eliminate bad-continuation suppression 2018-04-19 10:39:37 -07:00
Mehrdad Afshari 8e9baf35bd Bump protobuf runtime dependency versions 2018-04-19 02:07:59 -04:00
kpayson64 7a20c962df Break out qps services into seperate protos 2018-04-18 22:13:09 -07:00
Nathaniel Manista 4d647cf9c1 Fix a use of nonexistent .received_cancelled
.received_cancelled was changed to .cancelled() in
81edf5ff9af2d90813773acb9c2793e1a4cd1057; this change should have been
a part of that change.
2018-04-17 18:58:11 +00:00
Mark D. Roth a63aa993e0 Merge remote-tracking branch 'upstream/master' into c++_subchannel_list 2018-04-10 14:02:26 -07:00
Mehrdad Afshari 90cfc8ed57 Regenerate projects 2018-04-04 14:04:11 -07:00
Nicolas "Pixel" Noble 7d6d2e8bce Removing setsockopt completely actually. 2018-04-04 01:42:00 +02:00
Nicolas "Pixel" Noble 5426183de0 Taking care of gevent. 2018-04-04 00:56:07 +02:00
Mark D. Roth eef0cf6416 Merge remote-tracking branch 'upstream/master' into c++_subchannel_list 2018-04-03 14:55:42 -07:00
kpayson64 51d710273f Fix gevent test flakes 2018-04-02 11:10:31 -07:00
Mark D. Roth 7c1b5db3bb Convert subchannel_list code to C++. 2018-03-30 13:28:56 -07:00
David G. Quintas 07e75a02a0
Merge pull request #14615 from dgquintas/authority_header
Secure channels: use the right authority
2018-03-28 15:44:52 -07:00
kpayson64 c39496540c
Merge pull request #14561 from kpayson64/gevent_2
Initial Gevent Compatibility
2018-03-28 10:04:12 -07:00
kpayson64 1bfff8eec0 Initial gevent support
Because some cpp code ends up leaking into cython, we change
the cython generator to generate cpp code.
2018-03-27 19:44:43 -07:00
kpayson64 0bb2fe946e Explicitly stop servers in unit tests.
Relying on garbage collection to stop servers breaks with gevent.
2018-03-27 19:44:43 -07:00
David Garcia Quintas 158375a440 Merge branch 'master' of github.com:grpc/grpc into authority_header 2018-03-27 14:46:18 -07:00
David Garcia Quintas 49f625f232 more comments 2018-03-27 11:23:49 -07:00
David Garcia Quintas e44efe099d rest of pr comments 2018-03-26 16:23:07 -07:00
apolcyn bd6bdf9327
Merge pull request #13290 from apolcyn/cares_address_sorting_master_c
Add address sorting submodule for use in c-ares wrapper
2018-03-26 14:34:57 -07:00
David Garcia Quintas 811169d62f Merge branch 'master' of github.com:grpc/grpc into authority_header 2018-03-23 22:39:35 -07:00
David Garcia Quintas fa460dcf1d Factor out grpc_add_default_authority_if_not_present 2018-03-23 14:51:41 -07:00
Feng Li 7b2f5775d8 Release the GIL when calling grpc_call_start_batch. 2018-03-23 09:23:51 -07:00
David Garcia Quintas 8824a137b8 Merge branch 'master' of github.com:grpc/grpc into authority_header 2018-03-21 18:27:23 -07:00
Noah Eisen e21c7bfd80
Merge pull request #14765 from grpc/revert-14687-early-ok
Revert "Verify early OK behavior"
2018-03-21 17:39:29 -07:00
David Garcia Quintas 0abc077d45 Merge branch 'master' of github.com:grpc/grpc into authority_header 2018-03-21 17:10:15 -07:00
Noah Eisen dc93b71e53
Merge pull request #14751 from ncteisen/channel-tracing
[Fix Forward]: Channel Tracing Implementation; Part 1
2018-03-21 16:49:12 -07:00
David Garcia Quintas a10634cadc Merge branch 'master' of github.com:grpc/grpc into authority_header 2018-03-21 16:35:36 -07:00
Alexander Polcyn 690dde672a Add address sorting submodule for use in c-ares wrapper 2018-03-20 23:51:19 -07:00
Noah Eisen d2bc0c2609
Revert "Verify early OK behavior" 2018-03-20 15:59:47 -07:00
Ruslan Nigmatullin 99d0cee31b regenerate projects 2018-03-20 09:18:29 -07:00
Ruslan Nigmatullin 7ae3733cab [grpc] Add SSL session client cache support 2018-03-20 09:17:28 -07:00
ncteisen 3b42f83068 Revert "Revert "Channel Tracing Implementation; Part 1""
This reverts commit f2bea3725f.
2018-03-19 13:22:35 -07:00
Noah Eisen f2bea3725f
Revert "Channel Tracing Implementation; Part 1" 2018-03-19 12:05:18 -07:00
ncteisen b93a006d64 Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing 2018-03-15 13:46:28 -10:00
David Garcia Quintas 961353ab6d moved filter to ext 2018-03-15 16:11:05 -07:00
kpayson64 2401c93e07
Merge pull request #14657 from ghostwriternr/reflection-readme
Create README for gRPC Python reflection package
2018-03-15 11:06:29 -07:00
Nathaniel Manista 62170372a7 Remove _face_interface_test
The Beta API has an execution date and RPC Framework is but a distant
memory.

This test is flaky with Python 3.5 on Windows! Some mysteries will just
have to remain unsolved...
2018-03-13 23:50:25 +00:00
Nathaniel Manista f7a8f8ba7c
Merge pull request #14687 from nathanielmanistaatgoogle/early-ok
Verify early OK behavior.
2018-03-13 16:44:11 -07:00
Nathaniel Manista 7726c303a6 Verify early OK behavior
Looks like early OK support was implemented in
https://github.com/grpc/grpc/pull/14080 but
https://github.com/grpc/grpc/issues/7032 was not marked fixed at the
time.

Good thing it was just an idea on our Google Summer of Code ideas
page...
2018-03-13 21:59:54 +00:00
Naresh c6e4372f8a Create README for gRPC Python reflection package
Currently, `warning: sdist: standard file not found` warning is always
printed when creating source distribution for gRPC python reflection
package. This should stop that.
2018-03-13 19:43:43 +00:00
David Garcia Quintas aa843f2bfc Testing making the authority filter a plugin, for cronet 2018-03-13 12:37:11 -07:00
kpayson64 539f5068bd Abstract libuv implementation
Structures the libuv implementation to allow for a plugable
BSD style socket implementation to allow for other IO Managers
2018-03-13 01:21:42 -07:00
David Garcia Quintas c7c0d69d8b Secure channels: use the right authority 2018-03-10 21:32:57 -08:00
Yihua Zhang 04fb58efbd Add ALTS code to grpc/core 2018-03-08 06:49:24 -08:00
Jan Tattermusch a5935917c5
Merge pull request #14629 from jtattermusch/bump_boringssl
Update third_party/boringssl to the latest chromium-stable
2018-03-08 10:44:02 +01:00
Sree Kuchibhotla ae277dd000
Revert "Add ALTS C stack to gRPC core" 2018-03-07 14:35:36 -08:00
kpayson64 b243732f3f
Merge pull request #14448 from kpayson64/remove_poller
Remove Python background poller thread
2018-03-07 14:06:20 -08:00
Jan Tattermusch d606e36061 regenerate projects 2018-03-07 21:21:38 +01:00
ncteisen 0c6024b94d Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing 2018-03-07 10:17:15 -08:00
Yihua Zhang eaf6486677 Add ALTS code to grpc/core 2018-03-06 21:40:45 -08:00
ncteisen e9587db853 Move status util 2018-03-06 08:16:04 -08:00
ncteisen 1cc064dbfc Reviewer feedback, s/object_registry/channel_trace_registry 2018-03-06 08:01:17 -08:00
ncteisen 31c05ba668 reviewer feedback, rename 2018-03-06 07:09:37 -08:00
ncteisen 94dad67f43 Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing 2018-03-02 22:09:52 -08:00
ncteisen 75cf85c9ce Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing 2018-03-01 19:57:24 -08:00
Vijay Pai b357f2f548 Merge branch 'master' into 2phase_thd 2018-03-01 11:48:29 -08:00
Mark D. Roth 718c8341ca Retry support. 2018-02-28 13:00:04 -08:00
Mark D. Roth 3e7f2df047 Convert slice hash table and service config code to C++. 2018-02-26 14:39:26 -08:00
Vijay Pai 8b05d0284f Merge branch 'master' into 2phase_thd 2018-02-24 10:37:13 -06:00
Mehrdad Afshari 9073ea03ef Regenerate projects 2018-02-22 22:21:33 -08:00
Vijay Pai a8453a20d8 Merge branch 'master' into 2phase_thd 2018-02-21 10:24:15 -08:00
Ken Payson a75712a71f Remove Python background poller thread 2018-02-20 18:11:46 -08:00
Yihua Zhang 75f0a9fbd2 place security_connector in its own subdirectory 2018-02-20 10:09:47 -08:00
Vijay Pai da69355f30 C++ize gpr_thread as grpc_core::Thread, make it 2-phase init (construct/Start) 2018-02-19 22:39:58 -08:00
Vijay Pai 58a62755fc Remove support for detached threads. All threads must be joined. 2018-02-15 21:30:13 -08:00
Mehrdad Afshari db04c18289 Clarify add_done_callback works on both success and failure 2018-02-13 11:25:28 -08:00
ncteisen ac86f04373 Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing 2018-02-13 09:27:35 -08:00
Vijay Pai 0693b72b7f Merge branch 'master' into gpr_review 2018-02-08 15:18:13 -08:00
Mark D. Roth 2a073981f3
Merge pull request #13684 from markdroth/c++_resolver
C++ Resolver API
2018-02-08 12:18:55 -08:00
Vijay Pai 18b9133f31 Merge branch 'master' into gpr_review 2018-02-08 12:18:09 -08:00
Vijay Pai 239b7d4b0b Merge branch 'master' into gpr_review 2018-02-08 11:08:41 -08:00
Mark D. Roth 209f644f04 Convert resolver API to C++. 2018-02-08 10:26:46 -08:00
Vijay Pai 32748c1b2a Merge branch 'master' into gpr_review3 2018-02-08 10:06:23 -08:00
Vijay Pai 8f4fbb1c55 Move avl to its own directory and rename it to grpc_avl 2018-02-08 10:04:08 -08:00
Muxi Yan cda058de8e build projects 2018-02-06 18:17:42 -08:00
Muxi Yan 6f0b195d20 Replace GRPC_COMPRESS_MESSAGE_* with GRPC_COMPRESS_* 2018-02-06 18:17:42 -08:00
Mehrdad Afshari b66e6fe761 Sleep a second to deflake ReconnectTest
The thread that watches connectivity on the channel might not
pick up that the server has gone away before the request is
dispatched, and return UNAVAILABLE instead of reconnecting
prior to sending the request.  The fundamental solution would
basically be enabling retries in C-core.  For now, we opt to
sleep a second to deflake this particular test case.
2018-02-06 16:07:32 -08:00
Vijay Pai 4c0640ebd6
Merge branch 'master' into gpr_review3 2018-02-02 09:12:11 -08:00
Vijay Pai e5b0a50416
Merge pull request #14015 from vjpai/alarm
Remove alarm from core, implement in C++ layer only
2018-02-02 08:44:20 -08:00
ncteisen bdb746ec00 Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing 2018-01-29 10:58:59 -08:00
Matt Kwong a110c74c58 Update BoringSSL to latest chromium-stable ref 2018-01-26 18:21:25 -08:00
Nathaniel Manista 16316a9fec
Merge pull request #14107 from nathanielmanistaatgoogle/12531
Elide cygrpc.ChannelArg and cygrpc.ChannelArgs.
2018-01-26 12:59:34 -08:00
Mark D. Roth 77474d46ad
Merge pull request #13820 from yihuazhang/rename-gts
Rename GTS to ALTS for TSI plugin
2018-01-26 08:30:44 -08:00
Nathaniel Manista c73758acb0 Elide cygrpc.ChannelArg and cygrpc.ChannelArgs 2018-01-26 07:09:28 +00:00
Vijay Pai 8a99fdb57e Move cmdline and subprocess from public gpr to test/core/util 2018-01-25 20:11:38 -08:00
ncteisen 99bc5c624d Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing 2018-01-24 16:20:29 -08:00
Muxi Yan fd900e09fb Merge remote-tracking branch 'upstream/master' into fix-stream-compression-config-interface 2018-01-24 16:16:23 -08:00
Yihua Zhang d36fe0708b rename gts to alts 2018-01-23 10:40:45 -08:00
ncteisen 34ebf5dd9e Move object registry out of gpr 2018-01-23 09:10:14 -08:00
ncteisen bd0c019c39 Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing 2018-01-23 08:58:11 -08:00
Vijay Pai 2b226adf60 Remove alarm from core, implement in C++ layer only 2018-01-21 21:03:56 -08:00
Mehrdad Afshari 6615ef5eef Relax call details interface from interceptor
A gRPC Python client interceptor is passed an instance of a class
that implements the ClientCallDetails interface.  The interceptor
can choose to create its own object that implements the interface,
and pass it back to the continuation invoked by the interceptor.

To make it easy to add additional attributes to call details,
without breaking user code that hardcode the attributes required
by the interface, instead of interospecting the object passed
to the interceptor at runtime, and to ease authorship of
interceptors that want to keep some attributes intact and not
care about them, we relax the requirements on the object that
is expected to get passed by the interceptor and let the user
omit some attributes.  Omitted attributes will be replaced
by the original value of the attribute given to the interceptor.
2018-01-21 16:20:47 -08:00
Mehrdad Afshari 43884047c9 Regenerate projects 2018-01-19 14:25:15 -08:00
Muxi Yan 19b4feaee7 Update surface API in cython pxi 2018-01-19 12:22:24 -08:00
Muxi Yan fb061c329a Merge remote-tracking branch 'upstream/master' into fix-stream-compression-config-interface 2018-01-19 12:20:15 -08:00
Mark D. Roth dbdf495f61 Split lib/support into lib/gpr and lib/gpr++. 2018-01-18 11:21:12 -08:00
Mehrdad Afshari f2a33b0e39 Reformat Python docstrings 2018-01-17 18:13:26 -08:00
kpayson64 e1e562eb17
Merge pull request #13965 from evanj/python-abort-fix
python: Context.abort should fail RPC even for StatusCode.OK
2018-01-12 17:09:43 -08:00
Evan Jones 145b199c4d python: Context.abort should fail RPC even for StatusCode.OK
grpc.ServicerContext.abort is documented to always raise an exception
to terminate the RPC. The code argument "must not be StatusCode.OK."
However, if you do pass StatusCode.OK, the RPC terminates successfully
on the client side, but returns None.

_server.py: If the user accidentally passes StatusCode.OK, treat it as
    StatusCode.UNKNOWN. This is what happens if the user accidentally
    passes something that is not a StatusCode instance. Additionally
    set details to ''.

_metadata_code_details_test.py: update test to verify the behavior of
    abort with invalid codes.
2018-01-12 18:20:55 -05:00
Nathaniel Manista 31ddbff8cf Elide cygrpc.Timespec 2018-01-10 22:58:00 +00:00
ncteisen b04efac6a5 Merge branch 'master' of https://github.com/grpc/grpc into channel-tracing 2018-01-09 13:49:37 -08:00
Mehrdad Afshari 87cd994b04 Upgrade yapf to 0.20.0
Upgrade yapf version to 0.20.0 and reformat Python files.
2018-01-02 14:40:00 -08:00
Nathaniel Manista e1d592a999
Merge pull request #13891 from nathanielmanistaatgoogle/12531
Reform cygrpc.OperationTag and cygrpc.Event.
2017-12-31 17:11:26 -08:00
Mehrdad Afshari c71c6a7f3d Merge branch v1.8.x into master
Upmerge v1.8.3 into master
2017-12-31 14:10:01 -08:00
Nathaniel Manista 7b9c023391 Reform cygrpc.OperationTag and cygrpc.Event
Rather than single classes they are now broken up into class families
with each class containing only those fields and methods that are
needed in the context in which the class is used.
2017-12-31 20:43:58 +00:00
Mehrdad Afshari 6c9a0a1a96 Bump version to 1.8.3 2017-12-30 18:28:13 -08:00
ncteisen 7d9b6358b5 Initial commit
Picks up work from https://github.com/grpc/grpc/pull/10259.
A merge was impossible due to the many sweeping changed that
have occured since I last touched that PR (c++-ization, exec_ctx,
reorganitation of filters, etc).
2017-12-28 15:09:17 -08:00
Nathaniel Manista 81edf5ff9a Reform cygrpc.Operation
It is now a family of classes conforming to an interface rather than a
single class no single instance of which makes use of all behavior
scoped to the class.

It also now only uses gRPC Core memory for the time of a single batch
rather than for the entire lifetime of the instance.
2017-12-21 19:31:15 +00:00
Mehrdad Afshari 271b042c4d Fix port picking logic in Python tests 2017-12-20 22:51:02 -08:00
kpayson64 247a05e4b3
Merge pull request #13843 from kpayson64/fix_python_tests
Disable so_reuseport for Python tests
2017-12-20 14:21:04 -08:00
Ken Payson 3bc8e422dc Disable so_reuseport for Python tests 2017-12-20 13:02:00 -08:00
Ken Payson 16e4bc010a Bump to 1.8.2 2017-12-19 17:29:04 -08:00
Mehrdad Afshari 0981f9fab1 Bump version to 1.8.1 2017-12-14 15:14:23 -08:00
Mehrdad Afshari 5b6b591343
Merge pull request #13789 from grpc/v1.8.x
Upmerge changes from v1.8.x to master
2017-12-14 13:56:36 -08:00
kpayson64 f5649c7e96
Merge pull request #13786 from kpayson64/fix_python_server_race
Fixes race condition in Python server shutdown
2017-12-14 13:11:35 -08:00
Ken Payson 8179b9523a Fixes race condition in Python server shutdown
When we set the call state to "CANCELLED" after
grpc_cancel_all_calls, we would block other start batch
operations from happening. The rpc_state for the cancelled
call would still be in the server's rpc_states set, but it
would never get removed because there were no active batches
for the call, and the only place we remove from rpc_states is
when a batch completes.

It is better to rely on c-core's cancellation. Once a call
is cancelled, all subsequent ops on that call will return
immediately with a cancellation error.

The RLock() change is due to the possibility that
_on_call_completed
gets invoked immediately when the call has already completed when the
rpc_future callback is created.
2017-12-14 12:07:07 -08:00
Nathaniel Manista e1c4021726 Reallow out-of-spec metadata
This restore unsupported, de facto behavior that was dropped in
80516e884a but that it turns out a lot of folks
have been using.
2017-12-14 18:52:37 +00:00
Muxi Yan 032e9b32dc Merge remote-tracking branch 'upstream/master' into fix-stream-compression-config-interface 2017-12-13 14:04:45 -08:00
Mehrdad Afshari 0ba96edc41 v1.8.0-pre2 is now v1.8.0 2017-12-12 14:01:25 -08:00
Mehrdad Afshari fdfaf1b12e Add tests for gRPC Python interceptor machinery 2017-12-12 12:01:07 -08:00
Mehrdad Afshari 108500f194 Add gRPC Python client-side interceptor machinery 2017-12-12 12:01:07 -08:00
Mehrdad Afshari 68e1978e9e Add gRPC Python service-side interceptor machinery 2017-12-12 12:01:02 -08:00
Muxi Yan c870ce5476 More message compression level clean-up 2017-12-11 15:53:22 -08:00
Mehrdad Afshari c5ba665b22 Merge remote-tracking branch 'origin/v1.8.x' 2017-12-11 11:32:11 -08:00
ncteisen 138ee78529 yapf grpcio_tests 2017-12-11 16:32:31 -08:00
ncteisen e2097f0cc9 yapf-ize grpc_testing 2017-12-11 16:27:29 -08:00
ncteisen 0f6c518e3c yapf-ize grpcio_reflection 2017-12-11 16:22:30 -08:00
ncteisen d258430bc3 yapf-ize grpcio_health_checking 2017-12-11 16:16:20 -08:00
ncteisen 128366374f Yapf-ize grpcio/grpc_.py 2017-12-11 16:14:24 -08:00
Mehrdad Afshari b0afa016cb Refactor: Rename call to response_iterator_call
Rename call to response_iterator_call file-wide for response-streaming tests.
2017-12-10 06:32:13 -08:00
Mehrdad Afshari 90ab995cb0 Tests for ServicerContext.abort 2017-12-10 20:45:18 -08:00
Mehrdad Afshari 9bc44e3829 Introduce ServicerContext.abort to abort an RPC
gRPC Python required RPCs terminating with non-OK status code to still
return a valid response value after calling set_code, even though the
response value was not supposed to be communicated to the client, and
returning None is considered a programming error.

This commit introduces an alternative mechanism to terminate RPCs by
calling the `abort` method on `ServicerContext` passed to the handler,
which raises an exception and signals to the gRPC runtime to abort the
RPC with the specified status code and details.
2017-12-10 20:45:13 -08:00
Nathaniel Manista d14035c55a
Merge pull request #13688 from nathanielmanistaatgoogle/12531
Elide cygrpc.Operations.
2017-12-08 14:40:37 -08:00
Muxi Yan 99024d6436 Merge remote-tracking branch 'upstream/master' into fix-stream-compression-config-interface 2017-12-08 14:02:18 -08:00
Nathaniel Manista c5c1216a65 Elide cygrpc.Operations 2017-12-08 20:55:15 +00:00
Nathaniel Manista 5cff6d3c2d
Merge pull request #13672 from nathanielmanistaatgoogle/12531
Streamline metadata in gRPC Python.
2017-12-08 10:50:22 -08:00
Nathaniel Manista 80516e884a Streamline metadata in gRPC Python 2017-12-08 11:07:35 +00:00
Yash Tibrewal caaf416eba virtual destructor in exec_ctx, remove unneeded flush in grpc_shutdown and remove grpc_exec_ctx from .pxi files in python 2017-12-07 21:09:11 -08:00
Nathaniel Manista ae74a320dc Fix Beta API metadata looseness 2017-12-08 03:02:32 +00:00
Muxi Yan 6043006af1 Merge remote-tracking branch 'upstream/master' into fix-stream-compression-config-interface 2017-12-06 22:29:12 -08:00
Muxi Yan fc38142db6 Merge commit 'b0bad8f^' into fix-stream-compression-config-interface 2017-12-06 22:02:08 -08:00
Muxi Yan 4a117f0be7 Merge e759d2a^ 2017-12-06 18:47:16 -08:00
Mehrdad Afshari aaf63d9277 Upmerge changes from v1.8.x to master 2017-12-05 10:01:41 -08:00