Re: Fairly serious bug induced by latest guc enum changes
От | Magnus Hagander |
---|---|
Тема | Re: Fairly serious bug induced by latest guc enum changes |
Дата | |
Msg-id | 486A7E22.7050405@hagander.net обсуждение исходный текст |
Ответ на | Re: Fairly serious bug induced by latest guc enum changes (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: Fairly serious bug induced by latest guc enum changes
|
Список | pgsql-hackers |
Tom Lane wrote: > Magnus Hagander <magnus@hagander.net> writes: >> Tom Lane wrote: >>> Hmm ... or at least more or less fixed. Seems like there's no provision >>> to close and reopen the file if enableFsync changes. Not sure if that's >>> worth worrying about. > >> We didn't have that before either, did we? > > No, so I think it's a pre-existing bug. Ok, at least I'm reading the code right. >> We close it when the sync bit >> changes, but not just if we change say between fsync() and fdatasync(). >> Is there any actual reason we'd want to close it? > > The point is that if you turn the fsync GUC on or off while using a wal > sync mode that requires supplying an option flag to open(), then really > you ought to close the WAL file and re-open it with the new correct > option flags. The fact that we're not doing that implies that the > effects of a change in fsync might not fully take effect until the next > WAL segment is started. Whether this is worth fixing isn't real clear. What scenario does it actually happen in, though? Doesn't the check: if (get_sync_bit(sync_method) != get_sync_bit(new_sync_method)) take care of that? If the sync bit changed, we close the file? Or are you talking about changing the variable "fsync"? If so, doesn't "fsync=off" also change the behavior of other parts of the code, so it's not just WAL, which means it'd be pretty unsafe *anyway* unless you actually "sync" the disks, and not just fsync? //Magnus //Magnus
В списке pgsql-hackers по дате отправления: