Skip to content

Reads of ngx request body socket fails with (17: File exists) randomly on SPDY #252

Closed
@pgaertig

Description

@pgaertig

nginx 1.4.1, lua-module from master, luajit

Below is the snippet (https://github.com/pgaertig/nginx-big-upload/blob/master/file_storage_handler.lua) of code catching the problem:

ngx.log(ngx.ERR, self.left)
ngx.log(ngx.ERR, current_chunk_size) -- 4096

ngx.log(ngx.ERR, 'raw0')
local chunk, err =  self.socket:receive(current_chunk_size)
ngx.log(ngx.ERR, 'raw1')
if err then
    return nil, "socket:receive :"..err
end

Shortly, gigabytes of data is read with plain HTTP-SSL, but when SPDY is enabled usually the first or second socket read fails with epoll_ctl(1, 21) failed (17: File exists). Excerpt of log:

2013/06/27 18:48:38 [error] 10188#0: *1 [lua] request_processor.lua:35: raw_body_by_chunk(): left 28672, client: 127.0.0.1, server: foo.com, request: "POST /upload HTTP/1.1", host: "foo.com", referrer: "https://foo.com/"
2013/06/27 18:48:38 [error] 10188#0: *1 [lua] request_processor.lua:36: raw_body_by_chunk(): read size 4096, client: 127.0.0.1, server: foo.com, request: "POST /upload HTTP/1.1", host: "foo.com", referrer: "https://foo.com/"
2013/06/27 18:48:38 [error] 10188#0: *1 [lua] request_processor.lua:38: raw_body_by_chunk(): raw0, client: 127.0.0.1, server: foo.com, request: "POST /upload HTTP/1.1", host: "foo.com", referrer: "https://foo.com/"
2013/06/27 18:48:38 [alert] 10188#0: *1 epoll_ctl(1, 21) failed (17: File exists), client: 127.0.0.1, server: foo.com, request: "POST /upload HTTP/1.1", host: "foo.com", referrer: "https://foo.com/"
2013/06/27 18:48:38 [error] 10188#0: *1 [lua] request_processor.lua:40: raw_body_by_chunk(): raw1, client: 127.0.0.1, server: foo.com, request: "POST /upload HTTP/1.1", host: "foo.com", referrer: "https://foo.com/"
2013/06/27 18:48:38 [error] 10188#0: *1 [lua] big-upload.lua:41: socket:receive :error, client: 127.0.0.1, server: foo.com, request: "POST /upload HTTP/1.1", host: "foo.com", referrer: "https://foo.com/"

Full log http://pastebin.com/KP1cixpS .

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions