SebastianGruza commented on issue #3199:
URL: https://github.com/apache/hugegraph/issues/3199#issuecomment-5621019972

   The same loop also holds **read** paths, not only the commit. A thread dump 
from the POC deployment today (a Gremlin script doing `g.V(id)` whose id lives 
on the stalled store), trimmed:
   
   ```
   at 
org.apache.hugegraph.store.client.NodeTxExecutor.retryingInvoke(NodeTxExecutor.java:404)
   at 
org.apache.hugegraph.store.client.NodeTxExecutor.limitOne(NodeTxExecutor.java:282)
   at 
org.apache.hugegraph.store.client.NodeTxSessionProxy.get(NodeTxSessionProxy.java:245)
   at 
org.apache.hugegraph.backend.store.hstore.HstoreSessionsImpl$HstoreSession.get(HstoreSessionsImpl.java:567)
   at 
org.apache.hugegraph.backend.store.hstore.HstoreTable.getById(HstoreTable.java:478)
   at 
org.apache.hugegraph.backend.tx.GraphTransaction.queryVerticesByIds(GraphTransaction.java:811)
   at 
org.apache.hugegraph.traversal.optimize.HugeGraphStep.vertices(HugeGraphStep.java:113)
   ...
   at 
org.apache.tinkerpop.gremlin.groovy.engine.GremlinExecutor.lambda$eval$0(GremlinExecutor.java:272)
   at 
org.apache.hugegraph.auth.HugeGraphAuthProxy$ContextTask.run(HugeGraphAuthProxy.java:1247)
   ```
   
   `retryingInvoke` wraps everything that goes through `NodeTxSessionProxy` 
except the streaming scans: `get` (`limitOne`), `toList`, and 
`put`/`delete`/`merge` (`isAllTrue`). So a point lookup on a stalled partition 
hangs its thread for the same `11 × grpc.timeout.seconds + 38 s`, and here it 
is a Gremlin Server worker: the `evaluationTimeout` interrupt is swallowed 
exactly like the REST `request_timeout` one, and the Gremlin pool is smaller 
than the REST pool, so `/gremlin` stops answering first. The fix in the PR 
changes `retryingInvoke` itself, so it covers this path as well.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to