Thread: avoid unnecessary failure to open restored WAL files

avoid unnecessary failure to open restored WAL files

From
Fujii Masao
Date:
Hi,

In HEAD and 9.2, the following scenario happens in archive recovery.

1. The archived WAL file is restored onto the temporary file name
"RECOVERYXLOG".
2. The restored WAL file is renamed to the correct file name like
000000010000000000000002.
3. The startup process tries to open the temporary file even though
it's already been renamed
    and doesn't exist. This always fails.
4. The startup process retries to open the correct file as a WAL file
in pg_xlog directory instead
    of the archived file. This succeeds.

The above failure of file open is unnecessary, so I think we can avoid
that. Attached patch
changes the startup process so that it opens the correct restored WAL
file after restoring the
archived WAL file.

Regards,

--
Fujii Masao

Attachment

Re: avoid unnecessary failure to open restored WAL files

From
Simon Riggs
Date:
On 2 August 2012 17:18, Fujii Masao <masao.fujii@gmail.com> wrote:
> Hi,
>
> In HEAD and 9.2, the following scenario happens in archive recovery.
>
> 1. The archived WAL file is restored onto the temporary file name
> "RECOVERYXLOG".
> 2. The restored WAL file is renamed to the correct file name like
> 000000010000000000000002.
> 3. The startup process tries to open the temporary file even though
> it's already been renamed
>     and doesn't exist. This always fails.
> 4. The startup process retries to open the correct file as a WAL file
> in pg_xlog directory instead
>     of the archived file. This succeeds.
>
> The above failure of file open is unnecessary, so I think we can avoid
> that. Attached patch
> changes the startup process so that it opens the correct restored WAL
> file after restoring the
> archived WAL file.

Looks to me that the strncpy is backwards and will still fail.  Please
double check.

-- Simon Riggs                   http://www.2ndQuadrant.com/PostgreSQL Development, 24x7 Support, Training & Services


Re: avoid unnecessary failure to open restored WAL files

From
Fujii Masao
Date:
On Wed, Aug 8, 2012 at 3:08 AM, Simon Riggs <simon@2ndquadrant.com> wrote:
> On 2 August 2012 17:18, Fujii Masao <masao.fujii@gmail.com> wrote:
>> Hi,
>>
>> In HEAD and 9.2, the following scenario happens in archive recovery.
>>
>> 1. The archived WAL file is restored onto the temporary file name
>> "RECOVERYXLOG".
>> 2. The restored WAL file is renamed to the correct file name like
>> 000000010000000000000002.
>> 3. The startup process tries to open the temporary file even though
>> it's already been renamed
>>     and doesn't exist. This always fails.
>> 4. The startup process retries to open the correct file as a WAL file
>> in pg_xlog directory instead
>>     of the archived file. This succeeds.
>>
>> The above failure of file open is unnecessary, so I think we can avoid
>> that. Attached patch
>> changes the startup process so that it opens the correct restored WAL
>> file after restoring the
>> archived WAL file.
>
> Looks to me that the strncpy is backwards and will still fail.  Please
> double check.

Oh, you're right. I wrongly placed two arguments "source" and "destination"
of strncpy in the reverse order... Attached is the updated version of the patch.

Regards,

--
Fujii Masao

Attachment