Re: [COMMITTERS] pgsql: Write a WAL record whenever we perform an operation without - Mailing list pgsql-hackers

From Heikki Linnakangas
Subject Re: [COMMITTERS] pgsql: Write a WAL record whenever we perform an operation without
Date
Msg-id 4B669FF8.806@enterprisedb.com
Whole thread Raw
In response to Re: [COMMITTERS] pgsql: Write a WAL record whenever we perform an operation without  (Simon Riggs <simon@2ndQuadrant.com>)
Responses Re: [COMMITTERS] pgsql: Write a WAL record whenever we perform an operation without
Re: Re: [COMMITTERS] pgsql: Write a WAL record whenever we perform an operation without
List pgsql-hackers
Simon Riggs wrote:
> I'm seeing these messages in the standby server log:
> 
> WARNING:  unlogged operation performed, data may be missing
> HINT:  This can happen if you temporarily disable archive_mode without
> taking a new base backup.
> CONTEXT:  xlog redo unlogged operation: heap inserts on "pg_temp_65646"
> 
> which connected with operations on temp tables, probably as a result of
> VACUUM FULL and CLUSTER.
> 
> I don't think those messages should be there.

Hmm. The "unlogged" record is written here:

...
void
heap_sync(Relation rel)
{char reason[NAMEDATALEN + 30];
/* temp tables never need fsync */if (rel->rd_istemp)    return;
snprintf(reason, sizeof(reason), "heap inserts on \"%s\"",
RelationGetRelationName(rel));XLogReportUnloggedStatement(reason);
...


So it clearly shouldn't be written for temp relations. Apparently the
rd_istemp flag not set correctly after CLUSTER / VACUUM FULL.

Can you reproduce that?

--  Heikki Linnakangas EnterpriseDB   http://www.enterprisedb.com


pgsql-hackers by date:

Previous
From: Greg Stark
Date:
Subject: Re: Hot Standby and VACUUM FULL
Next
From: Simon Riggs
Date:
Subject: Re: [COMMITTERS] pgsql: Write a WAL record whenever we perform an operation without