Re: IgniteTxStateImpl's non-threadsafe fields may cause crashes and/or data loss

2023-05-19 Thread Anton Vinogradov
>> This invariant is violated in many places. At least in half of the messages: org.apache.ignite.internal.processors.cache.distributed.GridDistributedLockRequest#partition org.apache.ignite.internal.processors.cache.distributed.GridDistributedUnlockRequest#partition org.apache.ignite.internal.pro

Re: IgniteTxStateImpl's non-threadsafe fields may cause crashes and/or data loss

2023-05-19 Thread Ivan Daschinsky
>> Tx processing is supposed to be thread bound by hashing the version to a partition This invariant is violated in many places. The most notorious example is tx recovery. Another example: I just added an assertion that checks tId of a creator thread with tId of an accessor thread. TxMultiCacheAsy

Re: IgniteTxStateImpl's non-threadsafe fields may cause crashes and/or data loss

2023-05-19 Thread Alexei Scherbakov
Tx processing is supposed to be thread bound by hashing the version to a partition, see methods like [1] If for some cases this invariant is broken, this should be fixed. [1] org.apache.ignite.internal.processors.cache.distributed.dht.GridDhtTxPrepareRequest#partition пт, 19 мая 2023 г. в 15:57,

IgniteTxStateImpl's non-threadsafe fields may cause crashes and/or data loss

2023-05-19 Thread Anton Vinogradov
Igniters, My team was faced with node failure [1] because of non-threadsafe collections usage. IgniteTxStateImpl's fields - activeCacheIds - txMap are not thread safe, but are widely used from different threads without the proper sync. The main question is ... why? According to the research, we