kenhuuu opened a new pull request, #3505:
URL: https://github.com/apache/tinkerpop/pull/3505
The gremlin-driver streaming reader thread used a hardcoded 30s queue poll
that ignored the configured readTimeout — so a client with readTimeout=0 ("no
timeout", the default) was still cut off at 30s, and the failure surfaced as a
raw IOException rather than a typed timeout.
The reader's wait now derives from readTimeout: 0 blocks indefinitely
(matching the aggregated path), and a positive value arms a backstop set longer
than readTimeout so the pipeline ReadTimeoutHandler fires first and terminates
the response with a proper exception. ResultSet.markError is now
first-writer-wins so a read-timeout and end-of-stream racing on the same
request can't leave the recorded cause and the completed future disagreeing.
This surfaced as flakiness in shouldProduceProperExceptionOnTimeout on slow
CI runners, where the reader repeatedly stalled on the 30s poll and pushed the
test past the build limit. A 5-minute per-test timeout is added so a reader
stall fails the test cleanly instead of hanging the build.
Review guide:
This most important part is that this PR determines how the streaming
GraphBinary inputstream reader and readTimeout option need to combine together.
Determine if the chosen path (have the InputStream respect the readTimeout) is
the right path forward.
VOTE +1
<!--
Thanks for contributing! Reminders:
+ TARGET the earliest branch where you want the change
3.7-dev -> 3.7.7 (non-breaking only)
3.8-dev -> 3.8.2 (non-breaking only)
master -> 4.0.0
+ Committers will MERGE the PR forward to newer versions
+ ADD entry to the CHANGELOG.asciidoc for the targeted version
Do not reference a JIRA number there
+ ADD JIRA number to title and link in description
+ PRs requires 3 +1s from committers OR
1 +1 and 7 day wait to merge.
+ MORE details: https://s.apache.org/rtnal
-->
--
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]