Folks,
We have a working CI system which is currently using binaries from FU4.0 development snapshots. When we last checked the releases page, we saw that 4.0 stable was out, but so were 4.1 Beta 1 and 2. Testers within the company were requesting 4.1 Beta 2, so I thought I would see if we could move our binaries directly to that level. I was able to try out the 4.1 B2 CI functionality on my Windows XP machine, after a few attempts... (I saw weird failures at first). I had already installed Flash Player 10, and had made the file type assocation necessary for the Ant task to be able to invoke the player. So, I figured that I could just replace the FU binaries to upgrade. I did that, and my testbed went from working to broken. The failures seemed to point to the local trusted file not being available. I am not sure why that would have been a problem, but I kept trying different things hoping to get something to work. I am not sure exactly how I got it working, but I recall copying the 4.1B2 binaries into place (replacing the older 4.0 dev snapshots), deleting the flexUnit.cfg file under C:\WINNT\system32\Macromed\Flash\FlashPlayerTrust, and rebooting the machine.
I thought the weird issues I had seen were a fluke.I now do not think that is true...
After getting 4.1 B2 to work successfully on my WinXP desktop, I thought I would try it out on one of the production CI servers, which runs Windows Server 2008. I shutdown the system, replaced the binaries, restarted the machine, and I am seeing a similar problem.
Here is what I am observing - can someone please confirm these findings and explain why this is happening and how can I fix it (the machine reboot did not work on Server 2008)?
The Ant task times out waiting for the results: "The following error occurred while executing this line: : java.util.concurrent.ExecutionException: Socket timeout waiting for flexunit report."
Apparently the local trust folder location where flexUnit.cfg is written has moved with 4.1 to a new location on the disk. It used to be here (WinXP):
C:\WINNT\system32\Macromed\Flash\FlashPlayerTrust\
New location (WinXP):
C:\Documents and Settings\<user>\Application Data\Macromedia\Flash Player\#Security\FlashPlayerTrust\
The locations on Win Server 2008 - old:
C:\Windows\System32\Macromed\Flash\FlashPlayerTrust\
new:
C:\Users\<user>\AppData\Roaming\Macromedia\Flash Player\#Security\FlashPlayerTrust\
I surmised this from the errors provided in the process log, and from watching where the flexUnit.cfg file was written to disk. On my WinXP machine, flexUnit.cfg eventually started to get written to the new location where the new 4.1 B2 binaries expect it. However on Win 2008, flexUnit.cfg is no longer being written to either the old or new locations! I watched both folders while the ant process ran, and neither was updated. Here is a snippet of the output (with FU 4.1 B2 binaries). Note the FileNotFoundException:
FlexUnit player target: flash
Validating task attributes ...
Generating default values ...
Using default working dir [C:\DJTE\sas.commons.services.nls.collation_swc\d2flxcmn23\extracted\ Source\Flex]
Using the following settings for the test run:
FLEX_HOME: [C:\iFABS_DE\dev\vert-d2flxcmn23\203300.32.0.20100711202037_d2flxcmn2 3]
haltonfailure: [false]
headless: [false]
display: [99]
localTrusted: [true]
player: [flash]
port: [1024]
swf: [C:\DJTE\sas.commons.services.nls.collation_swc\d2flxcmn23\extracted\ build\sas.commons.services.nls.collation.tests.unit.swf]
timeout: [1800000ms]
toDir: [C:\DJTE\sas.commons.services.nls.collation_swc\d2flxcmn23\reports\xm l]
Setting up server process ...
Starting server ...
OS: [Windows]
Launching player:
java.io.FileNotFoundException: C:\Users\myuser\AppData\Roaming\Macromedia\Flash Player\#Security\FlashPlayerTrust\flexUnit.cfg (The system cannot find the path specified)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.(FileOutputStream.java:179)
at java.io.FileWriter.(FileWriter.java:90)
at org.flexunit.ant.launcher.commands.player.TrustFile.write(Unknown Source)
at org.flexunit.ant.launcher.commands.player.TrustFile.add(Unknown Source)
at org.flexunit.ant.launcher.commands.player.FlashPlayerCommand.launch(U nknown Source)
at org.flexunit.ant.launcher.FlexUnitLauncher.runTests(Unknown Source)
at org.flexunit.ant.tasks.TestRun.launchTestSuite(Unknown Source)
at org.flexunit.ant.tasks.TestRun.run(Unknown Source)
at org.flexunit.ant.tasks.FlexUnitTask.execute(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at groovy.util.AntBuilder.nodeCompleted(AntBuilder.java:212)
at groovy.util.BuilderSupport.doInvokeMethod(BuilderSupport.java:147)
at groovy.util.AntBuilder.doInvokeMethod(AntBuilder.java:162)
at groovy.util.BuilderSupport.invokeMethod(BuilderSupport.java:64)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaC lassSite.java:45)
Opening server socket on port [1024].
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSi teArray.java:40)
Waiting for client connection ...
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCa llSite.java:117)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCa llSite.java:125)
at com.sas.djte.library.FlexProcessor.runFlexTests(FlexProcessor.groovy: 315)
at com.sas.djte.library.FlexProcessor$runFlexTests.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSi teArray.java:40)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCa llSite.java:117)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCa llSite.java:125)
at com.sas.djte.library.TestBuilder.smokeTest(TestBuilder.groovy:360)
at com.sas.djte.library.TestBuilder.this$2$smokeTest(TestBuilder.groovy)
at com.sas.djte.library.TestBuilder$this$2$smokeTest.callCurrent(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent (CallSiteArray.java:44)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(Abs tractCallSite.java:143)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(Abs tractCallSite.java:151)
at com.sas.djte.library.TestBuilder.runTest(TestBuilder.groovy:87)
at com.sas.djte.library.TestBuilder.this$2$runTest(TestBuilder.groovy)
at com.sas.djte.library.TestBuilder$this$2$runTest.callCurrent(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent (CallSiteArray.java:44)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(Abs tractCallSite.java:143)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(Abs tractCallSite.java:151)
at com.sas.djte.library.TestBuilder.build(TestBuilder.groovy:71)
at com.sas.djte.library.TestBuilder$build.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSi teArray.java:40)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCa llSite.java:117)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCa llSite.java:125)
at Default.run(Default.groovy:5)
at org.codehaus.groovy.ant.Groovy.parseAndRunScript(Groovy.java:425)
at org.codehaus.groovy.ant.Groovy.execGroovy(Groovy.java:404)
at org.codehaus.groovy.ant.Groovy.execute(Groovy.java:279)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:62)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.jav a:394)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(Single CheckExecutor.java:38)
at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at groovy.util.AntBuilder.nodeCompleted(AntBuilder.java:212)
at groovy.util.BuilderSupport.doInvokeMethod(BuilderSupport.java:147)
at groovy.util.AntBuilder.doInvokeMethod(AntBuilder.java:162)
at groovy.util.BuilderSupport.invokeMethod(BuilderSupport.java:64)
at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaC lassSite.java:45)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSi teArray.java:40)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCa llSite.java:117)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCa llSite.java:129)
at embedded_script_in_C__Program_Files_DJTE_import_dot_macrodef.run(embe dded_script_in_C__Program_Files_DJTE_import_dot_macrodef:18)
at org.codehaus.groovy.ant.Groovy.parseAndRunScript(Groovy.java:425)
at org.codehaus.groovy.ant.Groovy.execGroovy(Groovy.java:404)
at org.codehaus.groovy.ant.Groovy.execute(Groovy.java:279)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
at org.apache.tools.ant.helper.SingleCheckExecutor.executeTargets(Single CheckExecutor.java:38)
at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
at org.apache.tools.ant.taskdefs.Ant.execute(Ant.java:416)
at org.apache.tools.ant.taskdefs.CallTarget.execute(CallTarget.java:105)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at net.sf.antcontrib.logic.TryCatchTask.execute(TryCatchTask.java:207)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:62)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl. java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at net.sf.antcontrib.logic.TryCatchTask.execute(TryCatchTask.java:207)
at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
at sun.reflect.GeneratedMethodAccessor1.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.jav a:106)
at org.apache.tools.ant.Task.perform(Task.java:348)
at org.apache.tools.ant.Target.execute(Target.java:357)
at org.apache.tools.ant.Target.performTasks(Target.java:385)
at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExe cutor.java:41)
at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
at org.apache.tools.ant.Main.runBuild(Main.java:758)
at org.apache.tools.ant.Main.startAnt(Main.java:217)
at org.apache.tools.ant.launch.Launcher.run(Launcher.java:257)
at org.apache.tools.ant.launch.Launcher.main(Launcher.java:104)
Updated local trust file at [C:\Users\myuser\AppData\Roaming\Macromedia\Flash Player\#Security\FlashPlayerTrust\flexUnit.cfg], added [C:\DJTE\sas.commons.services.nls.collation_swc\d2flxcmn23\extracted\ build].
Executing 'rundll32' with arguments:
'url.dll,FileProtocolHandler'
'C:\DJTE\sas.commons.services.nls.collation_swc\d2flxcmn23\extracted\b uild\sas.commons.services.nls.collation.tests.unit.swf'
The ' characters around the executable and arguments are
not part of the command.
Stopping server ...
End of test data reached, sending acknowledgement to player ...
Closing client connection ...
Closing server on port [1024] ...