[
https://issues.apache.org/jira/browse/TINKERPOP-1726?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16370099#comment-16370099
]
ASF GitHub Bot commented on TINKERPOP-1726:
-------------------------------------------
Github user spmallette commented on a diff in the pull request:
https://github.com/apache/tinkerpop/pull/800#discussion_r169333477
--- Diff:
gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/AbstractChannelizer.java
---
@@ -147,7 +149,12 @@ public void init(final
ServerGremlinExecutor<EventLoopGroup> serverGremlinExecut
public void initChannel(final SocketChannel ch) throws Exception {
final ChannelPipeline pipeline = ch.pipeline();
- if (sslContext.isPresent()) pipeline.addLast(PIPELINE_SSL,
sslContext.get().newHandler(ch.alloc()));
+ sslContext.ifPresent(sslContext -> pipeline.addLast(PIPELINE_SSL,
sslContext.newHandler(ch.alloc())));
+
+ // checks for no activity on a channel and triggers an event that
is consumed by the OpSelectorHandler
+ // and either closes the connection or sends a ping to see if the
client is still alive
+ if (supportsIdleMonitor())
+ pipeline.addLast(new IdleStateHandler((int)
(settings.idleReadLimit / 1000), (int) (settings.idleWriteLimit / 1000),0));
--- End diff --
Adding some general logging that explains the conversion:
```text
[INFO] GremlinServer - idleConnectionTimeout was set to 500 which resolves
to 0 seconds when configuring this value - this feature will be disabled
[INFO] GremlinServer - keepAliveInterval was set to 0 which resolves to 0
seconds when configuring this value - this feature will be disabled
```
> Support WebSockets ping/pong keep-alive in Gremlin server
> ---------------------------------------------------------
>
> Key: TINKERPOP-1726
> URL: https://issues.apache.org/jira/browse/TINKERPOP-1726
> Project: TinkerPop
> Issue Type: Improvement
> Components: server
> Affects Versions: 3.2.5
> Reporter: Andy Davidoff
> Priority: Major
>
> The ping/pong keep-alive system that is part of the WebSockets spec provides
> for successful identification of a dropped connection from either end of the
> connection.
> Currently, the Java client successfully issues keep-alive pings and receives
> pong replies from the server. Unfortunately, the server does not actively
> ping clients, nor does it discover and react to dead clients when keep-alive
> fails.
> This can cause pending client writes to lock up the server indefinitely when
> a client spontaneously disconnects.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)