Closed Bug 487365 Opened 17 years ago Closed 17 years ago

FF3 downloads over 2GiB(2GB) [DVD ISOs] end up truncated as 0 bytes

Categories

(Firefox :: General, defect)

x86
Windows XP
defect
Not set
major

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: jmichae3, Unassigned)

References

()

Details

User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729) Build Identifier: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.0.8) Gecko/2009032609 Firefox/3.0.8 (.NET CLR 3.5.30729) Downloading any ISO file over 2GiB-1 in size causes windows version to truncate the file to 0 bytes. you can find some more at http://jesusnjim.com/pc-repair/massive-security-patches.html somebody needs to fix the download manager so that this works. can't do this with IE either - it gives you an http error immediately. Reproducible: Always Steps to Reproduce: 1. run FF3. 2. go to http://www.microsoft.com/downloads/details.aspx?FamilyID=0b6c5f73-e661-4b2f-8aca-d90f4179f39f&DisplayLang=en 3. download the file. 4. look at the file size with windows explorer. Actual Results: takes a long time to download but you get a 0-length file when done. The reason is because it is > 2^(32-1)-1=2147483647 bytes. Expected Results: a 2.4GB file when done. The mistake was somebody used a 32-bit int or a long for the filesize or something like that instead of a long long (gcc) or a __int64 (MINGW, borland, MSVC++). however, on MinGW compiler which is a gcc variant, it does not natively support __int64 so you must do something like /*detect MinGW compiler and if it is*/ #if defined(__MINGW32__) #include <basetsd.h> /* defines __int64. not needed for borland, MSVC++ */ typedef __int64 qlong; /* now define a printf format string we can use */ #define QLPRINTF "%I64d" #elif defined(__BORLANDC__)||defined(_MSC_VER) typedef __int64 qlong; /* now define a printf format string we can use */ #define QLPRINTF "%I64d" #elif defined(LINUX) typedef long long qlong; /* now define a printf format string we can use */ #define QLPRINTF "%lld" #elif defined(__DJGPP__) typedef long long qlong; /* now define a printf format string we can use */ #define QLPRINTF "%lld" #endif your mileage will vary for your distribution/build of linux depending on what -D options you have on gcc/g++, it may not use LINUX #define. check your build scripts and makefiles.
Bug 243974 fixed the Download Manager to support files over 2GB back in Firefox 1.5. (Gecko 1.8) So your conclusions for this specific bug seem faulty. Its possible the 2GB limit is on the server side as well.
correction: IE8 (but not 7 or lower) does not give the error any more and it downloads DVD-sized files.
I was actually having troubles with an earlier version of FF3. It may have been the fileserver, but so many of them? I just tested it via an http server at opensuse.org (which I had problems with earlier previous rev 11.0 download, they are now at 11.1). they must have gotten their problems fixed(?) or somebody got their problems fixed because they no longer prevent IE from downloading their files. I was basing this bug on previous problems I had, and I remembered it needed to be reported. I didn't think I would need to retest so soon. I read once (here in the bug dept? somewhere else?) that FF for linux was the only browser that could handle files>=2GiB and that the windows version could not. But that is no longer an issue. I was able to download the opensuse.org 4.5GB DVD ISO file using FF3.08 with no problems. so I guess this bug is NULL. Jim Michaels
Status: UNCONFIRMED → RESOLVED
Closed: 17 years ago
Resolution: --- → FIXED
Resolution: FIXED → WORKSFORME
You need to log in before you can comment on or make changes to this bug.