[Tarantool-patches] [PATCH v3 3/3] vinyl: clean-up write iterator if vy_task_write_run() fails

Nikita Pettik korablev at tarantool.org
Fri May 8 01:16:36 MSK 2020


On 07 May 10:53, Aleksandr Lyapunov wrote:
> On 5/7/20 3:36 AM, Nikita Pettik wrote:
> > On 06 May 13:37, Aleksandr Lyapunov wrote:
> > > It's very strange, as I see start() method already makes its own cleanup
> > > in case of failure and does not require 'stop' call in this case.
> > > If it does not do it correctly - it must be fixed (or removed completely,
> > > but it seems to be very serious change).
> > Turns out start() doesn't provide proper clean-up: in case
> > vy_write_iterator_add_src() fails, only last source is cleaned up,
> > meanwhile the rest will be destroyed in vy_write_iterator_stop().
> > I've moved clean-up part from stop() method right to start(). Here's diff:
> 
> Could you see commit 2f17c929? I see it in master.
> It does exactly the same and some other good looking related changes.
>

I explored that patch. It is not backported to 1.10 (obviously) since
other changes except for additional clean-up in vy_write_iterator_start()
look like refactoring (we push to 1.10 only bug fixes). It can't be
cherry-picked now since code is bit different and 1.10 lacks some
features (like heap helpers to determine whether heap node is linked or
not). So I suggest to leave my patch as is for 1.10 branch and backport
test case to master branch.
 


More information about the Tarantool-patches mailing list