Re: logical replication busy-waiting on a lock

From: Petr Jelinek <petr(dot)jelinek(at)2ndquadrant(dot)com>
To: Jeff Janes <jeff(dot)janes(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Cc: Andres Freund <andres(at)anarazel(dot)de>
Subject: Re: logical replication busy-waiting on a lock
Date: 2017-05-27 13:44:05
Message-ID: f2e68406-3e8a-1ddf-1a6c-e1a96a5165bf@2ndquadrant.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On 27/05/17 01:25, Jeff Janes wrote:
> When I create a subscription in the disabled state, and then later doing
> "alter subscription sub enable;", on the master I sometimes get a tight
> loop of the deadlock detector:
>
> (log_lock_waits is on, of course)
>
> deadlock_timeout is set to 1s, so I don't know why it seems to be
> running several times per millisecond.
>
> .....
>
> And so on out to "after 9616.814", when it finally acquires the lock.
>
> The other process, 47457, is doing the initial COPY of another table as
> part of the same publisher/subscriber set.
>

We lock wait for running transactions in snapshot builder while the
snapshot is being built so I guess that's what you are seeing. I am not
quite sure why the snapshot builder would hold the xid lock for
prolonged period of time though, the XactLockTableWait releases the lock
immediately after acquiring it. In fact AFAICS everything that acquires
ShareLock on xid releases it immediately after acquiring as it's only
used for waits.

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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Petr Jelinek 2017-05-27 13:48:22 Re: logical replication busy-waiting on a lock
Previous Message Petr Jelinek 2017-05-27 10:54:50 Re: ALTER SUBSCRIPTION ..SET PUBLICATION <no name> refresh is not throwing error.