- NSIS Discussion
- Crash by using more than 508 Files?
Archive: Crash by using more than 508 Files?
MarcRene
11th October 2001 18:35 UTC
Crash by using more than 508 Files?
Hello all,
just tried to compile a script which should unpack a lot of .gif Files. The first 508 Files work quite fine, but at the 509th file I get:
File: "ga791111.gif" [compress]Internal compiler error #12345: GrowBuf realloc(1
4339796) failed.
Note: you may have one or two (large) stale temporary file(s)
left in your temporary directory (Generally this only happens on Windows 9x).
MakeNSIS done - hit enter to close...
Any ideas?
Thanx,
Marc
DuaneJeffers
11th October 2001 21:47 UTC
Well, How many gifs and how much space do they take up?? I know that Gifs cannot be compressed that much because they are compressed. I know NSIS has a overhead of 2GB
From Nullsoft.com
No practical limits on number of files, size of files, etc. (2GB maximum installer size)
.
So, if the Size of the gifs go over this amount, then you are screwed. If not, then I don't know what to tell you.
-Duane
MarcRene
12th October 2001 05:55 UTC
Originally posted by DuaneJeffers
[B]Well, How many gifs and how much space do they take up?? I know that Gifs cannot be compressed that much because they are compressed. I know NSIS has a overhead of 2GB
It's a collection of Garfield-Comics *grin*
The amount of data is below 12 MB, so it should work easily...
justin
12th October 2001 06:22 UTC
Hmm, tell us about your system. What OS/how much memory/how much hard disk you have free.
-J
MarcRene
12th October 2001 07:02 UTC
Okay, sytem description:
Windows 98 1st Edition (german)
Free Space on system drive: 4 GB
Free Space on Drive, where nsis is compiled: 3 GB
Memory: 512 MB
CPU: Intel P-III 1GHz
The Files are stored in d:\comics\garfield, splitted in subdirectories 1978, 1979, 1980..... 2001. The "main part" of my nsis-file is
SetOutPath $INSTDIR\1978
File "1978\*.gif"
SetOutPath $INSTDIR\1979
File "1979\*.gif"
SetOutPath $INSTDIR\1980
File "1980\*.gif"
Exactly at 1979\ga111079.gif it aborts with the mentioned error.
I've tried this some month ago and yesterday with the current release version - same result :(
justin
12th October 2001 08:41 UTC
Very odd. I've build very large installers with many thousands of files, without problems. Can you send me a ZIP With everything to test? Basically based on the error message you sent, there is a call to realloc() that fails, which should only really happen when you run out of memory. Perhaps I should put a check for realloc() failing, and do a seperate malloc/memcpy/free.. I guess I should do that anyway, since realloc seems to blow. email me at justin@nullsoft.com, and I'll send you an update to test.
-Justin
MarcRene
12th October 2001 10:34 UTC
Many thanks for sending me this update; I'll try it this evening at home... (sadly, I don't have the files here at my day job)
if the problem still occurs, I'll be glad to sent you the complete files.
I'm quite curious :)
MarcRene
12th October 2001 18:25 UTC
Okay, it's me again. The patched version produces the same error, so I tried several things. It is NOT the number of files, packing 800 Files with length 1 Byte works perfect. And moving all the data to drive c:\ didn't change anything.
If one deletes several files (doesn't seem to be depending on WHICH files), the remaining ones can be packed into the nsis exe.
So I put the files on a web server and send the URL to Justin :)
justin
12th October 2001 19:27 UTC
I got your RARs... And I had no problems making the installer. :/
But this is in Win2k, I will try it in win98. OK Windows 98 fails! yay!
I determined it's some feature of the way win98's realloc/malloc() work, so I made it call realloc() less (and potentially waste more memory, but hey) and it works.
I've put a new makensis.exe for you to test at http://1014.org/shiz/makensis.exe
Let me know if that fixes, and I'll do 1.57 tonight with those (and possibly other, like BrandingText) changes.
-Justin
MarcRene
12th October 2001 21:00 UTC
Yes, it works!!! Great! Many thanx!
-Marc
LordZamiel
17th October 2001 01:07 UTC
Argh, NSIS go Kaboom!
Okie, when I try to "Compile NSI", it runs for a goodly long time (I'm frankly not sure how many files, nor how many MB are actually processed, but it's a lot - 500+ files and prolly as many MB) it dies out with the message:
Internal compiler error #12345: error mmapping datablock to 483489655.
Note: you may have one or two (large) stale temporary file(s)
left in your temporary directory (Generally this only happens on Windows 9x).
MakeNSIS done - hit enter to close...
Ick... So I checked the docs, but no troubleshooting section.. Checked the webpage, no help there either, read (ok, you caught me, skimmed, maybe even breezed through) the forum & didn't see a reference to this particular problem..
I tried NSIS v1.55 first, after I got this error, I upgraded to v1.58 - same problem... If I rearrange the files/sections, it still explodes after the same general length of time, and the "483489655" changes on each recompile.. I'm at my wit's end here. I gotta get this thing finished by the 30th (ok, I admit, all this panic is over my little brother's birthday) ;)
System Info:
AMD K6-2 450mhz
128MB PC-100 SDRAM
20GB HDD, ~12GB Free
Windows 98
You can stop laughing at my pathetic lil box ;-)
Thanks in Advance..
justin
17th October 2001 03:45 UTC
Re: Argh, NSIS go Kaboom!
483489655 means 483MB. Which is pretty decent sized. My guess is that Windows 98 may have issues with creating 483mb memory mapped files. The system may be low on address space (the compiler needs to map the whole datablock in at once, unfortunately). With a 500mb installer, it may make more sense to store some of the data in other files, or try using Windows 2000 (or NT4, or some other OS that supports large amounts of memory better than Win98).
update: I duplicated this on my winME box. Freakin' win9x. OK well what I'm thinking I may do is make the compiler only map in parts at a time, which would enable this to work on win9x, but the downside would be when the installs got very large, datablock optimizations would be VERY slow (and should be disabled). Let me know if there's really interest in this (making 500mb+ installers on win9x).
-Justin
Originally posted by LordZamiel
Okie, when I try to "Compile NSI", it runs for a goodly long time (I'm frankly not sure how many files, nor how many MB are actually processed, but it's a lot - 500+ files and prolly as many MB) it dies out with the message:
Internal compiler error #12345: error mmapping datablock to 483489655.
Note: you may have one or two (large) stale temporary file(s)
left in your temporary directory (Generally this only happens on Windows 9x).
MakeNSIS done - hit enter to close...
Ick... So I checked the docs, but no troubleshooting section.. Checked the webpage, no help there either, read (ok, you caught me, skimmed, maybe even breezed through) the forum & didn't see a reference to this particular problem..
I tried NSIS v1.55 first, after I got this error, I upgraded to v1.58 - same problem... If I rearrange the files/sections, it still explodes after the same general length of time, and the "483489655" changes on each recompile.. I'm at my wit's end here. I gotta get this thing finished by the 30th (ok, I admit, all this panic is over my little brother's birthday) ;)
System Info:
AMD K6-2 450mhz
128MB PC-100 SDRAM
20GB HDD, ~12GB Free
Windows 98
You can stop laughing at my pathetic lil box ;-)
Thanks in Advance..
LordZamiel
17th October 2001 04:01 UTC
Thanks for the head's up..
Thanks for the info - I'll try breaking the (large) sections up into seperate installers & see if I can come up with something that works :)
locnar42
25th October 2001 04:31 UTC
Re: Re: Argh, NSIS go Kaboom!
Originally posted by justin
update: I duplicated this on my winME box. Freakin' win9x. OK well what I'm thinking I may do is make the compiler only map in parts at a time, which would enable this to work on win9x, but the downside would be when the installs got very large, datablock optimizations would be VERY slow (and should be disabled). Let me know if there's really interest in this (making 500mb+ installers on win9x).
-Justin
I would hate to see something that affects the performance on NT/2000 so if you do make this change, can you do it in a way which only negatively affects 9x boxes? I haven't used a 9x box for development work (other than testing) in years and would hate to lose optimizations when working on larger packages where they could really prove helpful.
just my opinion though.
justin
25th October 2001 10:35 UTC
Re: Re: Re: Argh, NSIS go Kaboom!
Originally posted by locnar42
I would hate to see something that affects the performance on NT/2000 so if you do make this change, can you do it in a way which only negatively affects 9x boxes? I haven't used a 9x box for development work (other than testing) in years and would hate to lose optimizations when working on larger packages where they could really prove helpful.
just my opinion though.
I agree. Screw win9x =)
-Justin
Koen van de Sande
25th October 2001 21:13 UTC
Not completely :rolleyes: because I need it on my PC to play Worms which won't run on W2k :D
LordZamiel
30th October 2001 10:28 UTC
500+mb Installers under Win9x...
Okie, I've been meaning to post this for a while now, but haven't been around a 'puter when the notion struck.. I finally did get that 600+MB installer working:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Output: "TAX_Setup.exe"
Install: 6 sections (2 required, 1 divider).
Install: 1003 instructions (24072 bytes), 20095 byte string table.
EXE header size: 36864 / 36864 bytes
Install code+strings: 44523 / 44523 bytes
Install data: 607771040 / 607771040 bytes
CRC (0xE348E135): 4 / 4 bytes
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-
Total size: 607852431 / 607852431 bytes (100.0%)
MakeNSIS done - hit enter to close...
I used "SetCompress off" and "SetDatablockOptimize off" and it worked fine (and MUCH quicker than before) and only increased the file size slightly (most of the files were already in a compressed format).
I hope this can prove useful to anyone else out there trying to make insanely large NSIS installers under 9x/ME ;-)
Mark_Ive
5th June 2002 16:36 UTC
Hi all i am getting this error message on windows 2000 and really need a fix for this problem asap
Internal compiler error #12345: error mmapping datablock to 35776217.
Note: you may have one or two (large) stale temporary file(s)
left in your temporary directory (Generally this only happens on Windows 9x).
bryan986
4th August 2003 00:51 UTC
Originally posted by Mark_Ive
Hi all i am getting this error message on windows 2000 and really need a fix for this problem asap
Internal compiler error #12345: error mmapping datablock to 35776217.
Note: you may have one or two (large) stale temporary file(s)
left in your temporary directory (Generally this only happens on Windows 9x).
Same error here (different datablock of course)
windows xp
207 files, 27 folders, 897mb