[Tarantool-patches] [PATCH 2/2] vinyl: drop wasted runs in case range recovery fails

Konstantin Osipov kostja.osipov at gmail.com
Thu May 7 17:16:53 MSK 2020


* Nikita Pettik <korablev at tarantool.org> [20/05/07 16:05]:
> > 
> > Reference counter looks like not a good information channel.
> > Could you use run->fd to check whether the run was really recovered?
> > vy_run_recover() leaves it -1, when fails.
> > 
> > Otherwise this won't work the second when we will ref the run anywhere
> > else.
> 
> Firstly, lsm at this point is not restored, ergo it is not functional
> and run can't be refed somewehere else - it's life span is clearly
> defined. Secondly, the problem is not in the last run (which failed to
> recover) but in those which are already recovered at the moment.
> Recovered runs feature valid fds. Finally, slice recover may fail
> not only in vy_run_recover(), but also due to oom, broken vylog etc.
> All these scenarios lead to the same situation.

It should be partially restored in case of force_recovery. It's
another bug force_recovery is not respected, I've been sending a
fix to the list a few months ago.

-- 
Konstantin Osipov, Moscow, Russia


More information about the Tarantool-patches mailing list