Re: Logical replication: stuck spinlock at ReplicationSlotRelease

From: Albe Laurenz <laurenz(dot)albe(at)wien(dot)gv(dot)at>
To: "'Peter Eisentraut *EXTERN*'" <peter(dot)eisentraut(at)2ndquadrant(dot)com>, "pgsql-hackers(at)postgresql(dot)org" <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Logical replication: stuck spinlock at ReplicationSlotRelease
Date: 2017-06-23 10:47:23
Message-ID: A737B7A37273E048B164557ADEF4A58B53A5D6F5@ntex2010i.host.magwien.gv.at
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Peter Eisentraut wrote:
> On 6/21/17 09:02, Albe Laurenz wrote:
>> 2017-06-21 14:55:12.033 CEST [23124] LOG: could not send data to client: Broken pipe
>> 2017-06-21 14:55:12.033 CEST [23124] FATAL: connection to client lost
>> 2017-06-21 14:55:17.032 CEST [23133] LOG: logical replication apply worker for subscription "reprec" has started
>> DEBUG: received replication command: IDENTIFY_SYSTEM
>> DEBUG: received replication command: START_REPLICATION SLOT "reprec" LOGICAL 0/0 (proto_version '1', publication_names '"repsend"')
>> 2017-06-21 14:57:24.552 CEST [23124] PANIC: stuck spinlock detected at ReplicationSlotRelease, slot.c:394
>> 2017-06-21 14:57:24.885 CEST [23070] LOG: server process (PID 23124) was terminated by signal 6: Aborted
>> 2017-06-21 14:57:24.885 CEST [23070] LOG: terminating any other active server processes
>> 2017-06-21 14:57:24.887 CEST [23134] LOG: could not send data to client: Broken pipe
>> 2017-06-21 14:57:24.890 CEST [23070] LOG: all server processes terminated; reinitializing
>
> I can't reproduce that. I let it loop around for about 10 minutes and
> it was fine.
>
> I notice that you have some debug settings on. Could you share your
> exact setup steps from initdb, as well as configure options, just in
> case one of these settings is causing a problem?

System is Linux, RHEL 6.9, Kernel 2.6.32-696.1.1.el6.x86_64.

Configure options:

CFLAGS='-Wall -O0 -g' ./configure --prefix=/home/laurenz/pg10 \
--sysconfdir=/magwien/etc \
--docdir=/home/laurenz/pg10/doc \
--mandir=/home/laurenz/pg10/man \
--with-perl \
--with-tcl \
--with-tclconfig=/usr/lib64 \
--with-python \
--with-openssl \
--with-pam \
--with-gssapi \
--enable-nls=de \
--enable-thread-safety \
--with-libxml \
--with-libxslt \
--enable-debug \
--enable-cassert \
--with-ldap

$ initdb -A trust -E UTF8 --locale=de_DE.UTF-8 --lc-messages=C -T german -U postgres -W -k dbhome

$ grep -v '^[[:space:]]*#' postgresql.conf | grep -v '^$' | sed -e 's/#.*$//'

port = 5432
max_connections = 100
password_encryption = scram-sha-256
shared_buffers = 128MB
dynamic_shared_memory_type = posix
wal_level = logical
log_destination = 'stderr'
logging_collector = on
log_filename = 'postgresql-%Y-%m-%d.log'
log_rotation_size = 0
client_min_messages = debug2
log_min_messages = error
log_connections = off
log_disconnections = off
log_timezone = 'Europe/Vienna'
datestyle = 'iso, dmy'
timezone = 'Europe/Vienna'
lc_messages = 'C'
lc_monetary = 'de_DE.UTF-8'
lc_numeric = 'de_DE.UTF-8'
lc_time = 'de_DE.UTF-8'
default_text_search_config = 'pg_catalog.german'

The crash happens reliably here.

Yours,
Laurenz Albe

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Andrew Dunstan 2017-06-23 11:47:21 Re: intermittent failures in Cygwin from select_parallel tests
Previous Message sanyam jain 2017-06-23 10:11:32 pgjdbc logical replication client throwing exception