Re: BUG #4879: bgwriter fails to fsync the file in recovery mode
От | Tom Lane |
---|---|
Тема | Re: BUG #4879: bgwriter fails to fsync the file in recovery mode |
Дата | |
Msg-id | 24705.1245950722@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: BUG #4879: bgwriter fails to fsync the file in recovery mode (Heikki Linnakangas <heikki.linnakangas@enterprisedb.com>) |
Ответы |
Re: BUG #4879: bgwriter fails to fsync the file in recovery
mode
|
Список | pgsql-bugs |
Heikki Linnakangas <heikki.linnakangas@enterprisedb.com> writes: > It's tempting to just remove the "!isRedo" condition, but then we have > another problem: if bgwriter hasn't been started yet, and the shmem > queue is full, we get stuck in register_unlink() trying to send the > message and failing. > In archive recovery, we always start bgwriter at the beginning of WAL > replay. In crash recovery, we don't start bgwriter until the end of wAL > replay. So we could change the "!isRedo" condition to > "!InArchiveRecovery". It's not a very clean solution, but it's simple. I looked through the callers of smgrdounlink(), and found that FinishPreparedTransaction passes isRedo = true. I'm not sure at the moment what the reasoning behind that was, but it does seem to mean that checking InArchiveRecovery instead of isRedo may not be quite right. regards, tom lane
В списке pgsql-bugs по дате отправления: