Commit Graph

6498 Commits

Author SHA1 Message Date
Eric Anderson 15d86d9c42 Parameterize TlsTest for TLS provider 2016-01-25 13:17:19 -08:00
Eric Anderson 0a2a4ec4d2 Move resource freeing out of test methods
This avoids the try-finally, which would have gotten even larger to
shutdown the channels.
2016-01-25 13:17:19 -08:00
Eric Anderson 1d8af602f7 Run make with as many cores as available 2016-01-25 09:35:42 -08:00
Eric Anderson 7677525c37 Log start of test and don't wait forever
With this, the test should no longer time out in case of error and there
is more information available to determine which test has issues if
there are further problems.
2016-01-25 09:14:53 -08:00
Eric Anderson c70a769da7 Wait 5 seconds, not over an hour 2016-01-25 08:54:13 -08:00
Kun Zhang 2bd0887db3 Use `docker cp` to copy files to docker containers.
`scp` won't work anymore on google workstations.
2016-01-22 15:42:29 -08:00
Eric Anderson 4aee912bce Fix broken noClientAuthFailure test
The client didn't have the trust manager set, so the RPC would fail due
to server-certificate verification, not lack of client auth.

With this change, noClientAuthFailure now fails with tcnative but still
passes with Jetty ALPN.

basicClientServerIntegrationTest seems to be working for me, so I'm
enabling it.
2016-01-22 12:59:36 -08:00
Eric Anderson cfbd7efcf0 Use tcnative for interop unit tests when possible.
We are already building a new enough OpenSSL on Travis for both Linux
and OS X and Jenkins for Windows.
2016-01-21 16:40:29 -08:00
nmittler 2b4120032c Making choice of OpenSSL more explicit in SECURITY doc 2016-01-21 15:01:35 -08:00
Matt Hildebrand 95d7bfd2b9 Add some initial integration tests for GRPC's TLS support.
Tests run using Jetty ALPN only, not using OpenSSL.
2016-01-21 13:46:19 -08:00
Carl Mastrangelo 509c7e7335 Make Benchmark Client terminate after running 2016-01-19 16:49:47 -08:00
Eric Anderson d52429dffd Reduce number of codegen'd classes needed for Services
This reduces the number of classes defined, which reduces memory usage.
It also reduces the number of methods defined, which is important
because of the dex limit.

This should have virtually zero performance degradation because the
contiguous switch uses tableswitch bytecode.
2016-01-15 16:45:41 -08:00
Eric Anderson 853ccaa7b6 Start 0.13.0 development cycle 2016-01-15 16:12:57 -08:00
Eric Anderson df310fe2b5 More precise exception handling in examples
Try to make it clear how failures propagate and provide hints on how to
get more error information.
2016-01-15 14:26:27 -08:00
Carl Mastrangelo 0486af6a88 Raise method visibility in Channel Providers 2016-01-14 11:12:53 -08:00
Eric Anderson a4a8438401 Avoid NettyServerBuilder in security documentation
The more generic ServerBuilder is all that is necessary.
2016-01-14 10:33:49 -08:00
Carl Mastrangelo 846794e578 Fix OkHttp bug where streams could be started after they had been cancelled 2016-01-13 18:41:53 -08:00
Eric Anderson bcb5fcdf82 Propagate headers/trailers if response isn't gRPC
This provides more structured data into the application for it to do
special handling.

In general, we would hope most people don't need this functionality, but
it is a good escape hatch to allow users to workaround infrastructure
problems.
2016-01-13 18:27:16 -08:00
Carl Mastrangelo 5205d9cc43 Fix unsynchronized access in InProcessTransport 2016-01-12 13:16:51 -08:00
Eric Anderson 9cb79292aa Add toString to transports for debugging.
This is a partial re-application of eca1f7c, but using super.toString()
to distinguish different transports that go to the same endpoint.
2016-01-12 11:28:40 -08:00
Eric Anderson 218865a19e Revert "More information for debugging."
This reverts commit eca1f7c1d6.

We want to preserve the status message identical to what the server
sent. We'll need a better way to communicate debugging details.
2016-01-11 16:35:43 -08:00
Carl Mastrangelo 725209ce6c Fix memory leak with cancellation timeouts 2016-01-06 13:45:48 -08:00
Carl Mastrangelo 3276442d4e Split newStream from start 2016-01-06 11:46:24 -08:00
Kun Zhang eca1f7c1d6 More information for debugging.
- Include transport information in RPC's final status
- Implement toString() of transports
2016-01-05 12:29:26 -08:00
Kun Zhang fb8532a711 Fix issues discovered by internal GRPCLB integration test.
- Set knownAcceptEncodingRegistry in SingleTransportChannel
- Change the package name of load_balancer.proto to be consistent with
  what is used internally.
2015-12-30 14:41:23 -08:00
Feng Li 2719a8c858 Updates the README.md to add instructions to start test server. 2015-12-28 17:10:43 -08:00
Kun Zhang 59c1a6ae26 Use lbTransport if the LB request got a UNIMPLEMENTED response 2015-12-21 14:48:44 -08:00
Carl Mastrangelo 707302d76e Update type and comment in Timeoutmarshaller 2015-12-21 14:03:29 -08:00
Xudong Ma d948330ef2 [OkHttp]Add hostname verification. 2015-12-21 11:30:02 -08:00
Kun Zhang 663a4f4390 Make BlankFutureProvider preserve the order.
Use LinkedHashSet in BlankFutureProvider so that it fulfills the futures
in the same order as they were created. This makes the behavior more
predictable, thus fixes the flakiness of GrpclbLoadBalancerTest and
simplifies BlankFutureProviderTest.
2015-12-18 13:39:05 -08:00
Carl Mastrangelo d3d8adbab6 Allow support for nanosecond timeouts, and use nanoseconds consistently throughout our code 2015-12-17 18:22:47 -08:00
Kun Zhang e83ac98477 The GRPCLB load-balancer.
This LoadBalancer does round-robin on a address list received from a
separate "load-balancer service", via the protocol defined in
load_balancer.proto. Everything is put under a subproject `grpc-grpclb`,
because it has dependency to protobuf.

updateRetainedTransports() now accepts EquivalentAddressGroups.  The
LoadBalancer merges the LB and normal server address groups when calling
it.
2015-12-17 11:10:46 -08:00
Kun Zhang 4abb022375 Cancel the transport future when the call is cancelled.
This is to prevent leaking future objects in BlankFutureProvider.
Resolves #1188
2015-12-17 10:14:58 -08:00
Carl Mastrangelo e0b1149902 Removed unsused variables 2015-12-16 10:20:10 -08:00
Carl Mastrangelo f5d09ff0b2 Disallow compressing zero length messages. 2015-12-16 10:03:17 -08:00
Carl Mastrangelo e967be8d3f More each coverage 2015-12-15 17:12:16 -08:00
Carl Mastrangelo c1800943ff Bump test coverage 2015-12-15 14:19:25 -08:00
Carl Mastrangelo 829735bb25 Fix gaurded by 2015-12-15 12:35:09 -08:00
Carl Mastrangelo b9cacc1553 update tests 2015-12-14 16:09:28 -08:00
Carl Mastrangelo 7ac44928be Fix bug where server wouldn't declare the negotiated compression 2015-12-14 15:48:01 -08:00
Xudong Ma d238d86a3c Some changes to Android interop test App:
1. Call runTest() for test "all", this is required by some internal code.
2. Turn off proguard for debug App.
3. Catch Throwable when we run the test, so that some errors like OutOfMemoryError would fail the test.
4. Compare message size for veryLargeResponse test, otherwise comparing two message would create two more large byte arrarys.
2015-12-14 13:11:59 -08:00
Kun Zhang 7ce50f76c7 Revert to lazy-connection.
`TransportSet` won't connect/reconnect until a transport is requested
through `obtainActiveTransport()`.
Lazy connection is safer, and more desirable in mobile environments.
It's also what C core is doing.

To warm up connections, `LoadBalancer` can call
`TransportManager.getTransport()`, even periodically if it wants to
maintain live connections.
2015-12-11 10:40:19 -08:00
Eric Anderson 7450bf6a17 Swap to "old" link for OpenSSL download with Travis
The previous download link only worked for the most recent version. The
new form only works for old versions. That will encourage us not to use
the latest version, but for tests that's probably not a big deal.

We haven't noticed the breakage sooner because the build results are
cached.
2015-12-10 16:33:06 -08:00
Xudong Ma d41a0fa38e Use getClassLoader() instead of Thread.currentThread().getContextClassLoader() for android.
See #1272 for more details.
2015-12-10 15:06:47 -08:00
Kun Zhang 16247153f6 Move default scheme decision from ManagedChannelImpl to NameResolver.Factory.
This makes it possible to use a default scheme other than "dns" by
installing a custom NameResolver.Factory to the channel builder.
2015-12-10 14:40:46 -08:00
Carl Mastrangelo 4b18f49330 Move ServerCall unary check and add tests 2015-12-10 13:01:48 -08:00
Carl Mastrangelo 82a79d8f93 Expose compression on ClientCall and Server Call 2015-12-08 10:49:27 -08:00
Carl Mastrangelo 3fef40368d Make TestUtils able to read from input stream. This makes it easier to pass in an input stream from a resource 2015-12-07 17:28:25 -08:00
Carl Mastrangelo 529b14c07b Add compressor registry, and auto negotiate compression 2015-12-07 10:56:16 -08:00
Eric Anderson 96f9cefda4 Close active streams on channelInactive
We think this broke when the stream lifecycle listener was removed.
Observing the stream lifecycle would be the "proper" fix, but it had
notification ordering issues where streams would close before we were
notified of the event that caused the closure, which made it difficult
to provide useful error messages. The ordering of notifications was also
largely undefined.

The long term fix we look forward to is the HTTP/2 child channels, which
should have clearly defined ordering between error notification and
channel closure, and in the order that we need here.

Fixes #1251
2015-12-07 09:00:41 -08:00