Nginx writing to Cephfs

Vedran Furač vedran.furac at
Thu Jul 23 12:40:58 UTC 2015


I'm having an issue with nginx writing to cephfs. Often I'm getting:

writev() "/home/ceph/temp/44/94/1/0000119444" failed (4: Interrupted
system call) while reading upstream

looking with strace, this happens:

write(65, "e\314\366\36\302"..., 65536) = ? ERESTARTSYS (To be restarted)

It happens after first 4MBs (exactly) are written, subsequent write gets
ERESTARTSYS (sometimes, but more rarely, it fails after first 32 or
64MBs, etc are written). Apparently nginx doesn't expect this and
doesn't handle it so it cancels writes and deletes this partial file.
Looking at the code, I saw it doesn't handle ERESTARTSYS in any
different way compared to other write errors. Shouldn't it try to write
same data again for a couple of times before finally giving up and
erroring out? Do you have any suggestions on how to resolve this? I'm
using latest stable nginx.


More information about the nginx mailing list