Re: should frontend tools use syncfs() ?
От | Justin Pryzby |
---|---|
Тема | Re: should frontend tools use syncfs() ? |
Дата | |
Msg-id | ZPImMi8smaPsXjGK@pryzbyj2023 обсуждение исходный текст |
Ответ на | Re: should frontend tools use syncfs() ? (Nathan Bossart <nathandbossart@gmail.com>) |
Ответы |
Re: should frontend tools use syncfs() ?
|
Список | pgsql-hackers |
> + if (!user_opts.sync_method) > + user_opts.sync_method = pg_strdup("fsync"); why pstrdup? > +parse_sync_method(const char *optarg, SyncMethod *sync_method) > +{ > + if (strcmp(optarg, "fsync") == 0) > + *sync_method = SYNC_METHOD_FSYNC; > +#ifdef HAVE_SYNCFS > + else if (strcmp(optarg, "syncfs") == 0) > + *sync_method = SYNC_METHOD_SYNCFS; > +#endif > + else > + { > + pg_log_error("unrecognized sync method: %s", optarg); > + return false; > + } This should probably give a distinct error when syncfs is not supported than when it's truely recognized. The patch should handle pg_dumpall, too. Note that /bin/sync doesn't try to de-duplicate, it does just what you tell it. $ strace -e openat,syncfs,fsync sync / / / -f ... openat(AT_FDCWD, "/", O_RDONLY|O_NONBLOCK) = 3 syncfs(3) = 0 openat(AT_FDCWD, "/", O_RDONLY|O_NONBLOCK) = 3 syncfs(3) = 0 openat(AT_FDCWD, "/", O_RDONLY|O_NONBLOCK) = 3 syncfs(3) = 0 +++ exited with 0 +++
В списке pgsql-hackers по дате отправления: