[Tarantool-patches] [PATCH v2 3/3] sql: update temporary file name format
Sergey Ostanevich
sergos at tarantool.org
Wed Dec 16 00:07:22 MSK 2020
Thanks for the patch!
As I mentioned in another thread - this one is LGTM.
Sergos
> On 14 Dec 2020, at 18:54, Leonid Vasiliev <lvasiliev at tarantool.org> wrote:
>
> Hi! Thank you for the review.
>
> On 13.12.2020 21:30, Vladislav Shpilevoy wrote:
>> Thanks for the patch!
>> On 11.12.2020 15:49, Leonid Vasiliev via Tarantool-patches wrote:
>>> The bug was consisted in fail when working with temporary files
>>> created by VDBE to sort large result of a `SELECT` statement with
>>> `ORDER BY`, `GROUP BY` clauses.
>>>
>>> Whats happen (step by step):
>>> - We have two instances on one node (sharded cluster).
>>> - A query is created that executes on both.
>>> - The first instance creates the name of the temporary file and
>>> checks a file with such name on existence.
>>> - The second instance creates the name of the temporary file
>>> (the same as in first instance) and checks a file with such name
>>> on existence.
>>> - The first instance creates a file with the `SQL_OPEN_DELETEONCLOSE`
>>> flag.
>>> - The second instance opens(try to open) the same file.
>>> - The first instance closes (and removes) the temporary file.
>>> - The second instance tries to work with the file and fails.
>>>
>>> Why did it happen:
>>> The temporary file name format has a random part, but the random
>>> generator uses a fixed seed.
>>>
>>> When it was decided to use a fixed seed:
>>> 32cb1ad298b2b55d8536a85bdfb3827c8c8739e1
>> To reference a commit we also usually include commit title in
>> ("...") after the hash.
>
> Changed to:
>
> When it was decided to use a fixed seed:
> 32cb1ad298b2b55d8536a85bdfb3827c8c8739e1
> ("sql: drop useless code from os_unix.c")
>
>> The patch itself looks good.
More information about the Tarantool-patches
mailing list