masterzen / nginx-upload-progress-module

Nginx module implementing an upload progress system, that monitors RFC1867 POST uploads as they are transmitted to upstream servers.

Home Page:http://wiki.codemongers.com/NginxHttpUploadProgressModule

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Received and size are the same

dmatora opened this issue · comments

Contrary to a bug report #42 this bug is present when using http1.1 connections.

Faced the issue on nginx + nginx-extras from

  • 1.6.2 jessy debian package
  • on 1.10.3 16.04.1 LTS ubuntu package
  • on jessy dotdeb #1.12.1 debian package
    { state: "uploading", received: 15703240, size: 15703240 }

http2 is not used
10.211.55.2 - - [01/Oct/2017:19:24:35 +0300] "POST /upload.php?X-Progress-ID=1 HTTP/1.1" 400 0 "http://nem.deb/upload.php" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/59.0.3071.115 Safari/537.36"

client_body_buffer_size 32k is not helping

even tried debian wheezy nginx 1.2.1, but there progress will just keep saying {state: "starting"}

Thanks for the report.

While it is very possible that you found a bug, it is also possible that you're not testing correctly (if you look at the closed issues about the same issues in HTTP/1.1, you'll find numerous invalid bug).

Anyway, I can't tell if you encountered a bug or not, you need to activate the debug mode and send me (either privately to my e-mail address or by posting here) a full debug log of both the upload and the upload probe progress attempt.

A few notes:

  • the access log line you sent shows an HTTP error 400, which you might have to look into, since that might be indicating another error.
  • you're using the progress-id 1, it is very well possible that you are reusing this id between two attempts, so you end up seeing the report of a previous upload (note that you have to wait before reusing the same upload progress id)
  • on localhost or very fast bandwidth (like on a LAN), 15MB will be uploaded in no time at all, and thus when your first probe fires to get the upload status it is already completely finished. If you want to test on a LAN, make sure to throttle your uploads (check Apple Network Link Conditioner for instance).

Please send me the full debug log if you want to have more information.

Thanks,
Brice