| От | Stas Kelvich |
|---|---|
| Тема | fd.c: flush data problems on osx |
| Дата | |
| Msg-id | 5CF3DFCC-26FB-4162-8933-DD2A6FE3B27A@postgrespro.ru обсуждение исходный текст |
| Ответы |
Re: fd.c: flush data problems on osx
|
| Список | pgsql-hackers |
Hi
Current implementation of pg_flush_data when called with zero offset and zero nbytes is assumed to flush all file. In
osxit uses mmap with these arguments, but according to man:
"[EINVAL] The len argument was negative or zero. Historically, the system call would not return an
error if the argument was zero. See other potential additional restrictions in the COMPAT-
IBILITY section below."
so it is generate a lot of warnings:
"WARNING: could not mmap while flushing dirty data: Invalid argument"
Call to pg_flush_data with zero offset and nbytes happens when replica starts from base backup and fsync=on. TAP test
toreproduce is attached.
One possible solution for that is just fallback to pg_fdatasync in case when offset = nbytes = 0.
Also there are no default ifdef inside this function, is there any check that will guarantee that pg_flush_data will
notend up with empty body on some platform?
---
Stas Kelvich
Postgres Professional: http://www.postgrespro.com
Russian Postgres Company
В списке pgsql-hackers по дате отправления:
Сайт использует файлы cookie для корректной работы и повышения удобства. Нажимая кнопку «Принять» или продолжая пользоваться сайтом, вы соглашаетесь на их использование в соответствии с Политикой в отношении обработки cookie ООО «ППГ», в том числе на передачу данных из файлов cookie сторонним статистическим и рекламным службам. Вы можете управлять настройками cookie через параметры вашего браузера