Old 13th March 2017, 19:26   #1
CrazyDogGuy
Junior Member
 
Join Date: Dec 2016
Posts: 8
Compile Error 12345

Hi All--

I'm running into this compile error. From what I've read, it has to do with files above 2 gig. I'm seeing it in NSIS 2.50 when running a powershell script from Jenkins. If I run the powershell script directly, my installer compiles. It also sometimes works with Jenkins when I delete the project directory from the machine that's running my powershell script.

It's choking on a 52MB file:

code:
File: "PTCS.PT" [compress]
Internal compiler error #12345: error creating mmap the size of 87765823.

Note: you may have one or two (large) stale temporary file(s)
left in your temporary directory (Generally this only happens on Windows 9x).



There's plenty of space on the machine; it's a machine running windows 2012R2 server. Any ideas?
CrazyDogGuy is offline   Reply With Quote
Old 13th March 2017, 21:46   #2
Anders
Moderator
 
Anders's Avatar
 
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 4,472
Did you post a similar question on Stackoverflow?

Does it have enough free space on the drive where %temp% is?

IntOp $PostCount $PostCount + 1
Anders is offline   Reply With Quote
Old 14th March 2017, 13:06   #3
CrazyDogGuy
Junior Member
 
Join Date: Dec 2016
Posts: 8
Yeah I did. I wasn't sure if it's an NSIS problem or a Jenkins or PowerShell problem. I'm using NSIS 2.50 (can't upgrade to 3.0). My temp directory's on a drive with 44 GB free. First thing I checked was the disk space. I've seen this happen when a build machine gets too full. Sadly that's not it.
CrazyDogGuy is offline   Reply With Quote
Old 14th March 2017, 13:26   #4
Anders
Moderator
 
Anders's Avatar
 
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 4,472
On stackoverflow you did not even include the full error message!

Anyway, I'm guessing CreateFile or CreateFileMapping are failing but I don't know why. Do you know if Jenkins uses job objects to limit the processes it starts? Might be a memory/address space limit, not a filesystem limit.

If I build a special 3.0 version for you with extra debug output, will you be able to test it?

IntOp $PostCount $PostCount + 1
Anders is offline   Reply With Quote
Old 14th March 2017, 13:38   #5
CrazyDogGuy
Junior Member
 
Join Date: Dec 2016
Posts: 8
Sorry about not posting the full error message. I was getting a bit frazzled yesterday and in my haste to post... well, you know.

I'm not sure about Jenkins and Job Objects. I'd be happy to look at a debug version. Could it be a permissions problem? I'm not sure that's it but I'm grasping at straws trying to figure this all out.
CrazyDogGuy is offline   Reply With Quote
Old 14th March 2017, 14:01   #6
TrifonovS
Senior Member
 
Join Date: Apr 2009
Location: Bulgaria
Posts: 142
Hi,
I'm getting the same problem. I use the last release version of NSIS - 3.01. The compiled installer's executable up to now was about 1,2GBs. No I added some more files and I expect to have a size about 3GBs. But during the compilation I get the following error:
Quote:
Internal compiler error #12345: error mmapping datablock to 33606161.

Note: you may have one or two (large) stale temporary file(s) left in your temporary directory (Generally this only happens on Windows 9x).
I don't use Jenkins, I make manually compilation. Is this error expected if the size of the executable is above 2GBs? I thought that this limitation is fixed...
How can I solve the problem?
TrifonovS is offline   Reply With Quote
Old 14th March 2017, 14:38   #7
Anders
Moderator
 
Anders's Avatar
 
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 4,472
Quote:
Originally Posted by TrifonovS View Post
Hi,
I'm getting the same problem. I use the last release version of NSIS - 3.01. The compiled installer's executable up to now was about 1,2GBs. No I added some more files and I expect to have a size about 3GBs.
No it is not the same problem, look at the full error message! It is a related problem but not exactly the same.

The 2GiB limit is still there, use https://sourceforge.net/projects/nsisbi/ for larger files.

IntOp $PostCount $PostCount + 1
Anders is offline   Reply With Quote
Old 14th March 2017, 15:25   #8
CrazyDogGuy
Junior Member
 
Join Date: Dec 2016
Posts: 8
Quote:
Originally Posted by Anders View Post
If I build a special 3.0 version for you with extra debug output, will you be able to test it?
Hi Anders, do you have an ETA on a test build? I'm planning out the rest of my day
CrazyDogGuy is offline   Reply With Quote
Old 14th March 2017, 15:29   #9
Anders
Moderator
 
Anders's Avatar
 
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 4,472
Quote:
Originally Posted by CrazyDogGuy View Post
Hi Anders, do you have an ETA on a test build? I'm planning out the rest of my day
Probably not today, hopefully tomorrow. You could try Process Monitor in the meantime...

---

Does the problem occur with just
PHP Code:
OutFile test.exe
Section
File PTCS
.PT
SectionEnd 
?

IntOp $PostCount $PostCount + 1
Anders is offline   Reply With Quote
Old 14th March 2017, 16:28   #10
CrazyDogGuy
Junior Member
 
Join Date: Dec 2016
Posts: 8
Still happens with that really basic NSI:

code:
Changing directory to: "C:\jenkins\workspace\CommandSecurity\deploy-bundler\install\win32\installer-pieces"

Processing script file: ".\deploy-bundler\install\win32\installer-pieces\bundleTest.nsi"
SetCompress: off
OutFile: "test.exe"
Section: ""
File: "PTCS.PT"
Internal compiler error #12345: error creating mmap the size of 71247351.

CrazyDogGuy is offline   Reply With Quote
Old 14th March 2017, 18:30   #11
CrazyDogGuy
Junior Member
 
Join Date: Dec 2016
Posts: 8
AHA!

I figured out the issue. Somewhere buried deep in the Jenkins config, the Temp directory was getting overridden to a place on a D: drive. There is no D: on this system.

Thanks for your help, Anders.

CDG
CrazyDogGuy is offline   Reply With Quote
Old 15th March 2017, 07:17   #12
TrifonovS
Senior Member
 
Join Date: Apr 2009
Location: Bulgaria
Posts: 142
Quote:
Originally Posted by Anders View Post
No it is not the same problem, look at the full error message! It is a related problem but not exactly the same.

The 2GiB limit is still there, use https://sourceforge.net/projects/nsisbi/ for larger files.
I used the compiler from the link. Now I'm able to compile my installer. The size is 2,45GB. But when I start it, it shows the language selection dialog and when I click to the button OK, then the installer closes.
I made another test too. I compiled another very small installer. It was running with the original release of NSIS 3.01. But compiled with this compiler, it behaves in the same way. It closes after the language selection dialog.
Any ideas what I'm doing wrong?
TrifonovS is offline   Reply With Quote
Old 15th March 2017, 11:56   #13
TrifonovS
Senior Member
 
Join Date: Apr 2009
Location: Bulgaria
Posts: 142
I found the reason that my installer exits after the language selection. It is caused from my macro that checks if the installer was already started once. I don't know why it doesn't work now, but I will investigate it.
Meantime I saw another problem the bitmaps on the left side of some pages (for example on Welcome page) is missing. I had my own bitmaps, set until now like this:

Quote:
!define MUI_LEFTIMAGE_BMP ".\Resources\Graphics&UIs\MyBitmap.bmp"
!define MUI_WELCOMEFINISHPAGE_BITMAP ".\Resources\Graphics&UIs\MyBitmap.bmp"
!define MUI_UNWELCOMEFINISHPAGE_BITMAP ".\Resources\Graphics&UIs\MyBitmap.bmp"
This worked with the release NSIS V3.01. Why it doesn't work with this special version?
TrifonovS is offline   Reply With Quote
Old 15th March 2017, 12:46   #14
TrifonovS
Senior Member
 
Join Date: Apr 2009
Location: Bulgaria
Posts: 142
Some additional information about my first problem. My macro uses the following code:
Quote:
System::Call 'kernel32::CreateMutex(i 0, i 0, t "myMutex") i .r0 ?e'
Pop $0
And now the value returned in $0 is completely wrong. I tried ANSI and Unicode versions of the function, but both doesn't work. What could be the problem?
TrifonovS is offline   Reply With Quote
Old 15th March 2017, 13:08   #15
Anders
Moderator
 
Anders's Avatar
 
Join Date: Jun 2002
Location: ${NSISDIR}
Posts: 4,472
?e puts error on stack on you are popping it into $0 where you tried to store the return value. And this is not related to the original problem, stop hijacking threads.

IntOp $PostCount $PostCount + 1
Anders is offline   Reply With Quote
Old 15th March 2017, 13:21   #16
TrifonovS
Senior Member
 
Join Date: Apr 2009
Location: Bulgaria
Posts: 142
Thank you for the answer and sorry for the hijacking of the thread.
TrifonovS is offline   Reply With Quote
Reply
Go Back   Winamp & SHOUTcast Forums > Developer Center > NSIS Discussion

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump