[
https://issues.apache.org/jira/browse/TINKERPOP-1125?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15139186#comment-15139186
]
ASF GitHub Bot commented on TINKERPOP-1125:
-------------------------------------------
Github user spmallette commented on the pull request:
https://github.com/apache/incubator-tinkerpop/pull/211#issuecomment-181950663
I did some review of this. it would be nice if you could add a test to
cover TINKERPOP-1127. Should be easy enough to do:
First, edit AbstractGremlinServerIntegrationTest to include a
`startServer()` method:
```java
public void startServer() throws Exception {
server.start().join();
}
````
Next, modify the existing test in
`GremlinServerIntegrateTest.shouldFailOnDeadHost()` to call that method to
restart the server toward the end of the test and include an assert to validate
that a request can be made.
Does that make sense?
> RoundRobin load balancing always uses the second Host when size = 2
> -------------------------------------------------------------------
>
> Key: TINKERPOP-1125
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1125
> Project: TinkerPop
> Issue Type: Bug
> Components: driver
> Affects Versions: 3.1.0-incubating
> Reporter: Kieran Sherlock
> Assignee: stephen mallette
> Fix For: 3.1.2-incubating
>
>
> Bring up two gremlin-server
> Create a Cluster with these two servers, by default
> LoadBalancingStrategy.RoundRobin() is used.
> Create a client and make queries.
> Notice that all requests go to the second server.
> this.cluster.loadBalancingStrategy().select(msg).next() is called twice in
> Client.chooseConnection(), so always the second Host is used.
> The following seems to work
> {code:diff}
> diff --git
> a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Client.java
>
> b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Client.java
> index 8c80b8a..17c9a99 100644
> ---
> a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Client.java
> +++
> b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Client.java
> @@ -341,7 +341,7 @@ public abstract class Client {
> final Iterator<Host> possibleHosts =
> this.cluster.loadBalancingStrategy().select(msg);
> if (!possibleHosts.hasNext()) throw new TimeoutException("Timed
> out waiting for an available host.");
> - final Host bestHost =
> this.cluster.loadBalancingStrategy().select(msg).next();
> + final Host bestHost = possibleHosts.next();
> final ConnectionPool pool = hostConnectionPools.get(bestHost);
> return
> pool.borrowConnection(cluster.connectionPoolSettings().maxWaitForConnection,
> TimeUnit.MILLISECONDS);
> }
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)