Sever OS: Linux (remote, behind Apache 2.2), Windows XP (local,
direct)
Client OS: Windows XP
Browser: Firefox 4, Internet Explorer 8
Rocket version: 1.2.2

All combinations break the download for big files (33 MiB),
regardless of chunk_size or server.

Only Internet Explorer 8 (all servers) had problems with small
files (160 KiB), before increasing chunk_size for the streamed
download.


Made the changes to rocket.py (1.2.2), restarted web2py, and the
download was still broken.


By the way: One of the new examples (Dog and owner registration,
with picture upload/download) doesn't use streamed download. It
reads the whole file and sends it. This method doesn't work for
big files, too.


Massimo Di Pierro <[email protected]> wrote:
> Can you make a list of combinations
> 
> browser name, version, server os, web server
> FF, 4, Windows 7, Rocket
> ...
> 
> for which you experienced the problem?
> 
> can you also try the following:
> 1) in the rocket.py code replace
> 
>   'HTTP/1.1 ' with 'HTTP/1.0 '
> 
> and replace
> 
>   environ['SERVER_PROTOCOL'] = request['protocol']
> 
> with
> 
>   environ['SERVER_PROTOCOL'] = "1.0"
> 
> Looks like acts as if the protocol of response is the same as the
> request but always declare the protocol of the response to be 1.1 even
> if the request is 1.0. This may result in keep-alive connections
> ignored by the browser. Perhaps this is part of the problem?
> 
> 
> 
> 
> On Jun 17, 1:35 pm, Stefan Scholl <[email protected]> wrote:
>> To Massimo and the list/group:
>>
>> You asked on Reddit if the only constant is the browser. No it
>> isn't. But it was the browser which had the problem first, with
>> smaller files.
>>
>> For smaller files it was enough to raise the chunk_size. IE8 is
>> slow, maybe this is the reason?
>>
>> Firefox 4 failed when I tried to download a 33 MiB file remotely.
>> IE8 failed for anything above 64 KiB on localhost.
>>
>> It's almost as if Rocket is so fast because it sends without
>> regard for any receiver. Direct (localhost) or behind a proxy
>> (Apache 2.2 on the remote Linux server).
>> Don't know how this could happen. HTTP isn't ZModem. ;-)
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> Stefan Scholl <[email protected]> wrote:
>> > I have a parameters_XXX.py file from the normal web2py (with
>> > rocket) and used the same IP and port with anyserver.py+Tornado
>> > (and the other one stopped, of course).
>>
>> > Tested with web2py 1.91.6. Were there any changes regarding this?
>>
>> > (I'm still very reluctant to upgrade this project.)
>>
>> > Massimo Di Pierro <[email protected]> wrote:
>> >> Try this:
>>
>> >> python
>> >>>>> from gluon.main import save_password
>> >>>>> save_password(raw_input('admin password: '),XXX)
>>
>> >> This will create a parameters_XXX.py file. It must be in the main
>> >> web2py folder. Caveats, the admin interface is disabled if you are not
>> >> form localhost and you are not using https.
>> >> Hope this helps. Hope to have you back on the mailing list.
>>
>> >> On Jun 17, 8:43 am, Stefan Scholl <[email protected]> wrote:
>> >>> Now I can't access the admin interface, because the password
>> >>> isn't set. (It isn't reading the stored password.)
>>
>> >>> Stefan Scholl <[email protected]> wrote:
>> >>> > OK, it was Rocket.
>>
>> >>> > Tested it with the old web2py and Tornado 1.2.1 via anyserver.py
>> >>> > and the download is OK.
>>
>> >>> > Stefan Scholl <[email protected]> wrote:
>> >>> >> The higher value for chunk_size didn't work with a 33 MiB file. Even
>> >>> >> in Firefox 4.
>> >>> >> So I tried 1.96.4 (Rocket 1.2.2) on Windows XP.
>>
>> >>> >> Made a new and simple app (dtest). The download there uses
>> >>> >> "response.download(request,db)" as well.
>>
>> >>> >> 1 simple table: db.define_table('stuff', Field('file', 'upload'))
>>
>> >>> >> Upload of the 33 MiB file via db admin, content listed on
>> >>> >>http://127.0.0.1:8001/dtest/default/data/select/stuff(default
>> >>> >> function "data" with "return dict(form=crud())". Download with
>> >>> >> Internet Explorer 8 (after removing the tag that switches to "Chrome
>> >>> >> Frame", to have a realistic test like "normal" users).
>>
>> >>> >> Download was broken. A few KiB were missing. This was on localhost.
>> >>> >> Remote tests have even worse results.
>>
>> >>> >> On 6 Mai, 17:51, Massimo Di Pierro <[email protected]> wrote:
>> >>> >>> Can you try 1.95.1
>>
>> >>> >>> On May 6, 6:03 am, Stefan Scholl <[email protected]> wrote:
>>
>> >>> >>> > The classicdownloadfunction:
>>
>> >>> >>> > defdownload():
>> >>> >>> > return response.download(request, db)
>>
>> >>> >>> > I'm developing on localhost (127.0.0.1, no SSL) and one strange 
>> >>> >>> > thing
>> >>> >>> > happened: Downloads in IE8 (Windows XP) were all corrupt/broken if
>> >>> >>> > they weren't below 64KiB in size. Very easy to see with large 
>> >>> >>> > images.
>>
>> >>> >>> > Using a higher value for the argument 'chunk_size' solves this
>> >>> >>> > problem, up to this new maximum.
>>
>> >>> >>> > web2py 1.91.6
>>
>> --
>> Web (en):http://www.no-spoon.de/-*- Web (de):http://www.frell.de/
>> <!--[if IE 6]><script>for(x in document.open);</script><![endif]-->
> 


-- 
Web (en): http://www.no-spoon.de/ -*- Web (de): http://www.frell.de/
<!--[if IE 6]><script>for(x in document.open);</script><![endif]-->

Reply via email to