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]

Reply via email to