[
https://issues.apache.org/jira/browse/TINKERPOP-3217?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18042984#comment-18042984
]
ASF GitHub Bot commented on TINKERPOP-3217:
-------------------------------------------
kenhuuu commented on code in PR #3284:
URL: https://github.com/apache/tinkerpop/pull/3284#discussion_r2591601303
##########
gremlin-server/src/main/java/org/apache/tinkerpop/gremlin/server/op/session/SessionOpProcessor.java:
##########
@@ -571,6 +582,13 @@ protected void handleGraphOperation(final Bytecode
bytecode, final Graph graph,
.statusMessage(t.getMessage())
.statusAttributeException(t).create());
}
+
+ if (destroySessionPostGraphOp) {
+ // Destroy the session after a successful rollback
due to error. Placed here rather than
+ // in a finally block since we don't want to end
the session if no commit/rollback succeeded.
+ session.manualKill(true);
Review Comment:
Thanks for pointing this out. I thought this case would have been covered by
`onError` but it actually only runs if its transaction-managed. Addressed this
by adding an extra check for `shouldManageTransactionsForRequest`.
> Add mechanism to close session without closing connection on server
> -------------------------------------------------------------------
>
> Key: TINKERPOP-3217
> URL: https://issues.apache.org/jira/browse/TINKERPOP-3217
> Project: TinkerPop
> Issue Type: Improvement
> Components: server
> Affects Versions: 3.8.0, 3.7.5
> Reporter: Ken Hu
> Priority: Major
>
> Currently, the Gremlin Server expects a closing of the underlying connection
> to signal that the corresponding Session tied to the connection should be
> closed. This is part of the [SessionOpProcessor
> reference|https://tinkerpop.apache.org/docs/current/dev/provider/#_session_opprocessor].
> An option should be added to the server so that alternative would be that
> the Session closes automatically if a successful commit or rollback occurs.
> This would only affect the Bytecode portion of the SessionOpProcessor that
> makes the Session act like a Transaction. This would allow connection re-use
> of connections for sessions and enable better performance for use cases that
> require large number of transactions to occur.
> This needs to be an option to prevent breaking changes in the server in 3.7.x
> and 3.8.x. In 4.x and later, this should probably be the default option.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)