|
#1
|
|||
|
|||
Failure to return a fail!
I have a parent build script which calls a child script. It is the child which checks the source out of sourcesafe and builds a whole series of DLLs and Exes. If one of these operations fails, the failure steps are executed but it still returns a success to the parent.
The failure steps perform quite a bit of work, namely, resetting some macros, logging the fail message, transforming the xml log file to HTML, performing a subroutine to generate a number of other log files, zipping the HTML files, two undo checkout operations and finally emailing a build master! My question really is that could the fact that all these steps are completed successfully in any way mean that a success is returned to the parent script? Thoughts please George |
#2
|
|||
|
|||
This is the second ever report of this behaviour we've received, and we haven't been able to reproduce it here.
By design whether the failure steps pass or fail has nothing to do with whether a success or failure is returned to the parent script. I assume there is an obscure bug that causes this to happen in rare circumstances. If you can provide a reproduceable example of this behaviour (to support@kinook.com) either by tweaking the sample we provided in the related thread (http://www.kinook.com/Forum/showthre...=&threadid=448) or your own project, we should be able to resolve the issue post haste. Otherwise we must first recreate the problem (a needle in a haystack search we've already expended resources trying) and then fix it. |
#3
|
|||
|
|||
After some more digging through the haystack, we did reproduce this behavior in the following scenario: If a subroutine step was the initial step that failed, and the failure steps also call a subroutine, the child project returns success rather than failure upon completing the failure steps. We have a test build available at http://www.kinook.com/Download/VisBuildProTest.exe that you can try to see if it resolves the problem in your case.
|
#4
|
|||
|
|||
I work with George and in his absence I've taken a look at the test release. The new version doesn't seem to close the client script at all. If I run the non test version when a failure occurs all the failure items execute then the client closes and control is passed back to the parent.
If I run the test version above then when an error occurs the failure scripts execute then instead of closing it attempts to do the last statement that failed instead. This way it gets trapped in a loop and never closes to allow the Parent to continue. Am I missing something obvious. I'm running both versions against the same script Matt King |
#5
|
|||
|
|||
It doesn't sound like you are missing anything obvious but without seeing the build files, I can only speculate.
In our testing we did not see the behaviour you mention. If you could provide a reproducible case for us to test with, I am sure we can resolve this issue much more quickly... In the meantime, we will continue trying to reproduce your issue and then provide a resolution. |
#6
|
|||
|
|||
Don't worry, it seems to work now.
The only possible link may have been that the first time I tried it was a clean install of 5.4b. I tried installing on top of 5.4 and it seems to work fine. I don't know what difference that would make but it was the only difference I could spot. |
|
|