Commit da32918
committed
Document the unanswered-commit case in transactional persistence
The transactional mode's one failure that is not a rejection: an
unanswered commit. If `commitTransaction` times out client-side, the
broker may have committed anyway.
Nothing local resolves it - retrying blocks for up to `max.block.ms`
inside the poll cycle, and `abortTransaction` throws rather than aborting
while a commit is unresolved, a throw `commitBatch` already discards.
Nothing is lost either way: the input offset rides the same transaction,
so snapshot and offset commit together or not at all. Under the default
`ignorePersistErrors = false` the failure tears the module down and the
next producer's `initTransactions` settles the transaction broker-side.
Under `ignorePersistErrors = true` it is swallowed and the producer stays
unusable for the rest of the assignment, so the partition stops persisting
AND stops advancing offsets until the next rebalance - frozen and
self-consistent, not corrupted.
GroupCommitSpec gains a case pinning that the commit is never retried in
place. No production code changes.
The contract and a measurement of it are pinned as ext(K16) in the
verification research corpus; that harness is not checked in, since it
pins a kafka-clients contract rather than kafka-flow behavior.1 parent 6f76364 commit da32918
2 files changed
Lines changed: 48 additions & 7 deletions
File tree
- docs
- persistence-kafka/src/test/scala/com/evolutiongaming/kafka/flow/kafkapersistence
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
63 | 63 | | |
64 | 64 | | |
65 | 65 | | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
66 | 76 | | |
67 | 77 | | |
68 | 78 | | |
| |||
Lines changed: 38 additions & 7 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
15 | 16 | | |
16 | 17 | | |
17 | 18 | | |
| |||
235 | 236 | | |
236 | 237 | | |
237 | 238 | | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
238 | 264 | | |
239 | 265 | | |
240 | 266 | | |
| |||
251 | 277 | | |
252 | 278 | | |
253 | 279 | | |
254 | | - | |
| 280 | + | |
| 281 | + | |
| 282 | + | |
255 | 283 | | |
256 | 284 | | |
257 | 285 | | |
258 | | - | |
259 | | - | |
| 286 | + | |
| 287 | + | |
| 288 | + | |
260 | 289 | | |
261 | 290 | | |
262 | 291 | | |
263 | | - | |
264 | | - | |
265 | | - | |
266 | | - | |
| 292 | + | |
| 293 | + | |
| 294 | + | |
| 295 | + | |
| 296 | + | |
| 297 | + | |
267 | 298 | | |
268 | 299 | | |
269 | 300 | | |
| |||
0 commit comments