mirror of
https://github.com/postgres/postgres.git
synced 2025-08-14 02:22:38 +03:00
Prevent summarizer hang when summarize_wal turned off and back on.
Before this commit, when the WAL summarizer started up or recovered from an error, it would resume summarization from wherever it left off. That was OK normally, but wrong if summarize_wal=off had been turned off temporary, allowing some WAL to be removed, and then turned back on again. In such cases, the WAL summarizer would simply hang forever. This commit changes the reinitialization sequence for WAL summarizer to rederive the starting position in the way we were already doing at initial startup, fixing the problem. Per report from Israel Barth Rubio. Reviewed by Tom Lane. Discussion: http://postgr.es/m/CA+TgmoYN6x=YS+FoFOS6=nr6=qkXZFWhdiL7k0oatGwug2hcuA@mail.gmail.com
This commit is contained in:
@@ -7916,7 +7916,7 @@ KeepLogSeg(XLogRecPtr recptr, XLogSegNo *logSegNo)
|
||||
* If WAL summarization is in use, don't remove WAL that has yet to be
|
||||
* summarized.
|
||||
*/
|
||||
keep = GetOldestUnsummarizedLSN(NULL, NULL, false);
|
||||
keep = GetOldestUnsummarizedLSN(NULL, NULL);
|
||||
if (keep != InvalidXLogRecPtr)
|
||||
{
|
||||
XLogSegNo unsummarized_segno;
|
||||
|
Reference in New Issue
Block a user