Commit Graph

302 Commits

Author SHA1 Message Date
Yuxuan Li 34894e4b1c Implemented stream coalescing design
(RFC:https://github.com/grpc/proposal/pull/3). Add necessary
microbenchmarks to show reduced writes/iter for short streams. Add
necessary end2end test to test out newly added apis. Filter those tests
using *WithCoalescingApi*.
2017-03-08 10:59:31 -08:00
Sree Kuchibhotla 1dbd981cf8 Prefix grpc_cq_polling_type enums with GRPC_CQ_ 2017-03-03 14:27:44 -08:00
Sree Kuchibhotla 9f71b17707 Fix clang formatting issues 2017-03-03 12:54:58 -08:00
Sree Kuchibhotla 982a6f2b1c C++ code changes in response to grpc_completion_queue_create() API change 2017-03-03 02:19:31 -08:00
yang-g c42d844d27 Let ServerContext own the initial_metadata array for sync calls 2017-02-22 23:04:06 -08:00
yang-g f07ed45439 Restore the NextMessageSize for streamed calls 2017-02-16 23:01:28 -08:00
David Garcia Quintas f31f096274 Use call context to propagare LR costs 2017-02-13 16:26:00 -08:00
Harvey Tuch 5f3cfe960f Fix read from uninitialized memory bug in GrpcBufferWriter.
This commit fixes an issue in which the following sequence of operations
leads to use of uninitialized memory:

1. Caller invokes GrpcBufferWriter::Next(), and then makes use of 8191
   bytes in the returned buffer (which is 8192 bytes in size).

2. Caller then returns the unused single byte via
   GrpcBufferWriter::BackUp(). This method invokes
   g_core_codegen_interface->grpc_slice_split_tail(), which causes
   backup_slice_ to be a grpc_slice with one byte.

3. At the next invocation of GrpcBufferWriter::Next(), a reference to
   the single byte grpc_slice is returned to the caller.

The problem here is that the returned reference is to the inlined buffer
in the grpc_slice, which is resident in slice_, not the location of the
buffer inside slice_buffer_ after
g_core_codegen_interface->grpc_slice_buffer_add() in
GrpcBufferWriter::Next(). As a result, any data the caller writes to the
returned void* data is lost.

The solution is to avoid inlined backup slices.
2017-02-07 15:45:44 -05:00
Craig Tiller 68bb6a8453 Merge github.com:grpc/grpc into rollfwd 2017-01-27 06:52:13 -08:00
Craig Tiller 4edd56751f Merge github.com:grpc/grpc into maxmsgsz 2017-01-26 13:50:14 -08:00
Craig Tiller afceb2edbd Merge github.com:grpc/grpc into rollfwd 2017-01-26 12:21:28 -08:00
Mark D. Roth 448c1f002c Move parameters for all grpc_op types into their own sub-structs. 2017-01-25 10:44:30 -08:00
Craig Tiller 7c70b6c144 Revert "Revert "Metadata handling rewrite""
This reverts commit 5e01e2ac97.
2017-01-23 07:48:42 -08:00
Craig Tiller 5e01e2ac97 Revert "Metadata handling rewrite" 2017-01-20 18:11:52 -08:00
Craig Tiller da9de8988b Merge github.com:grpc/grpc into maxmsgsz 2017-01-20 15:42:47 -08:00
Craig Tiller b7b7486c4b Merge github.com:grpc/grpc into metadata_filter 2017-01-20 11:31:47 -08:00
Craig Tiller 1d77059e4b Fix integer overflow 2017-01-19 11:44:42 -08:00
Vijay Pai 3cdee02893 Merge branch 'master' into its_compat 2017-01-19 10:42:08 -08:00
Craig Tiller 62f28bfcf0 Remove double-checking of max-message-size in C++ layers 2017-01-19 10:05:13 -08:00
Craig Tiller 81eceb31cc Remove bogus assert 2017-01-12 14:27:01 -08:00
Craig Tiller 0d8e0b138d Merge github.com:grpc/grpc into fix_errors 2017-01-06 13:59:30 -08:00
Craig Tiller e519a03a1f Small improvements to generated documentation 2017-01-06 12:41:21 -08:00
Vijay Pai 0e3f1f1e53 Support compat with old generated PB files 2016-12-13 20:03:53 -08:00
Craig Tiller 78bc54e7d9 Fix stack corruption 2016-12-08 15:19:41 -08:00
Craig Tiller cadabdf1f3 Fix include guards 2016-12-08 14:12:28 -08:00
Craig Tiller f658bf0e1b Start resolving memory issues in C++ metadata 2016-12-08 14:11:47 -08:00
Craig Tiller 385dd9a462 Merge branch 'slice_interning' into metadata_filter 2016-12-06 20:27:38 -08:00
Vijay Pai 6510d47c81 gpr_atm isn't automatically initialized to 0. Thanks Obama. 2016-12-05 14:16:20 -08:00
Vijay Pai bf24dd9e51 clang-format 2016-12-05 13:59:09 -08:00
Vijay Pai cbe1599250 Track requests that could cause other requests to be created, and don't do
a real core shutdown of a CQ until such requests are done
2016-12-05 13:56:29 -08:00
Craig Tiller 73ee7dc559 C++ compiles 2016-11-21 09:12:18 -08:00
Craig Tiller cca7589333 Start moving C++ to slice interfaces 2016-11-21 08:45:38 -08:00
Yuchen Zeng b1f6bf2ec4 Merge pull request #8086 from y-zeng/fix_gprc
Fix misspelled gprc
2016-11-11 15:11:44 -08:00
Craig Tiller 32df467f11 Merge github.com:grpc/grpc into grpc_slice 2016-11-04 08:21:56 -07:00
Vijay Pai 320ed13d3e Deprecate grpc::thread and sync in favor of std::thread,mutex,etc 2016-11-01 17:16:55 -07:00
Vijay Pai 5c41bab92c Remove references to NO_CHRONO option 2016-11-01 16:57:42 -07:00
Vijay Pai e08fe4f41e Remove separate versions of code based on presence of threading in compiler 2016-11-01 16:50:38 -07:00
Vijay Pai 713c7b87e1 clang-format 2016-11-01 16:33:18 -07:00
Vijay Pai c0b2acb1a0 Use C++11 final and override 2016-11-01 16:31:56 -07:00
Vijay Pai 80b292709c Stop supporting non-C++11 conformant compilers 2016-11-01 13:38:40 -07:00
Craig Tiller 41fd9f2343 Merge github.com:grpc/grpc into grpc_slice 2016-10-31 14:42:53 -07:00
Craig Tiller 28b72428a8 clang-format 2016-10-26 21:15:29 -07:00
Craig Tiller 5b676a6b1a Fix include guards 2016-10-26 21:09:29 -07:00
Craig Tiller 618e67d655 s/GPR_SLICE/GRPC_SLICE/g 2016-10-26 21:08:10 -07:00
Craig Tiller d41a4a720f s/gpr_slice/grpc_slice, and move around tests, impls 2016-10-26 16:16:06 -07:00
Sree Kuchibhotla c5fb957e50 Merge branch 'master' into rpc_mgr 2016-10-21 14:38:21 -07:00
Vijay Pai 9243c74868 Merge pull request #8365 from vjpai/fc_1dstream
Support request separation of server-side streamed RPC
2016-10-20 14:31:14 -07:00
Vijay Pai bcc59f425c Remove a useless forward declaration 2016-10-20 11:38:04 -07:00
Sree Kuchibhotla 556aebb1e0 Merge branch 'master' into rpc_mgr 2016-10-18 14:59:24 -07:00
Vijay Pai 9fa9315d62 Merge remote-tracking branch 'upstream/master' into fc_1dstream 2016-10-18 12:15:08 -07:00
Yuchen Zeng 799832c32d Merge remote-tracking branch 'upstream/master' into fix_gprc 2016-10-17 11:41:02 -07:00
yang-g 4287998855 Add a test spouse for server context 2016-10-13 16:45:53 -07:00
Vijay Pai 96e03110db clang-format 2016-10-13 14:09:16 -07:00
Vijay Pai 075b18e77f Bug fix on failure condition 2016-10-13 12:05:40 -07:00
Sree Kuchibhotla e4996d6c43 Merge branch 'master' into rpc_mgr 2016-10-13 11:18:09 -07:00
Vijay Pai 61536a7371 Making split streaming testable 2016-10-13 11:04:57 -07:00
Vijay Pai 22fcbf9663 Merge branch 'master' into fc_1dstream 2016-10-13 09:39:05 -07:00
Sree Kuchibhotla 33382d0f53 Cleanup server_cc.cc 2016-10-03 15:15:49 -07:00
Vijay Pai db5b1cbc94 Add all plumbing and typedef's for controlled server-side streaming 2016-10-03 09:18:46 -07:00
Mark D. Roth a40d471110 Plumb through GRPC_INITIAL_METADATA_WAIT_FOR_READY_EXPLICITLY_SET. 2016-09-29 10:05:50 -07:00
Mark D. Roth 59c9f904bf Rename GRPC_INITIAL_METADATA_IGNORE_CONNECTIVITY to
GRPC_INITIAL_METADATA_WAIT_FOR_READY.
Also add a flag to indicate whether wait_for_ready was explicitly set by
the application.
2016-09-28 13:33:21 -07:00
Mark D. Roth 9477724003 Change C++ API to expose wait_for_ready instead of fail_fast. 2016-09-27 13:07:00 -07:00
Yuchen Zeng b8a886754e Merge remote-tracking branch 'upstream/master' into fix_gprc 2016-09-22 10:59:39 -07:00
Mark D. Roth abf03aed93 Merge remote-tracking branch 'upstream/master' into max_send_size_filter 2016-09-16 07:35:37 -07:00
Yang Gao 24869d558a Merge pull request #7996 from yang-g/canonical
Add a helper to get canonical code from status
2016-09-15 15:58:17 -07:00
Yuchen Zeng 66f3a4bbdf Merge remote-tracking branch 'upstream/master' into fix_gprc 2016-09-15 11:21:52 -07:00
Craig Tiller a51f54192a Merge pull request #7559 from dgquintas/codegen_cleanse
Removed references to public APIs from codegen/
2016-09-13 19:40:43 -07:00
Yuchen Zeng 362ac1be0c Fix gprc 2016-09-13 16:01:31 -07:00
Mark D. Roth f5afcd9f65 Merge remote-tracking branch 'upstream/master' into max_send_size_filter 2016-09-13 14:57:50 -07:00
yang-g d558149a5e Add a helper to get canonical code from status 2016-09-09 09:37:33 -07:00
Makarand Dharmapurikar 2b98b77225 add cacheable option to client_context 2016-09-07 14:24:15 -07:00
Mark D. Roth 3ad6188920 Fix a few lingering references to max_message_size. 2016-09-06 13:03:39 -07:00
Mark D. Roth 7bfa1a8343 Merge remote-tracking branch 'upstream/master' into max_send_size_filter 2016-09-06 10:44:32 -07:00
Mark D. Roth 6980362c4e Allow setting max send message size via C++ ServerBuilder API. 2016-09-06 08:15:36 -07:00
David Garcia Quintas d10f1775eb Merge branch 'master' of github.com:grpc/grpc into codegen_cleanse 2016-09-03 12:42:02 +02:00
kpayson64 8d40e083f1 Merge pull request #7018 from vjpai/fc_unary
Support server-side streaming of a unary RPC
2016-09-02 09:15:14 -07:00
David Garcia Quintas 410208c25c Merge branch 'master' of github.com:grpc/grpc into codegen_cleanse 2016-09-01 18:23:55 +02:00
Mark D. Roth 79d7d99600 Merge pull request #7842 from jboeuf/security_context_extension
Adding extension points for security context.
2016-08-31 10:00:17 -07:00
Vijay Pai 5c9a3438c5 clang-format 2016-08-30 20:52:32 -07:00
Vijay Pai 84033b1f6b Stick to StatusCode::INTERNAL when there's no service
response on a StreamedUnary
2016-08-30 20:50:43 -07:00
David Garcia Quintas e3817f4fd1 Merge branch 'master' of github.com:grpc/grpc into codegen_cleanse 2016-08-31 00:25:29 +02:00
Vijay Pai 77073ce99f clang-format 2016-08-30 10:26:30 -07:00
Vijay Pai de2aec8106 Merge branch 'master' into fc_unary
Resolve conflicts in ServerReaderWriterInterface
Remove file server_streamed_unary.h and merge with sync_stream.h
2016-08-30 10:20:20 -07:00
David Garcia Quintas 621e2b1a49 Merge with newly added/modified files 2016-08-30 09:27:19 -07:00
kpayson64 d76ea83728 Merge pull request #7798 from y-zeng/ServerReaderWriterInterface
Add ServerReaderWriterInterface
2016-08-30 08:34:19 -07:00
David Garcia Quintas f3581bf90a Merge branch 'master' of github.com:grpc/grpc into codegen_cleanse 2016-08-30 04:45:50 -07:00
Vijay Pai d4d5f4cd53 clang-format 2016-08-29 16:59:21 -07:00
Vijay Pai a9c0d7f88b Change names to StreamedUnary, ServerUnaryStreamer, etc. Use a templated method handler since most code shared between the new StreamedUnary and the existing BidiStreaming. Eliminate the separate enum case for streamed unary. Return a status failure if a StreamedUnary method handler doesn't actually do a write (since that is
violating the appearance of unary-ness)
2016-08-29 16:42:04 -07:00
Julien Boeuf 2b2b345841 Addressing feedback. 2016-08-25 21:22:55 -07:00
Vijay Pai cdc253535b Remove FC_UNARY enum and treat it more like a special case of BIDI_STREAMING
in all cases
2016-08-25 15:33:02 -07:00
Vijay Pai ac4113bef1 Merge branch 'master' into fc_unary 2016-08-25 14:49:18 -07:00
Takuto Ikuta bb04734eec Fix a typo 2016-08-25 13:31:51 +09:00
Julien Boeuf 6b93d46bb8 Adding extension points for security context. 2016-08-23 10:04:03 -07:00
Yuchen Zeng 59e835d431 Add comments 2016-08-19 15:23:23 -07:00
Yuchen Zeng e0705e2dc2 Add ServerReaderWriterInterface 2016-08-19 15:13:43 -07:00
kpayson64 b80d9c9626 Merge pull request #7594 from chedeti/grpc-thrift-v2
grpc thrift integration
2016-08-17 16:59:20 -07:00
chedeti a7ee93864a remove const in Deserialize 2016-08-04 14:42:35 -07:00
chedeti 76db7f9a7c use boost::make_shared 2016-08-04 11:56:54 -07:00
Vijay Pai 5d94118d0d clang-format 2016-08-04 11:48:47 -07:00
Vijay Pai 581097fe0d Make FCUnary and ServerReaderWriter derived classes of a new
ServerReaderWriterInterface so that some functions can be made
to accept either.
2016-08-04 10:50:51 -07:00