Guys, can you check if you call tx.close(); or properly use try-with-resources construct?
Tx context should not be cleared automatically otherwise user would not get any notification that original transaction failed. I believe context should be cleared on tx.close(). Anyway, let's take a look at reproducer from Alexey first. --Yakov 2018-01-22 2:02 GMT-08:00 ALEKSEY KUZNETSOV <alkuznetsov...@gmail.com>: > Sure > > пн, 22 янв. 2018 г. в 12:25, Andrey Gura <ag...@apache.org>: > > > It seems that problem isn't related with deadlock detection and should be > > reproducible when deadlock detection disabled. > > > > Anyway it sounds like a bug. Could you please file a ticket and provide > > minimal reproducer? > > > > 19 янв. 2018 г. 3:55 PM пользователь "ALEKSEY KUZNETSOV" < > > alkuznetsov...@gmail.com> написал: > > > > > Hi, Igntrs! > > > > > > > > > > > > When you have your transaction rolled back due to detected deadlock, > you > > > are unabled to perform cache operations (in thread where tx was started > > and > > > rolled back), because it leads to TransactionTimeoutException. > > > > > > > > > > > > The reason of such behavior is that tx thread map (txManager#threadMap) > > was > > > not cleared from tx when roll back occured. > > > > > > In GridNearTxLocal#onTimeout you can find comment on that : > > > > > > *// Note: if rollback asynchronously on timeout should not clear thread > > > map* > > > > > > *// since thread started tx still should be able to see this tx.* > > > > > > Cache operation picks up tx from that map and throws exception. > > > > > > > > > > > > So, one must create new thread in order to perform cache operations? > > > > > > > > > -- > > > > > > *Best Regards,* > > > > > > *Kuznetsov Aleksey* > > > > > > > > -- > > *Best Regards,* > > *Kuznetsov Aleksey* >