Archive: Crash by using more than 508 Files?


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


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

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...


Hmm, tell us about your system. What OS/how much memory/how much hard disk you have free.

-J


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 :(


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


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 :)


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 :)


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


Yes, it works!!! Great! Many thanx!

-Marc


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..


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..

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 :)


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.

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

Not completely :rolleyes: because I need it on my PC to play Worms which won't run on W2k :D


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 ;-)


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).


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

See http://forums.winamp.com/showthread....hreadid=123323