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

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Fri May 8 00:47:52 MSK 2020


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?


More information about the Tarantool-patches mailing list