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 2018/09/22 01:39:34 UTC

[1/4] tinkerpop git commit: Make closing of connections robust TINKERPOP-2026 [Forced Update!]

Repository: tinkerpop
Updated Branches:
  refs/heads/TINKERPOP-2030 564236ed6 -> 207c660a1 (forced update)


Make closing of connections robust TINKERPOP-2026


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

Branch: refs/heads/TINKERPOP-2030
Commit: 4965803ae8e9283817e0171e1c463014c9166970
Parents: 3afc576
Author: Florian Hockmann <fh...@florian-hockmann.de>
Authored: Sat Sep 1 17:02:23 2018 +0200
Committer: Florian Hockmann <fh...@florian-hockmann.de>
Committed: Sat Sep 1 17:02:23 2018 +0200

----------------------------------------------------------------------
 .../Gremlin.Net/Driver/WebSocketConnection.cs    | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/4965803a/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs
----------------------------------------------------------------------
diff --git a/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs b/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs
index 9672606..b5a4cc8 100644
--- a/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs
+++ b/gremlin-dotnet/src/Gremlin.Net/Driver/WebSocketConnection.cs
@@ -43,11 +43,24 @@ namespace Gremlin.Net.Driver
 
         public async Task CloseAsync()
         {
-            await
-                _client.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None)
-                    .ConfigureAwait(false);
+            if (CloseAlreadyInitiated) return;
+
+            try
+            {
+                await
+                    _client.CloseAsync(WebSocketCloseStatus.NormalClosure, string.Empty, CancellationToken.None)
+                        .ConfigureAwait(false);
+            }
+            catch (Exception)
+            {
+                // Swallow exceptions silently as there is nothing to do when closing fails
+            }
         }
 
+        private bool CloseAlreadyInitiated => _client.State == WebSocketState.Closed ||
+                                            _client.State == WebSocketState.Aborted ||
+                                            _client.State == WebSocketState.CloseSent;
+
         public async Task SendMessageAsync(byte[] message)
         {
             await


[2/4] tinkerpop git commit: Merge remote-tracking branch 'origin/TINKERPOP-2026' into tp32

Posted by sp...@apache.org.
Merge remote-tracking branch 'origin/TINKERPOP-2026' into tp32


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

Branch: refs/heads/TINKERPOP-2030
Commit: 4bdf0d212af4eba5f841ce27e751dfd9f1b8a9bc
Parents: af73f45 4965803
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Sep 21 15:12:29 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Sep 21 15:12:29 2018 -0400

----------------------------------------------------------------------
 .../Gremlin.Net/Driver/WebSocketConnection.cs    | 19 ++++++++++++++++---
 1 file changed, 16 insertions(+), 3 deletions(-)
----------------------------------------------------------------------



[4/4] tinkerpop git commit: TINKERPOP-2030 Cancelled keep-alive tasks are removed from queue

Posted by sp...@apache.org.
TINKERPOP-2030 Cancelled keep-alive tasks are removed from queue


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

Branch: refs/heads/TINKERPOP-2030
Commit: 207c660a17a45df79c154720ba088d1852d80b4e
Parents: 0426797
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Thu Sep 20 16:25:34 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Sep 21 21:39:19 2018 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc                              |  1 +
 .../tinkerpop/gremlin/driver/Cluster.java       | 23 +++++++++++---------
 2 files changed, 14 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/207c660a/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index c1e8b56..9431d98 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -31,6 +31,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 * Fixed bug in traversals that used Python lambdas with strategies in `gremlin-python`.
 * Modified Maven archetype for Gremlin Server to use remote traversals rather than scripts.
 * Added an system error code for failed plugin installs for Gremlin Server `-i` option.
+* Fixed bug in keep-alive requests from over-queuing cancelled jobs.
 * Match numbers in `choose()` options using `NumberHelper` (match values, ignore data type).
 * Added support for GraphSON serialization of `Date` in Javascript.
 * Added synchronized `Map` to Gryo 1.0 registrations.

http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/207c660a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java
----------------------------------------------------------------------
diff --git a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java
index 33ff574..9adaaa1 100644
--- a/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java
+++ b/gremlin-driver/src/main/java/org/apache/tinkerpop/gremlin/driver/Cluster.java
@@ -62,6 +62,7 @@ import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 import java.util.concurrent.Executors;
 import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledThreadPoolExecutor;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
@@ -703,7 +704,7 @@ public final class Cluster {
             this.keyPassword = keyPassword;
             return this;
         }
-        
+
         /**
          * The file location of the private key in JKS or PKCS#12 format.
          */
@@ -711,7 +712,7 @@ public final class Cluster {
             this.keyStore = keyStore;
             return this;
         }
-        
+
         /**
          * The password of the {@link #keyStore}, or {@code null} if it's not password-protected.
          */
@@ -719,7 +720,7 @@ public final class Cluster {
             this.keyStorePassword = keyStorePassword;
             return this;
         }
-        
+
         /**
          * The file location for a SSL Certificate Chain to use when SSL is enabled. If
          * this value is not provided and SSL is enabled, the default {@link TrustManager} will be used.
@@ -728,7 +729,7 @@ public final class Cluster {
             this.trustStore = trustStore;
             return this;
         }
-        
+
         /**
          * The password of the {@link #trustStore}, or {@code null} if it's not password-protected.
          */
@@ -736,7 +737,7 @@ public final class Cluster {
             this.trustStorePassword = trustStorePassword;
             return this;
         }
-        
+
         /**
          * The format of the {@link #keyStore}, either {@code JKS} or {@code PKCS12}
          */
@@ -744,7 +745,7 @@ public final class Cluster {
             this.keyStoreType = keyStoreType;
             return this;
         }
-        
+
         /**
          * A list of SSL protocols to enable. @see <a href=
          *      "https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#SunJSSE_Protocols">JSSE
@@ -754,7 +755,7 @@ public final class Cluster {
             this.sslEnabledProtocols = sslEnabledProtocols;
             return this;
         }
-        
+
         /**
          * A list of cipher suites to enable. @see <a href=
          *      "https://docs.oracle.com/javase/8/docs/technotes/guides/security/SunProviders.html#SupportedCipherSuites">Cipher
@@ -764,7 +765,7 @@ public final class Cluster {
             this.sslCipherSuites = sslCipherSuites;
             return this;
         }
-        
+
         /**
          * If true, trust all certificates and do not perform any validation.
          */
@@ -1020,7 +1021,7 @@ public final class Cluster {
         private final AuthProperties authProps;
         private final Optional<SslContext> sslContextOptional;
 
-        private final ScheduledExecutorService executor;
+        private final ScheduledThreadPoolExecutor executor;
 
         private final int nioPoolSize;
         private final int workerPoolSize;
@@ -1074,8 +1075,10 @@ public final class Cluster {
 
             this.factory = new Factory(builder.nioPoolSize);
             this.serializer = builder.serializer;
-            this.executor = Executors.newScheduledThreadPool(builder.workerPoolSize,
+            
+            this.executor = new ScheduledThreadPoolExecutor(builder.workerPoolSize,
                     new BasicThreadFactory.Builder().namingPattern("gremlin-driver-worker-%d").build());
+            this.executor.setRemoveOnCancelPolicy(true);
         }
 
         private void validateBuilder(final Builder builder) {


[3/4] tinkerpop git commit: Updated changelog CTR

Posted by sp...@apache.org.
Updated changelog CTR


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

Branch: refs/heads/TINKERPOP-2030
Commit: 0426797a5a3da5b05a35cbbf075dc4100d5d5412
Parents: 4bdf0d2
Author: Stephen Mallette <sp...@genoprime.com>
Authored: Fri Sep 21 15:15:50 2018 -0400
Committer: Stephen Mallette <sp...@genoprime.com>
Committed: Fri Sep 21 15:15:50 2018 -0400

----------------------------------------------------------------------
 CHANGELOG.asciidoc | 1 +
 1 file changed, 1 insertion(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/0426797a/CHANGELOG.asciidoc
----------------------------------------------------------------------
diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc
index 948f8df..c1e8b56 100644
--- a/CHANGELOG.asciidoc
+++ b/CHANGELOG.asciidoc
@@ -46,6 +46,7 @@ image::https://raw.githubusercontent.com/apache/tinkerpop/master/docs/static/ima
 * Fixed bug in `branch()` where reducing steps as options would produce incorrect results.
 * Removed recursive handling of streaming results from Gremlin-Python driver to avoid max recursion depth errors.
 * Improved performance of `TraversalVertexProgram` and related infrastructure.
+* Checked web socket state before closing connection in the .NET driver.
 * Deprecated `BulkLoaderVertexProgram` and related infrastructure.
 * Deprecated `BulkDumperVertexProgram` with the more aptly named `CloneVertexProgram`.
 * Added `createGratefulDead()` to `TinkerFactory` to help make it easier to try to instantiate that toy graph.