Nginx writing to Cephfs
Valentin V. Bartenev
vbart at nginx.com
Thu Jul 23 13:44:07 UTC 2015
On Thursday 23 July 2015 14:40:58 Vedran Furač wrote:
> Hello,
>
> 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.
>
>
It more looks like a bug in cephfs. writev() should never return
ERESTARTSYS.
wbr, Valentin V. Bartenev
More information about the nginx
mailing list