Re: fd.c: flush data problems on osx
От | Andres Freund |
---|---|
Тема | Re: fd.c: flush data problems on osx |
Дата | |
Msg-id | 20160317172328.uohb5bkwfszrlkqb@alap3.anarazel.de обсуждение исходный текст |
Ответ на | fd.c: flush data problems on osx (Stas Kelvich <s.kelvich@postgrespro.ru>) |
Ответы |
Re: fd.c: flush data problems on osx
|
Список | pgsql-hackers |
Hi, On 2016-03-17 20:09:53 +0300, Stas Kelvich wrote: > 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" Hm, yea, that's buggy. > One possible solution for that is just fallback to pg_fdatasync in case when offset = nbytes = 0. Hm, that's a bit heavyweight. I'd rather do an lseek(SEEK_END) to get the file size. Could you test that? > Also there are no default ifdef inside this function, is there any > check that will guarantee that pg_flush_data will not end up with > empty body on some platform? There doesn't need to be - it's purely "advisory", i.e. just an optimization. Greetings, Andres Freund
В списке pgsql-hackers по дате отправления: