fd.c: flush data problems on osx

Поиск
Список
Период
Сортировка
От 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  (Andres Freund <andres@anarazel.de>)
Список 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 по дате отправления:

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: Re: Add generate_series(date,date) and generate_series(date,date,integer)
Следующее
От: Robert Haas
Дата:
Сообщение: Re: Using quicksort for every external sort run