Project

General

Profile

Bug #1262

mod_uploadprogress bug

Added by chernousov about 12 years ago. Updated almost 11 years ago.

Status:
Invalid
Priority:
Normal
Assignee:
-
Category:
core
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Missing in 1.5.x:

Description

I'm using mod_uploadprogress and javascript to display upload progress.
I do 2 requests per second for http://some.domain.com/progress with X-Progress-Id header. Below is the log what client receives from server (log is written from bottom to top).


18:14:01: new Object({ 'state' : 'done', 'size' : 173011682, 'received' : 173011682})
18:14:01: new Object({ 'state' : 'starting' })
18:14:00: new Object({ 'state' : 'starting' })
18:14:00: new Object({ 'state' : 'starting' })
18:13:59: new Object({ 'state' : 'starting' })
18:13:59:
18:13:59:
18:13:58:
18:13:58:
18:13:57:
18:13:57:
18:13:56:
18:13:56:
18:13:55: new Object({ 'state' : 'starting' })
18:13:54: new Object({ 'state' : 'starting' })
18:13:54: new Object({ 'state' : 'starting' })
18:13:53: new Object({ 'state' : 'starting' })
18:13:53: new Object({ 'state' : 'starting' })
18:13:52: new Object({ 'state' : 'starting' })
18:13:52: new Object({ 'state' : 'starting' })
18:13:51: new Object({ 'state' : 'starting' })
18:13:51: new Object({ 'state' : 'starting' })
18:13:50: new Object({ 'state' : 'starting' })
18:13:50: new Object({ 'state' : 'starting' })
18:13:49: new Object({ 'state' : 'starting' })
18:13:49: new Object({ 'state' : 'starting' })
18:13:48: new Object({ 'state' : 'starting' })
18:13:48: new Object({ 'state' : 'starting' })
18:13:47: new Object({ 'state' : 'starting' })
18:13:47: new Object({ 'state' : 'starting' })
18:13:46: new Object({ 'state' : 'starting' })
18:13:46: new Object({ 'state' : 'starting' })
18:13:45: new Object({ 'state' : 'starting' })
18:13:45: new Object({ 'state' : 'starting' })
18:13:44: new Object({ 'state' : 'starting' })
18:13:44: new Object({ 'state' : 'starting' })
18:13:43: new Object({ 'state' : 'starting' })
18:13:43: new Object({ 'state' : 'starting' })
18:13:42: new Object({ 'state' : 'starting' })
18:13:42: new Object({ 'state' : 'starting' })
18:13:41: new Object({ 'state' : 'starting' })
18:13:41: new Object({ 'state' : 'starting' })
18:13:40: new Object({ 'state' : 'starting' })
18:13:40: new Object({ 'state' : 'starting' })
18:13:39: new Object({ 'state' : 'starting' })
18:13:39: new Object({ 'state' : 'starting' })
18:13:38: new Object({ 'state' : 'starting' })
18:13:38: new Object({ 'state' : 'starting' })
18:13:37: new Object({ 'state' : 'starting' })
18:13:37: new Object({ 'state' : 'starting' })
18:13:36: new Object({ 'state' : 'uploading', 'size' : 173011682, 'received' : 28020151})
18:13:36: new Object({ 'state' : 'uploading', 'size' : 173011682, 'received' : 20406863})
18:13:35: new Object({ 'state' : 'starting' })
18:13:35: new Object({ 'state' : 'starting' })

I have upload-progress.debug = "enable" and below is lighttpd error.log:


mod_uploadprogress.c.443: (trace) connection found: con=0x80c8db8 id=7af48fe49455caf2258b61707f7eeed6
mod_uploadprogress.c.443: (trace) connection found: con=0x80c8db8 id=7af48fe49455caf2258b61707f7eeed6
mod_uploadprogress.c.443: (trace) connection found: con=0x80c8db8 id=7af48fe49455caf2258b61707f7eeed6
mod_uploadprogress.c.443: (trace) connection found: con=0x80c8db8 id=7af48fe49455caf2258b61707f7eeed6
mod_uploadprogress.c.443: (trace) connection found: con=0x80c8db8 id=7af48fe49455caf2258b61707f7eeed6
mod_uploadprogress.c.485: (trace) request_done: con=0x80c8db8, http_method=1, http_status=200
mod_uploadprogress.c.171: (trace) set_timeout for connection=0x80c8db8
mod_uploadprogress.c.180: (trace) set_timeout for connection=0x80c8db8, timeout=1184246120

I don't think it's normal behaviour of mod_uploadprogress.

P.S. Using lighttpd 1.5 from svn revision 1878.

History

#1

Updated by jan about 12 years ago

  • Status changed from New to Fixed
  • Resolution set to fixed

mod_uploadprogress should work again with r1896 and later.

http://upload.lighttpd.net/ has been updated to verify it works.

#2

Updated by chernousov about 12 years ago

  • Status changed from Fixed to Need Feedback
  • Resolution deleted (fixed)

Not sure, not sure...
Revision 1964 - seems it works fine if server.max-worker = 1:


mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.437: (trace) POST: connection is new, registered: 4441296dfaae0a335fe703fb3afa999e
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 4911728, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 6865520, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 10650224, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 16089712, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 19292784, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 22602352, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 25703024, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 28803696, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 31335024, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 33727088, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 34865776, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 36868720, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 40440432, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 45851248, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 50111088, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 53273200, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 56853104, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 60932720, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 65036912, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 67752560, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 70287984, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'uploading', 'received' : 71676528, 'size' : 72887173})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: 4441296dfaae0a335fe703fb3afa999e, sending: new Object({ 'state' : 'done', 'received' : 72887173, 'size' : 72887173})

and it fails if server.max-worker = 2 and more:


mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.437: (trace) POST: connection is new, registered: a02a2924fe098dbef69e730c4abf7f91
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'uploading', 'received' : 4354650, 'size' : 85588845})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'uploading', 'received' : 16323162, 'size' : 85588845})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'uploading', 'received' : 23601754, 'size' : 85588845})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'uploading', 'received' : 24765018, 'size' : 85588845})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'uploading', 'received' : 33133146, 'size' : 85588845})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'uploading', 'received' : 37401178, 'size' : 85588845})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'uploading', 'received' : 40518234, 'size' : 85588845})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'uploading', 'received' : 51171930, 'size' : 85588845})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'uploading', 'received' : 64029274, 'size' : 85588845})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'uploading', 'received' : 68461146, 'size' : 85588845})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'uploading', 'received' : 79782490, 'size' : 85588845})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'uploading', 'received' : 85156442, 'size' : 85588845})
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.485: (trace) connection unknown: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'starting' })
mod_uploadprogress.c.450: (trace) (uploadprogress) urls /progress == /progress
mod_uploadprogress.c.508: (trace) connection is known: a02a2924fe098dbef69e730c4abf7f91, sending: new Object({ 'state' : 'done', 'received' : 85588845, 'size' : 85588845})
#3

Updated by stbuehler about 11 years ago

  • Status changed from Need Feedback to Fixed
  • Resolution set to invalid

Yeah. This is why you only should use max-worker if you know what it does and how it works.

#4

Updated by stbuehler almost 11 years ago

  • Status changed from Fixed to Invalid

Also available in: Atom