Re: [HACKERS] WAL logging problem in 9.4.3?

From: Noah Misch <noah(at)leadboat(dot)com>
To: Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com>
Cc: robertmhaas(at)gmail(dot)com, pgsql-hackers(at)postgresql(dot)org, 9erthalion6(at)gmail(dot)com, andrew(dot)dunstan(at)2ndquadrant(dot)com, hlinnaka(at)iki(dot)fi, michael(at)paquier(dot)xyz
Subject: Re: [HACKERS] WAL logging problem in 9.4.3?
Date: 2020-01-27 04:22:01
Message-ID: 20200127042201.GA3119606@rfd.leadboat.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Diffing the two latest versions of one patch:
> --- v32-0002-Fix-the-defect-1.patch 2020-01-18 14:32:47.499129940 -0800
> +++ v33-0002-Fix-the-defect-1.patch 2020-01-26 16:23:52.846391035 -0800
> +@@ -2978,8 +3054,8 @@ AssertPendingSyncs_RelationCache(void)
> + LOCKTAG_RELATION)
> + continue;
> + relid = ObjectIdGetDatum(locallock->tag.lock.locktag_field2);
> +- r = RelationIdGetRelation(relid);
> +- if (r == NULL)
> ++ r = RelationIdGetRelationCache(relid);

The purpose of this loop is to create relcache entries for rels locked in the
current transaction. (The "r == NULL" case happens for rels no longer visible
in catalogs. It is harmless.) Since RelationIdGetRelationCache() never
creates a relcache entry, calling it defeats that purpose.
RelationIdGetRelation() is the right function to call.

On Tue, Jan 21, 2020 at 06:45:57PM +0900, Kyotaro Horiguchi wrote:
> Three other fixes not mentined above are made. One is the useless
> rd_firstRelfilenodeSubid in the condition to dicide whether to
> preserve or not a relcache entry

It was not useless. Test case:

create table t (c int);
begin;
alter table t alter c type bigint; -- sets rd_firstRelfilenodeSubid
savepoint q; drop table t; rollback to q; -- forgets rd_firstRelfilenodeSubid
commit; -- assertion failure, after s/RelationIdGetRelationCache/RelationIdGetRelation/ discussed above

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Kyotaro Horiguchi 2020-01-27 04:44:13 Re: [HACKERS] WAL logging problem in 9.4.3?
Previous Message Kyotaro Horiguchi 2020-01-27 04:20:09 Re: pg_stat_bgwriter.buffers_backend is pretty meaningless (and more?)