Re: SessionModel>>saveSessionAs:description: fails with primErrorCode=0 and buildExeErrorCode=nil
I vaguely remember problems with saveSession: quite some time ago.
To my opinion t is not related to the binding of the VCOFF-SLL. You could
check this by testing the result of the bindTo:.
The VCOFF SLL reads the V.EXE and builds a new V.EXE by assembling the
various COFF sections and appending a new ".VIMAGE" section.
Because the privateBuildExe:fromExe: returns nil, a FileError exception must
have happened. But the handler should return the hostErrorCode of the api call.
So you should look for ways how a FileError exception could be created with
hostErrorCode being nil.
It is not easy to get more information what's going on here. Maybe you can
temporarily add a "self halt" into
ExceptionHandler >>#evaluateResponseBlock: responseBlock for: anException
before the responseBlock is being evaluated. To prevent halts poping up
under other conditions you could write something like this:
((Smalltalk at: #Coff) notNil and: [anException isKindOf: FileError]) ifTrue: [ self halt.].
responseBlock value: anException.
Maybe this helps finding the root cause for the error.
From: Using Visual Smalltalk for Windows/Enterprise [mailto:[hidden email]] On Behalf Of
Sent: Freitag, 22. November 2013 15:33
To: [hidden email] Subject: SessionModel>>saveSessionAs:description: fails with primErrorCode=0 and buildExeErrorCode=nil
We have a nightly build which install all of our source code into a base
Smalltalk image and at the end save the image.
Most the time this works fine but some times it fails with error:
primErrorCode=0 and buildExeErrorCode=nil.
It looks like SessionModel>>privateBuildExe:fromExe: (temporary bound from
VCOFF31W.SLL) returns nil.
Have anyone had any experience with this?
Could it be that binding / unbinding of the SLL cause problems?
I was thinking of adding "try again" code like the following.
Any comments on whether that could solve the problem or advice against it?
buildExe: newImageName fromExe: oldImageName
"Private - Assemble an exe from the pieces generated by the
machine. Answer 0 if it worked, the error code if any
| binder installer result maxTrials |
( Smalltalk includesKey: #Coff ) ifFalse: [
installer := DefinitionInstaller current.
DefinitionInstaller current: nil. "get a default (base)