Commit Graph

11847 Commits

Author SHA1 Message Date
Soheil Hassas Yeganeh 3bcae1e368 Apply do {...} while(0) to the remaining macros. 2019-05-08 12:26:44 -04:00
Yash Tibrewal 6cba63eb47 reviewer comments and tests 2019-05-08 03:36:37 -07:00
yang-g 218e290074 Merge with head and resolve conflict 2019-05-07 22:46:45 -07:00
Soheil Hassas Yeganeh 2ade64a685 Use grpc_core::RefCount for grpc_call and mark Unref path unlikely.
Unfortunately, we cannot use RefCount for `batch`, unless we support
reset API. So, for now, let's mark its unref path as unlikely.
2019-05-07 22:21:52 -04:00
Soheil Hassas Yeganeh 70d5e5af17 Introduce GRPC_TRACE_FLAG_ENABLED macro to mark trace branches unlikely.
This is a trivial change and results in better code generation,
because it marks the trace path unlikely.

The changes are all mechanical, except I did some minor edits in
two macros in call_stack.h and http to apply best practices.
2019-05-07 22:08:44 -04:00
Yash Tibrewal fb8973722b Reviewer comments 2019-05-07 16:42:00 -07:00
yang-g 08e251a23a resolve comments 2019-05-07 15:21:16 -07:00
yang-g 0958ed32a5 Resolve review comments 2019-05-07 15:21:16 -07:00
yang-g 7cab9c7811 Remove fd from pollset when releasing the fd 2019-05-07 15:21:16 -07:00
yang-g 68b5260b74 Resolve comments 2019-05-07 14:33:51 -07:00
Yash Tibrewal 8030e12624 Add more tests for service config state transitions 2019-05-07 03:57:56 -07:00
Yash Tibrewal aa0a26cdbc Do not save service config in DNS resolver 2019-05-07 00:03:43 -07:00
Soheil Hassas Yeganeh 1b23280277
Merge pull request #18925 from soheilhy/http2-compression
Use compress and decompress slice_buffers only when they are needed.
2019-05-06 22:48:24 -04:00
yang-g 152a7cc122 Resolve comments 2019-05-06 15:42:18 -07:00
Alexander Polcyn d5fb6da369 Revert "Use aligned_alloc directly for grpc_core::Arena"
This reverts commit 333ba8feae.
2019-05-06 15:24:21 -07:00
Alexander Polcyn cb966a4e5e Revert "Renamed macros for memory alignment"
This reverts commit a3fe7c0c90.
2019-05-06 15:24:09 -07:00
Alexander Polcyn 0562b51f8e Revert "Fixed non-debug build warning"
This reverts commit e1a96b8347.
2019-05-06 15:23:54 -07:00
Alexander Polcyn b7c6ef0225 Revert "Use platform align_malloc function when setting custom allocators and no override provided"
This reverts commit 22c6e166c4.
2019-05-06 15:23:41 -07:00
Soheil Hassas Yeganeh 29aa8a9e59 Check count instead of length in maybe_embiggen() to reset the slice pointer.
add_tiny overrides the length before calling maybe_embiggen(). Generally
using count as a signal for emptiness is more reliable.
2019-05-06 16:36:10 -04:00
Soheil Hassas Yeganeh b3436d76d9 Remove unnecessary new lines. 2019-05-06 15:37:22 -04:00
SataQiu 09be62f8b2 fix some spelling mistakes 2019-05-06 16:07:36 +08:00
Soheil Hassas Yeganeh 1ef80f46bd
Merge pull request #18953 from soheilhy/ref-fix
Avoid copy on slice_ref.
2019-05-03 19:31:26 -04:00
Yash Tibrewal 587ae4a2d9 Fix existing tests 2019-05-03 15:40:39 -07:00
Soheil Hassas Yeganeh 93dc228a8a Avoid copy on slice_ref.
This was accidentially added in PR #18407
2019-05-03 16:47:16 -04:00
Esun Kim 0217450e2c Sanitized some sources 2019-05-03 10:05:32 -07:00
Yash Tibrewal 71085f3e3b Changes 2019-05-02 18:21:52 -07:00
Yash Tibrewal db1ccad039 Service Config Changes to set channel in transient failure on invalid service config 2019-05-02 18:03:02 -07:00
Soheil Hassas Yeganeh d37a1ba57d
Merge pull request #18932 from soheilhy/slicebuffer-reset
Reset slices pointer to base_slices when slice_bufer length is 0.
2019-05-02 17:10:52 -04:00
Michael Lumish 95a4a0ef76
Merge pull request #18809 from murgatroid99/cares_libuv
Add cares glue for libuv event loop
2019-05-02 13:43:52 -07:00
Soheil Hassas Yeganeh 1f0476267b Add a better comment and rename consume_first to remove_first. 2019-05-02 14:07:06 -04:00
Soheil Hassas Yeganeh e26af33726
Merge pull request #18927 from soheilhy/transport-error
Add a fast path in grpc_error_get_status() for GRPC_ERROR_NONE.
2019-05-02 13:34:03 -04:00
Soheil Hassas Yeganeh 926bbe3a2e Add a fast path in grpc_error_get_status() for GRPC_ERROR_NONE.
In most of the cases, as we hope, RPCs shouldn't have errors.
But, in grpc_error_get_status() we treat GRPC_ERROR_NONE
similar to other errors, and waste quite a few cycles.

This patch is part of a larger performance improvements.
On client side, this particular code path accounts for 0.5%+.
2019-05-01 16:51:07 -04:00
Soheil Hassas Yeganeh b3fb277da6 Reset slices pointer to base_slices when slice_bufer length is 0.
Currently, we keep increasing the slice pointer, and
can run out of the inline space or try to realloc the
non-inline space unncessarily.

Simply set slices back to the start of the base_slices,
when we know the length of the slice_buffer is 0.

Note: This will change the behavior of undo_take_first(),
      if user tries to grow the slie_buffer, between take_first()
      and undo_take_first() calls. That said, it's not legal
      to add something to the buffer in between take_first()
      and undo_take_first(). So, we shouldn't have any issue.
2019-05-01 13:52:58 -04:00
Soheil Hassas Yeganeh f5f030e675 Use end - begin instead of GRPC_SLICE_LENGTH(). 2019-05-01 13:42:16 -04:00
Lidi Zheng 929ca006ea
Merge pull request #18920 from lidizheng/fix-doc
Tiny fix for combiner comment
2019-05-01 10:10:36 -07:00
Esun Kim ccf4734907
Merge pull request #18799 from veblush/config
New config system & migration sample
2019-05-01 09:01:35 -07:00
yang-g abd97b9170 Merge with head and resolve conflict 2019-04-30 23:01:01 -07:00
yang-g 1775faa595 Fix epoll1 for release fd 2019-04-30 22:51:09 -07:00
Soheil Hassas Yeganeh 4c0c2965fe Use peek_first instead of mutable_first.
Use DEBUG_ASSERT instead of ASSERT.
2019-04-30 22:20:06 -04:00
Arjun Roy 238fef6571
Merge pull request #18875 from arjunroy/arena_aligned_alloc_direct
Use aligned_alloc directly for grpc_core::Arena
2019-04-30 16:59:38 -07:00
Esun Kim 1518ecbd76 Added new configuration system to core/grp.
More generic configuration system is introduced in order to i) unify the
way how modules access the configurations instead of using low-level
get/setenv functions and ii) enable the customization for where configuration
is stored. This could be extended to support flag, file, etc.

Default configuration system uses environment variables as before so
basically this is expected to work just as it did. This behavior can
change by redefining GPR_GLOBAL_CONFIG_DEFINE_*type* macros.

* Migrated configuration

GRPC_CLIENT_CHANNEL_BACKUP_POLL_INTERVAL_MS
GRPC_EXPERIMENTAL_DISABLE_FLOW_CONTROL
GRPC_ABORT_ON_LEAKS
GRPC_NOT_USE_SYSTEM_SSL_ROOTS
2019-04-30 15:49:24 -07:00
Soheil Hassas Yeganeh 5538bb8143 Use compress and decompress slice_buffers only when they are needed.
Compression is not used for performance senstiive RPCs, yet
chttp2 always moves buffers in/out of the compressed/decmpressed
buffers. Even initilizing them is costly.

Use the (de)compression buffer and state only when we are using
non-identity compression.

This is part of a larger performance change, and this one buys us 1%-2%
depending on the benchmark.
2019-04-30 18:39:29 -04:00
Soheil Hassas Yeganeh fd5f787080 Introduce slice_buffer helper methods to avoid copies.
take_first(), grpc_undo_first(), ... are very clostly
methods that unnecessarily copy grpc_slice with extra
ref counting requirements.

Introduce alternatives to avoid copies and refs wherever
possible.

This results in 1% improvements in the benchmarks.
2019-04-30 18:38:29 -04:00
Soheil Hassas Yeganeh 01d58cde23
Merge pull request #18921 from soheilhy/tcp-closure-init
Initialize TCP write and error closures only once.
2019-04-30 17:07:09 -04:00
yang-g ac3a91edf8 Support accepting external connections. 2019-04-30 12:31:34 -07:00
Arjun Roy 22c6e166c4 Use platform align_malloc function when setting custom allocators and no override provided 2019-04-30 11:52:29 -07:00
Arjun Roy dc148b6a30 Fix regression where we do not properly account for freed interned metadata. 2019-04-30 11:47:08 -07:00
Lidi Zheng 058e90ef16 Tiny fix for combiner comment 2019-04-30 11:34:44 -07:00
Soheil Hassas Yeganeh 714a13c193 Initialize TCP write and error closures only once.
We are initializing the closures in the hot path on every event.
2019-04-30 14:18:09 -04:00
Arjun Roy e1a96b8347 Fixed non-debug build warning 2019-04-29 15:40:11 -07:00
Arjun Roy a3fe7c0c90 Renamed macros for memory alignment 2019-04-29 15:38:41 -07:00
Arjun Roy 333ba8feae Use aligned_alloc directly for grpc_core::Arena 2019-04-29 15:37:17 -07:00
Arjun Roy 9c882bc725
Merge pull request #18894 from arjunroy/arena_create_alloc_coalesce
Coalesce arena create/first alloc for grpc_call.
2019-04-29 15:34:41 -07:00
Arjun Roy ed43236377 Coalesce arena create/first alloc for grpc_call. 2019-04-29 12:07:37 -07:00
Soheil Hassas Yeganeh e74bde7702
Merge pull request #18899 from soheilhy/grpc-fix-h2-typo
Fix a typo in chttp2 stream initialization.
2019-04-29 14:16:47 -04:00
Jan Tattermusch 7820b44c20
Merge pull request #18060 from frazenshtein/master
Pass WSA_FLAG_NO_HANDLE_INHERIT flag to the WSASocketA() to avoid handle leaking on the Windows in case of using CreateProcess() on the server
2019-04-29 19:09:41 +02:00
Soheil Hassas Yeganeh 069547e944 Fix a typo in chttp2 stream initialization.
Found this during performance optimizations. We always reinitialize
this to the correct value, so this wasn't caught in tests.
2019-04-28 17:14:05 -04:00
Arjun Roy 664d4d984b Removed gpr_atm from UserData 2019-04-26 18:23:15 -07:00
Arjun Roy b779a954b1 Inlined md_ref/unref and saved some unnecessary ops 2019-04-26 16:07:58 -07:00
murgatroid99 9f3c78177f Resolve final comments 2019-04-26 15:40:53 -07:00
Yash Tibrewal 6fac033568
Merge pull request #18746 from yashykt/svc_cfg2
Service config changes Part 2
2019-04-26 15:27:39 -07:00
Yash Tibrewal 5ff8df71d4 Add default constructor back to optional 2019-04-26 13:41:30 -07:00
Yang Gao 9e0f3b475e
Merge pull request #18869 from yang-g/init_test
Start tcp servers in place without sending them to executor
2019-04-26 13:40:40 -07:00
Yash Tibrewal 79c3990d50 Move declaration order to how it was earlier in optional, and if check for uri 2019-04-26 13:17:44 -07:00
Yash Tibrewal d3035a3d5f Revert changes to optional 2019-04-26 12:38:36 -07:00
Yash Tibrewal b476a30e69 Merge branch 'master' into svc_cfg2 2019-04-26 11:43:12 -07:00
Yash Tibrewal 73dbdccc5d Reviewer comments and cleanup 2019-04-26 11:42:48 -07:00
Yash Tibrewal a2cea50402
Merge pull request #18874 from yashykt/atleast
s/atleast/at\ least
2019-04-26 10:46:51 -07:00
Arjun Roy 887ef819a7
Merge pull request #18857 from arjunroy/memset_remove
Removed some unnecessary memset operations in core.
2019-04-25 17:34:00 -07:00
Yash Tibrewal 9345b7e276 s/atleast/at\ least 2019-04-25 17:15:30 -07:00
Yash Tibrewal 1214dff100 Clean up 2019-04-25 17:07:38 -07:00
Yash Tibrewal 156d743c37 Reviewer comments 2019-04-25 16:38:10 -07:00
Arjun Roy cf9301f964 Removed some unnecessary memset operations in core. 2019-04-25 13:59:10 -07:00
murgatroid99 e457584c05 Address comments 2019-04-25 11:07:36 -07:00
yang-g 9cac231163 Inline start the tcp servers 2019-04-25 09:07:27 -07:00
Arjun Roy 4fa4f8e74b
Merge pull request #18786 from arjunroy/arena_shrink
Shrink arena size by 40 bytes and cache align.
2019-04-24 21:48:25 -07:00
Yash Tibrewal 71ecf17eb7 clang tidy 2019-04-24 17:31:29 -07:00
Yash Tibrewal f7c8e8be62 clang tidy 2019-04-24 16:51:59 -07:00
Arjun Roy 8ce42f67b2 Shrink arena size by 40 bytes and add additional
alignment options (for cache-alignment).

We shrink by:
1) Removing an unnecessary zone pointer.
2) Replacing gpr_mu (40 bytes when using pthread_mutex_t) with
std::atomic_flag.

We also header-inline the fastpath alloc (ie. when not doing a zone
alloc) and move the malloc() for a zone alloc outside of the mutex
critical zone, which allows us to replace the mutex with a spinlock.

We also cache-align created arenas.
2019-04-24 16:39:03 -07:00
Yash Tibrewal 51fd073b7c Don't add API to Optional 2019-04-24 16:17:32 -07:00
Yash Tibrewal a045170818 Merge branch 'master' into svc_cfg2 2019-04-24 15:45:16 -07:00
Yash Tibrewal a2316142b2 Reviewer comments 2019-04-24 15:29:46 -07:00
Jan Tattermusch 59ccf3f12b
Merge pull request #18846 from jtattermusch/upmerge_1_20_x
Upmerge changes from v1.20.x to master
2019-04-24 21:22:11 +02:00
murgatroid99 2fa5759d79 Fix missing include in windows file 2019-04-24 09:41:18 -07:00
Mark D. Roth ad7ccf6f6b
Merge pull request #18596 from markdroth/c++_call_combiner
Convert call_combiner to C++.
2019-04-24 06:53:38 -07:00
Jan Tattermusch 8c5e4367ef Merge remote-tracking branch 'upstream/v1.20.x' into HEAD 2019-04-24 03:08:12 -04:00
Yash Tibrewal 7ee19a0b6b Reviewer comments - mainly make ParsedLoadBalancingConfig refcounted 2019-04-23 18:14:03 -07:00
Juanli Shen 438cb44378 Add fallback-at-startup into xds 2019-04-23 17:06:23 -07:00
rmstar 07f5c11748
Merge pull request #18806 from rmstar/cronet_trace
Add trace flag in cronet transport
2019-04-23 16:30:07 -07:00
murgatroid99 634cece3f3 Fix sanity tests 2019-04-23 15:51:53 -07:00
murgatroid99 33722ff1c6 Put callback behind a combiner, cancel callbacks in shutdown 2019-04-23 15:31:30 -07:00
Mark D. Roth ce3ff86763 Convert call_combiner to C++. 2019-04-23 15:27:06 -07:00
Prashant Jaikumar f36e08e6dd Add trace flag in cronet transport 2019-04-23 14:09:52 -07:00
Arjun Roy abf75e2cd7
Merge pull request #18807 from arjunroy/md_eq_static
Fast-pathed grpc_mdelem_eq for known static cases.
2019-04-23 14:03:42 -07:00
Yash Tibrewal edd817a46f Reviewer comments 2019-04-23 12:10:08 -07:00
Karthik Ravi Shankar 4f4476e00f Make the exector to LONG from SHORT 2019-04-23 10:17:13 -07:00
Jan Tattermusch 9af9f11760 Revert "Enable SIO_LOOPBACK_FAST_PATH on Windows"
This reverts commit f5f5ee31a2.
2019-04-23 08:19:41 +02:00
Yash Tibrewal 4309a98b66 Health checking service name to be passed as a channel arg for now 2019-04-22 21:18:47 -07:00
Yash Tibrewal 70839d966f Reviewer comments 2019-04-22 19:12:11 -07:00
murgatroid99 dc1bcf8762 Consolidate helper function from windows and libuv 2019-04-22 17:31:55 -07:00
Muxi Yan 6d0a7936bf
minor fix in CFStream 2019-04-22 14:19:20 -07:00
SataQiu bca4a6db2c fix some spellings mistakes 2019-04-21 11:07:21 +08:00
Yash Tibrewal baa52808f1 Use a single copy of CreateErrorFromVector from ServiceConfig 2019-04-19 15:46:16 -07:00
Yash Tibrewal 07e899f5f3 Separate out message size parsing into a different file to avoid build issues 2019-04-19 14:15:59 -07:00
Arjun Roy ffb0b63b59
Merge pull request #18407 from arjunroy/slice_ref_devirt
grpc_slice_refcount devirtualization
2019-04-19 14:03:19 -07:00
Karthik Ravi Shankar 56e34854ca Fix review comments and clang fixes. 2019-04-19 13:52:55 -07:00
Karthik Ravi Shankar d243f3dbe3 Merge branch 'master' into callback-rpc-lock 2019-04-19 12:59:04 -07:00
Karthik Ravi Shankar 72312daadf Move callback-based API to use Executors over ApplicationExecutionCtx 2019-04-19 12:57:32 -07:00
Yash Tibrewal 3b65effb82 Cleanup 2019-04-19 12:42:40 -07:00
Arjun Roy 7d946633ea grpc_slice_refcount devirtualization 2019-04-19 12:20:26 -07:00
Soheil Hassas Yeganeh 4080e7b65f Retire the GRPC_ARENA_INIT_STRATEGY env variable.
This is in the hot path and it is not needed anymore.
Remove it for good.
2019-04-19 12:20:26 -07:00
Arjun Roy e9a79f928c Address initial comments 2019-04-19 12:13:24 -07:00
Arjun Roy 4e24b0e4dc Bugfix - fixed assumptions 2019-04-19 12:13:24 -07:00
Arjun Roy 7f42728fd9 Fast-pathed grpc_mdelem_eq for known static cases. 2019-04-19 12:13:24 -07:00
Yash Tibrewal e770694c31 Merge branch 'master' into svc_cfg2 2019-04-19 11:55:21 -07:00
Yash Tibrewal 1ab9ffe5c0 Do not add message size filter for minimal stack 2019-04-19 11:34:19 -07:00
murgatroid99 a36040d51c Clang format 2019-04-19 10:25:45 -07:00
Moiz Haidry d48b0d2879 Created consolidated xds picker that stored and picks from the locality pickers 2019-04-19 10:01:50 -07:00
murgatroid99 2f2899203b Make cares resolver opt-in with libuv 2019-04-19 09:41:23 -07:00
Mark D. Roth c827d1e163
Merge pull request #18490 from markdroth/c++_client_channel_call_data
Convert client_channel call_data to C++
2019-04-19 09:29:07 -07:00
Mark D. Roth a09d705dbf Convert client_channel call_data to C++. 2019-04-19 08:02:54 -07:00
Yash Tibrewal c3ae72c089 Merge branch 'master' into svc_cfg2 2019-04-19 00:43:32 -07:00
Yash Tibrewal 576828696a Add parsing tests 2019-04-18 23:57:10 -07:00
Yash Tibrewal 116ce0fb24 Use health check parser 2019-04-18 23:57:10 -07:00
Yash Tibrewal 2c4c8438cc Message size filter parser and health check parser 2019-04-18 23:56:54 -07:00
Yash Tibrewal 813865acaf Adding service config parser 2019-04-18 23:56:40 -07:00
murgatroid99 a84d188021 Don't use 'new' or 'delete' 2019-04-18 17:45:36 -07:00
murgatroid99 41871bf7de Add cares glue for libuv event loop 2019-04-18 17:08:51 -07:00
Lidi Zheng fc2376e239
Merge pull request #18793 from lidizheng/fix-clang-tidy
Cleanup Clang Tidy errors
2019-04-18 11:01:59 -07:00
Soheil Hassas Yeganeh bc445360ab
Merge pull request #18797 from soheilhy/memset-envvar
Retire the GRPC_ARENA_INIT_STRATEGY env variable.
2019-04-17 17:24:39 -04:00
Soheil Hassas Yeganeh 212e4b8657 Retire the GRPC_ARENA_INIT_STRATEGY env variable.
This is in the hot path and it is not needed anymore.
Remove it for good.
2019-04-17 15:26:07 -04:00
Lidi Zheng 0d9b4212f8 Cleanup Clang Tidy errors 2019-04-17 11:41:22 -07:00
Soheil Hassas Yeganeh 2b9448a71c Revert "Revert "Introduce C++ wrappers for gpr_mu and gpr_cv.""
This reverts commit d09c9f8e20.
2019-04-17 14:35:29 -04:00
Lidi Zheng 0de83950e6
Merge pull request #18782 from lidizheng/rf-gevent
Revert "Revert "Merge pull request #18547 from lidizheng/fix-gevent""
2019-04-16 16:13:42 -07:00
Lidi Zheng 123fd943f1 Revert "Revert "Merge pull request #18547 from lidizheng/fix-gevent""
This reverts commit a922bd7a03.
2019-04-16 14:13:04 -07:00
Yihua Zhang ef4508ca0d fix memory leaks in ssl credential reload. 2019-04-16 11:09:30 -07:00
Mark D. Roth 62d9be1533
Merge pull request #18631 from markdroth/pare_down_channel_args_api
Move functions for individual args out of channel_args.{h,cc}.
2019-04-16 07:11:33 -07:00
Mark D. Roth 38220243b0 Convert client_channel channel_data to C++. 2019-04-15 14:18:09 -07:00
Mark D. Roth 63777c714f
Merge pull request #18628 from markdroth/remove_error_from_connectivity_state_tracker
Remove error from connectivity state tracking.
2019-04-15 14:05:25 -07:00
Mark D. Roth 432c97e1ba Remove error from connectivity state tracking. 2019-04-15 13:14:19 -07:00
Richard Belleville a922bd7a03 Revert "Merge pull request #18547 from lidizheng/fix-gevent"
This reverts commit 09d1011663, reversing
changes made to e076a30f16.
2019-04-15 12:47:50 -07:00
Juanli Shen 01cd1585f7
Merge pull request #18677 from AspirinSJL/fix_error_msg
Fix error message upon pick failure
2019-04-15 09:14:36 -07:00
Jan Tattermusch 1d9e442b4d
Merge pull request #18707 from SataQiu/fix-repeated-words
Clean up repeated words
2019-04-15 13:37:09 +02:00
Lidi Zheng 09d1011663
Merge pull request #18547 from lidizheng/fix-gevent
Fix gevent segfault with C-Ares as DNS resolver
2019-04-12 16:30:22 -07:00
Lidi Zheng 5721c518d9 Add DNS resolver test & Disable C-Ares for custom iomgr 2019-04-12 14:44:37 -07:00
Alexander Polcyn 1ed8b62508 Revert "Update upb-generated code for xds api"
This reverts commit cebc65b947.
2019-04-12 11:59:57 -07:00
Nicolas Noble f03d392518
Merge pull request #18729 from beasleyr-vmw/topic/beasleyr-vmw/grpc-glibc-pre-217
include linux/tcp.h on Linux pre-glibc 2.17
2019-04-12 10:40:36 -07:00
vishalpowar da818e887f
Merge pull request #18733 from vishalpowar/update_upb_submodule
Update the upb submodule for proto.oneof fix in generated code.
2019-04-12 10:06:31 -07:00
Vishal Powar cebc65b947 Update upb-generated code for xds api 2019-04-11 21:59:17 -07:00
Alexander Polcyn d09c9f8e20 Revert "Introduce C++ wrappers for gpr_mu and gpr_cv."
This reverts commit a26c09dd25.
2019-04-11 16:52:54 -07:00
Ryan Beasley d47f2d5cc9 include linux/tcp.h on Linux pre-glibc 2.17
Bazel 0.24.0 upgraded grpc from 1.13.0 to 1.18.0, and the latter makes use of
the TCP_USER_TIMEOUT socket option.  Problem:  grpc conditions the option on
the Linux kernel version but sources the option from glibc's `netinet/tcp.h`.
glibc != Linux kernel, and that option wasn't imported to glibc until 2.17.

We can't just build Bazel with glibc 2.17 because we still have to support
CentOS 6 dev nodes which ship with glibc 2.12.  So instead this change
tweaks the grpc headers to conditionally include <linux/tcp.h> instead of
<netinet/tcp.h>.

Resolves https://github.com/grpc/grpc/issues/18728.
2019-04-11 13:35:26 -07:00
Muxi Yan f371fce887 Remove previous fix proposal proved to be wrong 2019-04-10 16:20:31 -07:00
Muxi Yan bec72481b5 Fix thread safety issue 2019-04-10 16:19:13 -07:00
vishalpowar 894c4b1852
Merge pull request #18529 from vishalpowar/xds_lrs_code_gen
Add upb generated code and build rule for lrs protocol.
2019-04-10 13:22:42 -07:00
SataQiu 44f92cdd17 clean up repeated words 2019-04-10 16:25:25 +08:00
Nicolas Noble 58c894fb9e
Merge pull request #18694 from abmahdy/master
Disable Nagle algorithm in Windows
2019-04-09 23:55:41 -07:00
Yash Tibrewal 2378ddcd51 Add service config to call context 2019-04-09 22:23:10 -07:00
Yash Tibrewal aa908cdd8d
Merge pull request #18556 from yashykt/unixpath
Explicitly call getsockname after accept for unix sockets to get the sun_path
2019-04-09 15:04:52 -07:00
Vishal Powar df3d5bc8f7 Add upb generated code and build rule for lrs protocol. 2019-04-09 12:03:21 -07:00
Yash Tibrewal 2b7cab0d41 Remove check on error 2019-04-09 11:37:59 -07:00
Ahmed Mahdy b4e94b652d Fix formatting 2019-04-09 10:05:53 -07:00
Yash Tibrewal 917d025f03 Fix diff between num_entries and idx of path 2019-04-09 09:39:42 -07:00
Yash Tibrewal 74540483c6 Merge branch 'master' into svc_cfg1 2019-04-08 19:51:45 -07:00
Yash Tibrewal 960864736b Unref errors in test 2019-04-08 19:51:20 -07:00
Ahmed Mahdy 1dce1009e6 Disable Nagle algorithm in Windows 2019-04-08 16:58:15 -07:00
Soheil Hassas Yeganeh a26c09dd25 Introduce C++ wrappers for gpr_mu and gpr_cv.
Introduce RAII wrappers in the grpc::internal and grpc_core
namespaces, and use them in place of std::mutex and
std::condition_variable.

Note that, since std::mutex is also used by the public
C++ headers we cannot introduce these wrappers in grpc_core.

Also, note that in grpcpp we cannot use gRPC core and vice versa.
So we had to duplicate the code, once using core_codegen_interface
and once using direct calls.
2019-04-08 18:27:07 -04:00
Yash Tibrewal b7f32af1d0 Fix scoping for service config errors 2019-04-05 19:17:29 -07:00
Juanli Shen 086820227f Fix error message upon pick failure 2019-04-05 17:41:45 -07:00
Yash Tibrewal 3dc6eae912 Merge branch 'master' into svc_cfg1 2019-04-05 13:45:03 -07:00
Yash Tibrewal 327350ab39 ServiceConfig::Create expects non-Null error and better errors 2019-04-05 12:16:37 -07:00
Yihua Zhang 1fb7a84133 fix ALPN issues. 2019-04-05 10:23:29 -07:00
Yash Tibrewal 390078b7a8 Add tests for new service config mechanism 2019-04-04 18:58:15 -07:00
Yash Tibrewal fbe3b3575f Cleanup and continue parsing service config even if parser errors are received 2019-04-04 16:14:59 -07:00
Mark D. Roth a8a166227b
Merge pull request #18636 from markdroth/health_check_client_use_after_free_bug
Fix health check client to wait for subchannel call stack destruction before destroying the arena.
2019-04-04 12:33:36 -07:00
Yash Tibrewal c28f16e481 Reviewer comments 2019-04-04 12:26:26 -07:00
Mark D. Roth 4a19b2f45f Add atomic to ensure we don't cancel twice.
Also convert existing seen_response_ to new atomic API.
2019-04-04 07:29:24 -07:00
Mark D. Roth 56d8f9896b
Merge pull request #18580 from markdroth/data_plane_combiner
Second attempt: Split data plane and control plane into their own combiners.
2019-04-04 07:24:17 -07:00
Yash Tibrewal 0f0e774722 Clean up 2019-04-03 19:05:40 -07:00
Yash Tibrewal 0c8ef41a5e Remove smart pointers from global registry 2019-04-03 18:53:14 -07:00
Yash Tibrewal 9bfd2354ec Add global and method parsing logic 2019-04-03 18:03:42 -07:00
Juanli Shen 5f13d8584e
Merge pull request #18629 from AspirinSJL/backport_pf_fix_1.20.x
Backport pick_first fix to v1.20.x
2019-04-03 16:20:11 -07:00
Michael Lumish 2f113fd0fc
Merge pull request #18633 from nicolasnoble/backports
Backports of 18445 and 18517.
2019-04-03 15:36:54 -07:00
Mark D. Roth 0e7ea67351 Fix health check client to wait for subchannel call stack destruction before destroying the arena. 2019-04-03 13:59:08 -07:00
Yash Tibrewal c871a0bb32 Remove commented code 2019-04-03 13:34:39 -07:00
Yash Tibrewal 4d696c659e Reviewer comments 2019-04-03 13:32:26 -07:00
Mark D. Roth eccfecd6a6 Move functions for individual args out of channel_args.{h,cc}. 2019-04-03 13:15:40 -07:00
Nicolas "Pixel" Noble f97b47c87c Backports of 18445 and 18517. 2019-04-03 21:59:42 +02:00
Nicolas Noble cb01297021
Merge pull request #18445 from nicolasnoble/last-memset-for-real-this-time
Taking care of a last few memsets.
2019-04-03 12:56:03 -07:00
Mark D. Roth ebf4cc1dfa Avoid crash in pick_first when invoking ExitIdleLocked() after shutdown. 2019-04-03 12:48:27 -07:00
Yash Tibrewal 4ac28e61f9 backport #18606 - Add a dummy function to grpc cfstream library 2019-04-03 12:34:53 -07:00
Mark D. Roth 9e841d1aff Backport pick_first fix to v1.20.x 2019-04-03 10:57:25 -07:00
Nicolas "Pixel" Noble 81c6081a3e Fixing failures. 2019-04-03 19:40:53 +02:00
Mark D. Roth 230c33ef14 Merge remote-tracking branch 'upstream/master' into data_plane_combiner 2019-04-03 07:00:27 -07:00
Mark D. Roth a5389c4b29
Merge pull request #18476 from markdroth/c++_client_channel_external_watcher
Convert external connectivity watcher to C++.
2019-04-03 06:45:44 -07:00
Nicolas "Pixel" Noble 21d9436ca6 Merge branch 'master' of https://github.com/grpc/grpc into last-memset-for-real-this-time 2019-04-03 01:30:54 +02:00
Nicolas Noble 53a0cb7d36
Merge pull request #18517 from nicolasnoble/memset-breakout-2
Breakout of #18445 - part 2
2019-04-02 16:29:43 -07:00
Nicolas Noble 683c18306b
Merge pull request #18572 from grpc/revert-18475-fix-jwt
Revert "Fix compilation error in JWT using const_cast."
2019-04-02 16:28:54 -07:00
Mark D. Roth adf5f87284 more code review changes 2019-04-02 15:16:29 -07:00
Mark D. Roth 89a9e9d1dd code review changes 2019-04-02 14:33:11 -07:00
Mark D. Roth c7dc6e55a6 Merge remote-tracking branch 'upstream/master' into c++_client_channel_external_watcher 2019-04-02 14:21:39 -07:00