Project

General

Profile

Bug #1858

mod_upload_progress does not handle connection reset

Added by stepancheg about 11 years ago. Updated over 3 years ago.

Status:
Obsolete
Priority:
Normal
Assignee:
-
Category:
mod_uploadprogress
Target version:
Start date:
2008-12-24
Due date:
% Done:

0%

Estimated time:
Missing in 1.5.x:
Yes

Description

mod_upload_progress does not handle connection reset (for example, when client closes browser window). After connection reset mod_upload_progress GET progress-url could output random progress on reset connection. This happens because after connection reset

connection_map_entry->con

could point do different connection.

Attaching two patches, to reproduce problem and to fix.

To reproduce problem:

1. apply repr.diff
2. start lighttpd with config testing/l.conf
3. run testing/get.py script
4. open http://server:10103/up.html in browser, and submit large file
5. interrupt uploading by closing browser window

Lighttpd will exit(1), because GET /process finds current connection in connection map, that must not occur.


Files

repr.diff (13 KB) repr.diff How to reproduce stepancheg, 2008-12-24 17:44
fix.diff (1.76 KB) fix.diff How to fix stepancheg, 2008-12-24 17:44
#1

Updated by stepancheg about 11 years ago

Seems like we've forgotten about timeouts in fix.diff.

#2

Updated by icy about 11 years ago

  • Status changed from New to Assigned
  • Assignee set to stbuehler

Very nice bug report. Thank you stepancheng!
Did you use the latest revision while developing the patches? Always helpful to know the rev. :)

#3

Updated by stepancheg about 11 years ago

icy wrote:

Did you use the latest revision while developing the patches? Always helpful to know the rev. :)

We use trunk, yes. Tested on r2367.

#4

Updated by stepancheg about 11 years ago

stepancheg wrote:

Seems like we've forgotten about timeouts in fix.diff.

I lied. We did NOT forget about timeouts, sorry.

#5

Updated by stepancheg about 11 years ago

In fix.diff we've set hooks on both connection_close and conneciton_reset, because connection_reset hook is not called on connection interruption while uploading. We believe, it is a bug.

#6

Updated by icy about 11 years ago

  • Target version set to 1.5.0
#7

Updated by stbuehler about 5 years ago

  • Assignee deleted (stbuehler)
#8

Updated by gstrauss over 3 years ago

  • Missing in 1.5.x set to Yes
#9

Updated by gstrauss over 3 years ago

  • Status changed from Assigned to Obsolete

Also available in: Atom