[Tarantool-patches] [PATCH 2/2] vinyl: drop wasted runs in case range recovery fails
Nikita Pettik
korablev at tarantool.org
Fri May 8 01:37:23 MSK 2020
On 07 May 23:47, Vladislav Shpilevoy wrote:
> On 07/05/2020 16:16, Konstantin Osipov wrote:
> > * 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.
>
> Is there a test case and an issue on that? Nikita, could you please
> find it/file it/confirm it/reject it?
I've found this issue:
https://github.com/tarantool/tarantool/issues/4474
More information about the Tarantool-patches
mailing list