You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by sp...@apache.org on 2015/04/22 15:48:22 UTC

incubator-tinkerpop git commit: Tests were failing somewhat randomly around Gremlin Server.

Repository: incubator-tinkerpop
Updated Branches:
  refs/heads/master bad3e340b -> 9921a6ce5


Tests were failing somewhat randomly around Gremlin Server.

Apparently some ChannelOutboundHandler must require interest in a ChannelFuture so use of voidPromise for errors seemed to cause inconsistencies for some reason.  Not sure why this isn't a problem for a standard write during iteration which seems to work just fine.


Project: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/commit/9921a6ce
Tree: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/tree/9921a6ce
Diff: http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/diff/9921a6ce

Branch: refs/heads/master
Commit: 9921a6ce5c3d0d6f655e488390458111f606da07
Parents: bad3e34
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Wed Apr 22 09:46:27 2015 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Wed Apr 22 09:46:27 2015 -0400

----------------------------------------------------------------------
 .../apache/tinkerpop/gremlin/driver/simple/NioClient.java    | 3 +++
 .../gremlin/server/handler/WsGremlinResponseEncoder.java     | 8 ++++----
 .../tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java | 6 +++---
 .../tinkerpop/gremlin/server/GremlinServerIntegrateTest.java | 2 +-
 4 files changed, 11 insertions(+), 8 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/9921a6ce/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/simple/NioClient.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/simple/NioClient.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/simple/NioClient.java
index dbac010..21adb90 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/simple/NioClient.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/simple/NioClient.java
@@ -18,6 +18,8 @@
  */
 package org.apache.tinkerpop.gremlin.driver.simple;
 
+import io.netty.buffer.PooledByteBufAllocator;
+import io.netty.channel.ChannelOption;
 import org.apache.tinkerpop.gremlin.driver.MessageSerializer;
 import org.apache.tinkerpop.gremlin.driver.handler.NioGremlinRequestEncoder;
 import org.apache.tinkerpop.gremlin.driver.handler.NioGremlinResponseDecoder;
@@ -60,6 +62,7 @@ public class NioClient implements SimpleClient {
         final BasicThreadFactory threadFactory = new BasicThreadFactory.Builder().namingPattern("nio-client-%d").build();
         group = new NioEventLoopGroup(Runtime.getRuntime().availableProcessors(), threadFactory);
         final Bootstrap b = new Bootstrap().group(group);
+        b.option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT);
 
         try {
             final MessageSerializer serializer = new GryoMessageSerializerV1d0();

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/9921a6ce/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinResponseEncoder.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinResponseEncoder.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinResponseEncoder.java
index 44731bb..0d65380 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinResponseEncoder.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/handler/WsGremlinResponseEncoder.java
@@ -102,14 +102,14 @@ public class WsGremlinResponseEncoder extends MessageToMessageEncoder<ResponseMe
                     .statusMessage(errorMessage)
                     .code(ResponseStatusCode.SERVER_ERROR_SERIALIZATION).create();
             if (useBinary) {
-                ctx.write(new BinaryWebSocketFrame(serializer.serializeResponseAsBinary(error, ctx.alloc())), ctx.voidPromise());
+                objects.add(new BinaryWebSocketFrame(serializer.serializeResponseAsBinary(error, ctx.alloc())));
                 final ResponseMessage terminator = ResponseMessage.build(o.getRequestId()).code(ResponseStatusCode.SUCCESS_TERMINATOR).create();
-                ctx.writeAndFlush(new BinaryWebSocketFrame(serializer.serializeResponseAsBinary(terminator, ctx.alloc())), ctx.voidPromise());
+                objects.add(new BinaryWebSocketFrame(serializer.serializeResponseAsBinary(terminator, ctx.alloc())));
             } else {
                 final MessageTextSerializer textSerializer = (MessageTextSerializer) serializer;
-                ctx.write(new TextWebSocketFrame(textSerializer.serializeResponseAsString(error)), ctx.voidPromise());
+                objects.add(new TextWebSocketFrame(textSerializer.serializeResponseAsString(error)));
                 final ResponseMessage terminator = ResponseMessage.build(o.getRequestId()).code(ResponseStatusCode.SUCCESS_TERMINATOR).create();
-                ctx.writeAndFlush(new TextWebSocketFrame(textSerializer.serializeResponseAsString(terminator)), ctx.voidPromise());
+                objects.add(new TextWebSocketFrame(textSerializer.serializeResponseAsString(terminator)));
             }
         }
     }

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/9921a6ce/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java
index 3b316bc..3ee6681 100644
--- a/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java
+++ b/gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/AbstractEvalOpProcessor.java
@@ -146,7 +146,7 @@ public abstract class AbstractEvalOpProcessor implements OpProcessor {
         evalFuture.handle((v, t) -> timerContext.stop());
         evalFuture.exceptionally(se -> {
             logger.warn(String.format("Exception processing a script on request [%s].", msg), se);
-            ctx.writeAndFlush(ResponseMessage.build(msg).code(ResponseStatusCode.SERVER_ERROR_SCRIPT_EVALUATION).statusMessage(se.getMessage()).create(), ctx.voidPromise());
+            ctx.writeAndFlush(ResponseMessage.build(msg).code(ResponseStatusCode.SERVER_ERROR_SCRIPT_EVALUATION).statusMessage(se.getMessage()).create());
             return null;
         });
 
@@ -172,12 +172,12 @@ public abstract class AbstractEvalOpProcessor implements OpProcessor {
                 if (ExceptionUtils.getRootCause(ex).getClass().equals(TimeoutException.class)) {
                     final String errorMessage = String.format("Response iteration and serialization exceeded the configured threshold for request [%s] - %s", msg, ex.getCause().getMessage());
                     logger.warn(errorMessage);
-                    ctx.writeAndFlush(ResponseMessage.build(msg).code(ResponseStatusCode.SERVER_ERROR_TIMEOUT).statusMessage(errorMessage).create(), ctx.voidPromise());
+                    ctx.writeAndFlush(ResponseMessage.build(msg).code(ResponseStatusCode.SERVER_ERROR_TIMEOUT).statusMessage(errorMessage).create());
                 }
             } else {
                 // since this is not an error we need to terminate.  termination for errors is handled in the
                 // ResponseEncoder
-                ctx.writeAndFlush(ResponseMessage.build(msg).code(ResponseStatusCode.SUCCESS_TERMINATOR).create(), ctx.voidPromise());
+                ctx.writeAndFlush(ResponseMessage.build(msg).code(ResponseStatusCode.SUCCESS_TERMINATOR).create());
             }
             return null;
         }, executor);

http://git-wip-us.apache.org/repos/asf/incubator-tinkerpop/blob/9921a6ce/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
----------------------------------------------------------------------
diff --git a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
index 69d0498..3147432 100644
--- a/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
+++ b/gremlin-server/src/test/java/org/apache/tinkerpop/gremlin/server/GremlinServerIntegrateTest.java
@@ -124,7 +124,7 @@ public class GremlinServerIntegrateTest extends AbstractGremlinServerIntegration
         // the highwatermark should get exceeded on the server and thus pause the writes, but have no problem catching
         // itself up
         try (SimpleClient client = new WebSocketClient()) {
-            final int resultCountToGenerate = 1000;
+            final int resultCountToGenerate = 5000;
             final int batchSize = 2;
             final String fatty = IntStream.range(0, 150).mapToObj(String::valueOf).collect(Collectors.joining());
             final String fattyX = "['" + fatty + "'] * " + resultCountToGenerate;