Bug #1262
closedmod_uploadprogress bug
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.
Updated by jan over 17 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.
Updated by chernousov about 17 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})
Updated by stbuehler about 16 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.
Also available in: Atom