We are pleased to announce the release of ScyllaDB Java Driver 3.11.5.14 ![]()
The ScyllaDB Java Driver is an open-source, asynchronous Java client for ScyllaDB, fully compatible with Apache Cassandra. You can find it on GitHub and Maven Central.
Bug Fixes & Improvements
Improved driver-side timeout logging (#867)
Previously, when an OperationTimedOutException was raised, the log output provided no context about why it happened. Two distinct failure modes were indistinguishable in the logs:
-
Pool contention — the request was queued inside the driver waiting to borrow a connection, and the cumulative wait exceeded
readTimeoutMillis. The request may never have reached the server. -
Server-side slowness — the request reached the server but the server took longer than
readTimeoutMillisto respond (e.g. due to areader_concurrency_semaphorestall). The driver gave up, but the server may still be processing the request.
This release adds a new WARN-level log line emitted immediately before OperationTimedOutException is thrown:
Code
[<execution-id>] Driver-side timeout waiting for response from <host> —
configured timeout: <N>ms,
connection in-flight: <N>,
pool pending borrows: <N>,
pool total in-flight: <N>
How to interpret the output:
| Field | Meaning |
|---|---|
configured timeout |
The readTimeoutMillis value in effect — confirms whether a per-statement or driver-wide timeout was used |
connection in-flight |
Requests currently awaiting a response on this specific connection |
pool pending borrows |
Requests waiting to acquire any connection from the pool — a non-zero value indicates pool contention |
pool total in-flight |
Total in-flight requests across all connections to this host |
Quick diagnosis guide:
-
pool pending borrows > 0→ pool contention; requests are queuing inside the driver before reaching the server -
pool pending borrows = 0+ highconnection in-flight→ server-side slowness; requests sent but not answered within the timeout -
Unexpectedly small
configured timeout→ a non-defaultreadTimeoutMillismay be set somewhere (e.g. in a framework wrapper)
Getting the Release
Maven:
XML
<dependency>
<groupId>com.scylladb</groupId>
<artifactId>java-driver-core</artifactId>
<version>3.11.5.14</version>
</dependency>
GitHub Release: https://github.com/scylladb/java-driver/releases/tag/3.11.5.14
Full Changelog: https://github.com/scylladb/java-driver/compare/3.11.5.13…3.11.5.14
Contributors
Thanks to everyone who contributed to this release:
We welcome questions, bug reports, and feature requests — feel free to open an issue on GitHub or start a discussion here on the forum!