Skip to content

Commit f679c92

Browse files
committed
#892 Publish jdp-2026-02
1 parent a3d6599 commit f679c92

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

devdoc/jdp/jdp-2026-02-cancellation-thread-safety-backport.adoc

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@
66

77
== Status
88

9-
* Draft
10-
* Proposed for: Jaybird 5.0.11, Jaybird 6.0.4
9+
* Published: 2026-01-10
10+
* Implemented in: Jaybird 5.0.11, Jaybird 6.0.4
1111

1212
== Type
1313

@@ -31,8 +31,11 @@ However, we will only make changes so cancellation is threadsafe with regard to
3131

3232
* Use `withTransmitLock`
3333
** within `FbWireStatement` implementations
34+
** within `FbWireTransaction` implementations
35+
+
36+
Given the likelihood of commit after a statement operation in auto-commit, thread-safety of commit/rollback with regard to cancellation turned out to be needed during testing.
3437
** with the `writeDirect` method used by cancellation
35-
** with sync operations for deferred operations
38+
** with sync operations for deferred operations (Jaybird 6 only)
3639
* As much as possible, avoid changing method signatures, method visibility, and removing or renaming methods
3740

3841
== Consequences
@@ -44,6 +47,8 @@ Given this backport does not cover the entire wire protocol, thread-safety of ca
4447
Implementers of Jaybird forks or alternative wire protocol versions building on classes in `org.firebirdsql.gds.ng.wire` package and "`sub`"-packages will need to change their code to correctly obtain the transmit lock during transmission to the server for statement operations.
4548
Given this backport is less invasive compared to the changes in Jaybird 7, there is some risk of "`missing`" necessary changes.
4649

50+
Contrary to the implementation in Jaybird 7, the implementation in Jaybird 5 and 6 does rely on the reentrancy of the lock.
51+
4752
It is possible that this change will not fully address cancellation issues.
4853
We suspect deferred response handling might need additional work, and result sets may need to be invalidated/closed by cancellation.
4954
This will be subject to further investigation after this thread-safety issue has been addressed.

0 commit comments

Comments
 (0)