Re: could not truncate directory "pg_serial": apparent wraparound

Поиск
Список
Период
Сортировка
От Kevin Grittner
Тема Re: could not truncate directory "pg_serial": apparent wraparound
Дата
Msg-id 4DF072D1020000250003E418@gw.wicourts.gov
обсуждение исходный текст
Список pgsql-hackers
Heikki Linnakangas  wrote:
> While testing this, I noticed another serious bug in the
> OldSerXidSLRU handling: we never set the dirty-flag on any page.
Arg.  I never noticed that there was such a thing, although in
retrospect I should have suspected it and gone hunting for it.
> I believe the reason we haven't bumped into this in testing before
> is that when a new page is initialized, it's marked as dirty, so
> everything goes smoothly when we modify recently-zeroed pages.
Sounds plausible.
> But if a page falls out of the cache, and is later read back in and
> modified, the modifications are lost.
> 
> The comments in SLRU could be more explicit about this. It was
> coincidental that I started to wonder where the pages are marked as
> dirty, I somehow thought the SLRU functions do that for you.
Yeah -- me, too.
> Fortunately the fix is very simple, we just need to set the
> page_dirty flag whenever we modify an slru page.
OK.
> But clearly this slru stuff needs more testing. It's pretty hard to
> write good repeatable test cases for these things, though.
Yeah, that is the problem.
Thanks for finding this.  Is there anything you would like me to do
in this area right now, or are you on it?
-Kevin


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

Предыдущее
От: "Kevin Grittner"
Дата:
Сообщение: Re: SSI work for 9.1
Следующее
От: Magnus Hagander
Дата:
Сообщение: Re: .gitignore for some of cygwin files