Re: tracking commit timestamps

From: Fujii Masao <masao(dot)fujii(at)gmail(dot)com>
To: Alvaro Herrera <alvherre(at)2ndquadrant(dot)com>
Cc: Petr Jelinek <petr(at)2ndquadrant(dot)com>, Robert Haas <robertmhaas(at)gmail(dot)com>, Steve Singer <steve(at)ssinger(dot)info>, Simon Riggs <simon(at)2ndquadrant(dot)com>, Andres Freund <andres(at)2ndquadrant(dot)com>, Jim Nasby <Jim(dot)Nasby(at)bluetreble(dot)com>, Michael Paquier <michael(dot)paquier(at)gmail(dot)com>, Anssi Kääriäinen <anssi(dot)kaariainen(at)thl(dot)fi>, Heikki Linnakangas <hlinnakangas(at)vmware(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org>, Jaime Casanova <jaime(at)2ndquadrant(dot)com>
Subject: Re: tracking commit timestamps
Date: 2015-01-05 06:28:34
Message-ID: CAHGQGwFhJ3CnHo1CELEfay18yg_RA-XZT-7D8NuWUoYSZ90r4Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers pgsql-www

On Thu, Dec 4, 2014 at 12:08 PM, Fujii Masao <masao(dot)fujii(at)gmail(dot)com> wrote:
> On Wed, Dec 3, 2014 at 11:54 PM, Alvaro Herrera
> <alvherre(at)2ndquadrant(dot)com> wrote:
>> Pushed with some extra cosmetic tweaks.
>
> I got the following assertion failure when I executed pg_xact_commit_timestamp()
> in the standby server.
>
> =# select pg_xact_commit_timestamp('1000'::xid);
> TRAP: FailedAssertion("!(((oldestCommitTs) != ((TransactionId) 0)) ==
> ((newestCommitTs) != ((TransactionId) 0)))", File: "commit_ts.c",
> Line: 315)
> server closed the connection unexpectedly
> This probably means the server terminated abnormally
> before or while processing the request.
> The connection to the server was lost. Attempting reset: 2014-12-04
> 12:01:08 JST sby1 LOG: server process (PID 15545) was terminated by
> signal 6: Aborted
> 2014-12-04 12:01:08 JST sby1 DETAIL: Failed process was running:
> select pg_xact_commit_timestamp('1000'::xid);
>
> The way to reproduce this problem is
>
> #1. set up and start the master and standby servers with
> track_commit_timestamp disabled
> #2. enable track_commit_timestamp in the master and restart the master
> #3. run some write transactions
> #4. enable track_commit_timestamp in the standby and restart the standby
> #5. execute "select pg_xact_commit_timestamp('1000'::xid)" in the standby
>
> BTW, at the step #4, I got the following log messages. This might be a hint for
> this problem.
>
> LOG: file "pg_commit_ts/0000" doesn't exist, reading as zeroes
> CONTEXT: xlog redo Transaction/COMMIT: 2014-12-04 12:00:16.428702+09;
> inval msgs: catcache 59 catcache 58 catcache 59 catcache 58 catcache
> 45 catcache 44 catcache 7 catcache 6 catcache 7 catcache 6 catcache 7
> catcache 6 catcache 7 catcache 6 catcache 7 catcache 6 catcache 7
> catcache 6 catcache 7 catcache 6 catcache 7 catcache 6 snapshot 2608
> relcache 16384

This problem still happens in the master.

Regards,

--
Fujii Masao

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Fujii Masao 2015-01-05 07:22:56 Re: pg_basebackup -x/X doesn't play well with archive_mode & wal_keep_segments
Previous Message Amit Kapila 2015-01-05 06:19:28 Typo in function header for recently added function errhidecontext

Browse pgsql-www by date

  From Date Subject
Next Message Craig Ringer 2015-01-05 07:40:42 Re: tracking commit timestamps
Previous Message Noah Misch 2014-12-19 06:53:44 Re: tracking commit timestamps