ignite-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Alexey Goncharuk <alexey.goncha...@gmail.com>
Subject Re: cache operation failed after transaction rolled back due to deadlock
Date Wed, 31 Jan 2018 08:14:40 GMT
Aleksey, thanks, we will take a look at this ticket and fix it in 2.5.

2018-01-23 19:57 GMT+03:00 Yakov Zhdanov <yzhdanov@gridgain.com>:

> Alex Goncharuk, can you please take a look and comment? Test seems to be
> valid from my standpoint.
>
> Yakov Zhdanov,
> www.gridgain.com
>
> 2018-01-22 23:14 GMT-08:00 ALEKSEY KUZNETSOV <alkuznetsov.sb@gmail.com>:
>
> >
> > 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 <yzhdanov@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.sb@gmail.com
> >:
> > >
> > >> Sure
> > >>
> > >> пн, 22 янв. 2018 г. в 12:25, Andrey Gura <agura@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.sb@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*
> > >>
> >
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message