On Thu, Jul 12, 2018 at 07:32:19AM +0000, Petr Pisar wrote:
On 2018-07-11, Zbigniew Jędrzejewski-Szmek <zbyszek(a)in.waw.pl>
wrote:
> The effects of fsync are impossible to see unless you hard-reboot the
> machine.
Are you sure non-fsynced changes are are guaranteed to be visible on
block cache level? E.g. if you mix read/write and mmaped I/O from
different processes?
Block cache — no, I don't think so. But do we have packages that do
anything like this during build? It'd require low-level fs support
and would be probably pretty fragile anyway.
> I wonder if it wouldn't be more robust to use nspawn's
syscall filter
> to filter the fsync calls.
Can the syscall filter fake a success of the syscall return value?
Correctly written applications check fsync() return value and forward
the error.
It can, e.g. something like system-nspawn --system-call-filter='~sync:0 fsync:0'
should be a good start.
Zbyszek