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

From: Merlin Moncure <mmoncure(at)gmail(dot)com>
To: Andres Freund <andres(at)2ndquadrant(dot)com>
Cc: Дмитрий Дегтярёв <degtyaryov(at)gmail(dot)com>, postgres performance list <pgsql-performance(at)postgresql(dot)org>
Subject: Re: Cpu usage 100% on slave. s_lock problem.
Date: 2013-09-27 12:56:45
Message-ID: CAHyXU0x4EfH4pSqG8NCv-HwbPuk+1Cai-+5QG3WiNYnp4Vnvcw@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On Thu, Sep 26, 2013 at 10:14 PM, Merlin Moncure <mmoncure(at)gmail(dot)com> wrote:
> On Thu, Sep 26, 2013 at 6:08 PM, Andres Freund <andres(at)2ndquadrant(dot)com> wrote:
>> On 2013-08-27 12:17:55 -0500, Merlin Moncure wrote:
>>> On Tue, Aug 27, 2013 at 10:55 AM, Andres Freund <andres(at)2ndquadrant(dot)com> 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...

attached is new version fixing some comment typos.

merlin

Attachment Content-Type Size
recovery4.patch application/octet-stream 3.0 KB

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Jim Garrison 2013-09-27 16:04:25 Re: Troubleshooting query performance issues - Resolved (sort of)
Previous Message Merlin Moncure 2013-09-27 03:14:10 Re: Cpu usage 100% on slave. s_lock problem.