Table locking during backup

From: Artur Zając <azajac(at)ang(dot)com(dot)pl>
To: <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Table locking during backup
Date: 2019-10-07 21:00:08
Message-ID: 021f01d57d52$3397e300$9ac7a900$@ang.com.pl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi,

I cannot reproduce some scenario I found in my PostgreSQL logs.

I have two connections/processes:

Process 24755 is standard pg_backup connection with:

.

BEGIN;
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ, READ ONLY

.

LOCK TABLE gm.tableabc;

.

COPY FROM gm.tableabc

Process 5969 is normal connection where I have:

LOG: proces 5969 still waiting for AccessExclusiveLock on relations
562888531 of database 16429 after 1000.066 ms

DETAILT: Process holding the lock: 24755. Wait queue: 5969

Query that is waiting (from proces 5969) is:

CREATE TEMP TABLE IF NOT EXISTS tableabc

(

Id BIGINT DEFAULT gm.top()

) INHERITS (gm.tableabc);

I cannot reproduce what pg_dump is doing that causes waiting on proces 5969
(which lock is acquired and why). When pg_dump ends lock is released and
proces 5969 continues.

I know that doing in two parallel connections:

BEGIN;

CREATE TEMP TABLE IF NOT EXISTS tableabc

(

Id BIGINT DEFAULT gm.top()

) INHERITS (gm.tableabc);

causes waiting state on second connection until the first finished, but
pg_dump connection is read only.

Could you suggest me which part of pg_dump (which query) might cause that
behaviour.

Artur Zając

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tomas Vondra 2019-10-07 21:09:33 Re: temporary files
Previous Message dangal 2019-10-07 20:52:41 temporary files