reverbrain/elliptics

can not break transaction timeout handling cycle

antmat opened this issue · 4 comments

in dnet_trans_iterate_move_transaction we encountered endless cycle. in https://github.com/reverbrain/elliptics/blame/master/library/trans.c#L606 we can not remove transaction so the cycle never ends (call dnet_trans_remove_nolock results in error, but no one handle it). We get errors like "trying to remove out-of-trans-tree transaction" in cycle with same transaction id.
looks like timer tree and transaction tree are not in sync.

We use 2.26.3.33-3+cocaine-0.12.4.0 elliptics client and cocaine plugin (built from #550)

2.26.3.33 is almost one year old, there was a fair number of bugfixes since then, please upgrade to more recent version, 2.26.9.0 is very good version to try.

I'm not sure, but it seems that problem code was not changed (at least there is still no error check there).

dnet_trans_remove_nolock() can not really fail.
If it has found out-of-tree transaction, then it is likely a memory corruption because of some other bug.
And it is likely fixed for the last year

I'm closing it now, if bug persists with newer versions, please let us know