• Heikki Linnakangas's avatar
    Retry short writes when flushing WAL. · 79ce29c7
    Heikki Linnakangas authored
    We don't normally bother retrying when the number of bytes written by
    write() is short of what was requested. It is generally assumed that a
    write() to disk doesn't return short, unless you run out of disk space.
    While writing the WAL, however, it seems prudent to try a bit harder,
    because a failure leads to PANIC. The write() is also much larger than most
    write()s in the backend (up to wal_buffers), so there's more room for
    surprises.
    
    Also retry on EINTR. All signals used in the backend are flagged SA_RESTART
    nowadays, so it shouldn't happen, but better to be defensive.
    79ce29c7
xlog.c 306 KB