Re: Cpu usage 100% on slave. s_lock problem.

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Sep 26, 2013 at 6:08 PM, Andres Freund <andres@xxxxxxxxxxxxxxx> wrote:
> On 2013-08-27 12:17:55 -0500, Merlin Moncure wrote:
>> On Tue, Aug 27, 2013 at 10:55 AM, Andres Freund <andres@xxxxxxxxxxxxxxx> wrote:
>> > On 2013-08-27 09:57:38 -0500, Merlin Moncure wrote:
>> >> + bool
>> >> + RecoveryMightBeInProgress(void)
>> >> + {
>> >> +     /*
>> >> +      * We check shared state each time only until we leave recovery mode. We
>> >> +      * can't re-enter recovery, so there's no need to keep checking after the
>> >> +      * shared variable has once been seen false.
>> >> +      */
>> >> +     if (!LocalRecoveryInProgress)
>> >> +             return false;
>> >> +     else
>> >> +     {
>> >> +             /* use volatile pointer to prevent code rearrangement */
>> >> +             volatile XLogCtlData *xlogctl = XLogCtl;
>> >> +
>> >> +             /* Intentionally query xlogctl without spinlocking! */
>> >> +             LocalRecoveryInProgress = xlogctl->SharedRecoveryInProgress;
>> >> +
>> >> +             return LocalRecoveryInProgress;
>> >> +     }
>> >> + }
>> >
>> > I don't think it's acceptable to *set* LocalRecoveryInProgress
>> > here. That should only be done in the normal routine.
>>
>> quite right -- that was a major error -- you could bypass the
>> initialization call to the xlog with some bad luck.
>
> I've seen this in profiles since, so I'd appreciate pushing this
> forward.

roger that -- will push ahead when I get into the office...

merlin


-- 
Sent via pgsql-performance mailing list (pgsql-performance@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-performance




[Postgresql General]     [Postgresql PHP]     [PHP Users]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Yosemite]

  Powered by Linux