created ticket with reproducer [1] I think the fix should be to clear context in tx.close()
[1] https://issues.apache.org/jira/browse/IGNITE-7486 > 23 янв. 2018 г., в 1:56, Yakov Zhdanov <yzhda...@apache.org> написал(а): > > 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* >>