spurious wrap-around shutdown

Поиск
Список
Период
Сортировка
От Jeff Janes
Тема spurious wrap-around shutdown
Дата
Msg-id CAMkU=1y2KTWbn23Rdk+4O83qx3Ao2QoCVffDUDBfjSuLPaYudg@mail.gmail.com
обсуждение исходный текст
Ответы Re: spurious wrap-around shutdown  (Andres Freund <andres@2ndquadrant.com>)
Список pgsql-hackers
In 9.3 HEAD I am getting what seems to be spurious wrap-around shutdowns.


postgres=# SELECT datname, datfrozenxid, age(datfrozenxid) FROM pg_database;

  datname  | datfrozenxid |    age
-----------+--------------+-----------
 template1 |   2621759843 |         0
 template0 |   2621759843 |         0
 postgres  |   2571759843 |  50000000
 jjanes    |   2437230921 | 184528922


postgres=# select txid_current();
ERROR:  database is not accepting commands to avoid wraparound data loss in database "jjanes"
HINT:  Stop the postmaster and use a standalone backend to vacuum that database.
You might also need to commit or roll back old prepared transactions.


184,528,922  is well short of 2 billion, so what is going on?

I thought maybe the ShmemVariableCache were not getting updated when vacuum finished, but if I restart the server (forcing shared memory to get rebuilt from disk) the condition continues.

I tried setting a breakpoint on SetTransactionIdLimit, but that seems to get executed on startup before the -W flag takes effect, so I can't find it.

Any tips on how to debug this?  I figure the next step is running git bisect, but that is sure to be tedious.

I'm using a variant of the below to reach wraparound quicker, perhaps that is introducing a bug?



Cheers,

Jeff

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Josh Berkus
Дата:
Сообщение: [9.4 CF 1] Commit Fest has started
Следующее
От: Fujii Masao
Дата:
Сообщение: Re: Fix pgstattuple/pgstatindex to use regclass-type as the argument