• Thomas Munro's avatar
    Tolerate ENOSYS failure from sync_file_range(). · 483520ec
    Thomas Munro authored
    One unintended consequence of commit 9ccdd7f6 was that Windows WSL
    users started getting a panic whenever we tried to initiate data
    flushing with sync_file_range(), because WSL does not implement that
    system call.  Previously, they got a stream of periodic warnings,
    which was also undesirable but at least ignorable.
    
    Prevent the panic by handling ENOSYS specially and skipping the panic
    promotion with data_sync_elevel().  Also suppress future attempts
    after the first such failure so that the pre-existing problem of
    noisy warnings is improved.
    
    Back-patch to 9.6 (older branches were not affected in this way by
    9ccdd7f6).
    
    Author: Thomas Munro and James Sewell
    Tested-by: James Sewell
    Reported-by: Bruce Klein
    Discussion: https://postgr.es/m/CA+mCpegfOUph2U4ZADtQT16dfbkjjYNJL1bSTWErsazaFjQW9A@mail.gmail.com
    483520ec
fd.c 90.4 KB