Re: could not truncate directory "pg_serial": apparent wraparound
От | Heikki Linnakangas |
---|---|
Тема | Re: could not truncate directory "pg_serial": apparent wraparound |
Дата | |
Msg-id | 4DF08AC9.4060707@enterprisedb.com обсуждение исходный текст |
Ответ на | Re: could not truncate directory "pg_serial": apparent wraparound ("Kevin Grittner" <Kevin.Grittner@wicourts.gov>) |
Ответы |
Re: could not truncate directory "pg_serial": apparent wraparound
|
Список | pgsql-hackers |
While testing this, I noticed another serious bug in the OldSerXidSLRU handling: we never set the dirty-flag on any page. 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. 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. Fortunately the fix is very simple, we just need to set the page_dirty flag whenever we modify an slru page. But clearly this slru stuff needs more testing. It's pretty hard to write good repeatable test cases for these things, though. -- Heikki Linnakangas EnterpriseDB http://www.enterprisedb.com
В списке pgsql-hackers по дате отправления: