anton-vinogradov commented on code in PR #13095:
URL: https://github.com/apache/ignite/pull/13095#discussion_r3599444192
##########
modules/core/src/main/java/org/apache/ignite/internal/processors/cache/transactions/IgniteTxHandler.java:
##########
@@ -430,12 +432,21 @@ public IgniteInternalFuture<GridNearTxPrepareResponse>
prepareNearTxLocal(
IgniteTxEntry firstEntry;
try {
- IgniteTxEntry firstWrite = unmarshal(req.writes());
- IgniteTxEntry firstRead = unmarshal(req.reads());
+ IgniteTxEntry firstWrite = initialize(req.writes(),
req.topologyVersion());
+ IgniteTxEntry firstRead = initialize(req.reads(),
req.topologyVersion());
firstEntry = firstWrite != null ? firstWrite : firstRead;
}
catch (IgniteCheckedException e) {
+ try {
+ req.onClassError(e);
Review Comment:
Reopening with new data — the removal turned out to be a real regression,
and my earlier concession was based on an incomplete test set. RunAll on the
branch went red in `IgniteCacheRecreateTest` (implicit tx + cache
destroy/recreate, 3 tests timing out; never failed in 68 master runs), and a
local A/B pinned it to exactly this block: without it 3/3 hang on
`updFut.get(10s)`, with it 3/3 pass plus the whole class 13/13. The explanation
reconciles both sides: master lives with the bare `return new
GridFinishedFuture<>(e)` because there these errors surface earlier — in
`GridCacheIoManager.unmarshall`, where `processFailedMessage` sends the error
response before the handler runs. This PR moved the entry context binding
(`initialize(entries, topVer)`) into `prepareNearTx`, so a "cache recreated"
failure now surfaces past `GridCacheIoManager`'s catch — and the response duty
moved here with it. Your breakpoint experiment was right for its case: P2p
class errors are still caught a
t the message level and never reach this block; the recreate path is the one
that does. Restored the block with a comment explaining why it must stay.
--
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]