Re: locking [user] catalog tables vs 2pc vs logical rep
От | vignesh C |
---|---|
Тема | Re: locking [user] catalog tables vs 2pc vs logical rep |
Дата | |
Msg-id | CALDaNm1YuxZR3OsDSbv0MAQ_7a7emjcvATJhh4QNi71w+=NBRA@mail.gmail.com обсуждение исходный текст |
Ответ на | RE: locking [user] catalog tables vs 2pc vs logical rep ("osumi.takamichi@fujitsu.com" <osumi.takamichi@fujitsu.com>) |
Ответы |
RE: locking [user] catalog tables vs 2pc vs logical rep
("osumi.takamichi@fujitsu.com" <osumi.takamichi@fujitsu.com>)
|
Список | pgsql-hackers |
On Thu, Jun 3, 2021 at 9:18 AM osumi.takamichi@fujitsu.com <osumi.takamichi@fujitsu.com> wrote: > > On Tuesday, June 1, 2021 4:33 PM Peter Smith <smithpb2250@gmail.com> > > To: Andres Freund <andres@anarazel.de> > > Cc: PostgreSQL-development <pgsql-hackers@postgresql.org>; Amit Kapila > > <amit.kapila16@gmail.com>; Markus Wanner > > <markus.wanner@enterprisedb.com> > > Subject: Re: locking [user] catalog tables vs 2pc vs logical rep > > > > Hi. > > > > The attached PG docs patch about catalog deadlocks was previously > > implemented in another thread [1], but it seems more relevant to this one. > > > > PSA. > Thank you for providing the patch. > I have updated your patch to include some other viewpoints. > > For example, CLUSTER command scenario > that also causes hang of PREPARE in synchronous mode. > We get this deadlock, using the 2PC patch-set. > > FYI, the scenario is > (1) create a table with a trigger > (2) create pub and sub in synchronous mode > (3) then, execute CLUSTER pg_trigger USING pg_trigger_oid_index, > and do some operations (e.g. INSERT) on the trigger-attached table and PREPARE > > The mechanism of this is > walsender tries to take a lock on pg_trigger if the table has a trigger, > but, pg_trigger is already locked by the CLUSTER command, which leads to the deadlock. > Then, this scenario requires some operations on the table which has trigger > because it invokes the walsender to take the lock described above. > > I also included the description about TRUNCATE on user_catalog_table > in the patch. Please have a look at this patch. 1) I was not able to generate html docs with the attached patch: logicaldecoding.sgml:1128: element sect1: validity error : Element sect1 content does not follow the DTD, expecting (sect1info? , (title , subtitle? , titleabbrev?) , (toc | lot | index | glossary | bibliography)* , (((calloutlist | glosslist | bibliolist | itemizedlist | orderedlist | segmentedlist | simplelist | variablelist | caution | important | note | tip | warning | literallayout | programlisting | programlistingco | screen | screenco | screenshot | synopsis | cmdsynopsis | funcsynopsis | classsynopsis | fieldsynopsis | constructorsynopsis | destructorsynopsis | methodsynopsis | formalpara | para | simpara | address | blockquote | graphic | graphicco | mediaobject | mediaobjectco | informalequation | informalexample | informalfigure | informaltable | equation | example | figure | table | msgset | procedure | sidebar | qandaset | task | anchor | bridgehead | remark | highlights | abstract | authorblurb | epigraph | indexterm | beginpage)+ , (refentry* | sect2* | simplesect*)) | refentry+ | sect2+ | simplesect+) , (toc | lot | index | glossary | bibliography)*), got (title sect2 sect2 note ) </sect1> 2) You could change hang to deadlock: + logical decoding of published table within the same transaction leads to a hang. Regards, Vignesh
В списке pgsql-hackers по дате отправления:
Предыдущее
От: Amit KapilaДата:
Сообщение: Re: Decoding of two-phase xacts missing from CREATE_REPLICATION_SLOT command