LineageGlueRule 'java_window' caused IOException on Execute

Bug reports.
User avatar
odklizec
Ranorex Guru
Ranorex Guru
Posts: 3930
Joined: Mon Aug 13, 2012 9:54 am
Location: Zilina, Slovakia

LineageGlueRule 'java_window' caused IOException on Execute

Post by odklizec » Mon Jun 17, 2013 4:30 pm

Hi folks,

I'm experiencing a problem with Ranorex test started from Jenkins. The purpose of the test is to load a file and see if the file is fully loaded (by waiting for "Loading done" message). It works OK with relative small and quick to load files. However, I'm currently experiencing an issue loading one huge file, which takes about 20 minutes to load. Yes, it's huge and quite complicated file ;) Here is the message I'm starting to receive at some point of time...
LineageGlueRule 'java_window' caused IOException on Execute. Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
Here is a short excerpt from the Ranorex/Jenkins log...
[2013/06/17 16:48:49.528][Info ][Test]: Test Module 'Load_File_From_CSV' started.
[2013/06/17 16:48:49.591][Info ][Data]: Current variable values:
$SetJTFilePath = 'k:\test_scenarios\jtmodels\huge_files\file.jt', $AUTProcessName = 'java'
[2013/06/17 16:48:49.778][Success][Validation]: File k:\test_scenarios\jtmodels\huge_files\file.jt exists.
[2013/06/17 16:48:49.919][Info ][Delay]: Waiting for 100ms.
[2013/06/17 16:48:50.122][Info ][Mouse]: Mouse Left Click item 'LiteBox3d.FileOpenBtn' at Center.
[2013/06/17 16:48:50.856][Info ][Set Value]: Setting attribute Text to '$SetJTFilePath' on item 'Open.LoadFilePathComboBox'.
[2013/06/17 16:48:51.153][Info ][Mouse]: Mouse Left Click item 'Open.OpenBtn' at Center.
[2013/06/17 16:48:51.716][Info ][Delay]: Waiting for 5000ms.
[2013/06/17 16:48:57.075][Info ][Wait]: Waiting 45m for item 'LiteBox3d.SceneInitialized' to not exist.
[2013/06/17 16:58:25.413][Debug ][Plugins]: LineageGlueRule 'java_window' caused IOException on Execute. Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
[2013/06/17 16:58:58.552][Debug ][Plugins]: LineageGlueRule 'java_window' caused IOException on Execute. Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
[2013/06/17 16:59:28.114][Debug ][Plugins]: LineageGlueRule 'java_window' caused IOException on Execute. Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
The LineageGlueRule error repeats until the next Ranorex test step, which is validation of "Loading Done" message...
[2013/06/17 17:03:55.602][Info ][Validation]: Validating Exists on item 'LiteBox3d.LoadingDone'.
[2013/06/17 17:04:26.995][Debug ][Plugins]: LineageGlueRule 'java_window' caused IOException on Execute. Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
[2013/06/17 17:04:37.260][Debug ][Plugins]: LineageGlueRule 'java_window' caused IOException on Execute. Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
[2013/06/17 17:04:57.915][Debug ][Plugins]: LineageGlueRule 'java_window' caused IOException on Execute. Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
[2013/06/17 17:05:28.991][Debug ][Plugins]: LineageGlueRule 'java_window' caused IOException on Execute. Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
[2013/06/17 17:05:39.772][Debug ][Plugins]: LineageGlueRule 'java_window' caused IOException on Execute. Unable to read data from the transport connection: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond
[2013/06/17 17:05:40.459][Failure][Validation]: Element for item 'LoadingDone' does not exist (No element found for path 'element[@class='SWT_Window0' and @instance='1']/element[@class='SWT_Window0' and @instance='0']/text[@accessiblename='Loading done']' within 30s. Failed to find item 'Repository.LiteBox3d.LoadingDone'.).
[2013/06/17 17:05:41.428][Error ][Module]: Module execution was aborted because a validation step has failed. Element for item 'LoadingDone' does not exist (No element found for path 'element[@class='SWT_Window0' and @instance='1']/element[@class='SWT_Window0' and @instance='0']/text[@accessiblename='Loading done']' within 30s. Failed to find item 'Repository.LiteBox3d.LoadingDone'.).

Now the problem is that the "Loading done" is definitely here and the validation works OK if I run the test case from commandline (i.e. outside Jenkins). I even run it on the same VM machine as runs it Jenkins. So I think the problem with failed validation is caused by the LineageGlueRule error. Any idea what to try?
Pavel Kudrys
Ranorex explorer at Descartes Systems

Please add these details to your questions:
  • Ranorex Snapshot. Learn how to create one >here<
  • Ranorex xPath of problematic element(s)
  • Ranorex version
  • OS version
  • HW configuration

User avatar
Support Team
Site Admin
Site Admin
Posts: 11709
Joined: Fri Jul 07, 2006 4:30 pm
Location: Graz, Austria

Re: LineageGlueRule 'java_window' caused IOException on Execute

Post by Support Team » Tue Jun 18, 2013 3:02 pm

Hi,

Could it be that the same thread that renders the UI is also used to load the file?

Nevertheless the validation should work.There is also another forum thread were it was discussed how to run the tests with Jenkins, mabye some of the mentioned points could be of help for you: Running Ranorex tests with Jenkins.

Regards,
Markus
.
Image

User avatar
odklizec
Ranorex Guru
Ranorex Guru
Posts: 3930
Joined: Mon Aug 13, 2012 9:54 am
Location: Zilina, Slovakia

Re: LineageGlueRule 'java_window' caused IOException on Execute

Post by odklizec » Wed Jun 19, 2013 4:50 pm

Hi Markus,

I asked developers and unfortunately yes. The file is currently loaded in the same thread as is rendered GUI. There are plans to change this behavior, but I'm afraid, not anytime soon ;)

I examined the problem more closely and it seems the issue is not in the validation step, but in the WaitForNotExisting action! It terminates earlier than is the defined timeout (45mins). As if the "Scene initialized" string does not exist anymore, but it's still here? And this is why the next step (validation of another element) fails.

I just tried to reproduce this issue running the test outside Jenkins and sure enough, it behaves the same way. The thing is, that I did not experience problems like these with previous RX versions (before 4.0.4). I will try install 4.0.3 and 4.0.2 and see if the problem is also in these versions.

BTW, could this LineageGlueRule IOException be a reason of prematurely terminated WaitForNotExists action?
Pavel Kudrys
Ranorex explorer at Descartes Systems

Please add these details to your questions:
  • Ranorex Snapshot. Learn how to create one >here<
  • Ranorex xPath of problematic element(s)
  • Ranorex version
  • OS version
  • HW configuration

User avatar
odklizec
Ranorex Guru
Ranorex Guru
Posts: 3930
Joined: Mon Aug 13, 2012 9:54 am
Location: Zilina, Slovakia

Re: LineageGlueRule 'java_window' caused IOException on Execute

Post by odklizec » Thu Jun 20, 2013 2:43 pm

Problem solved! It's not caused by the RX version and it's not caused by our Java-based application either. It's caused by the eclipse launcher and the way it handles JRE. The things happen like this...

If the JRE folder is placed in the eclipse-based launcher directory, all works OK. No lineagegluerule IOException is thrown and the WaitForNotExists works as expected. The error happens only if the JRE is installed outside the eclipse.exe (small eclipse-based launcher) folder (typically in "Program Files\Java" folder). In this case, the eclipse.exe is launched as one process and the main application process is launched as a second process called JAVAW.EXE! And this seems to be a reason of the IOException error.

The reason why we did not experience this problem before is, that we only recently started to use Jenkins as our main building/testing platform and the JRE was not yet included in the application folder ;) Therefore, the eclipse.exe correctly searched JRE at different place, which he has found OK, but then it started two processes instead of just one and this seems to be a cause of IOException problem.
Pavel Kudrys
Ranorex explorer at Descartes Systems

Please add these details to your questions:
  • Ranorex Snapshot. Learn how to create one >here<
  • Ranorex xPath of problematic element(s)
  • Ranorex version
  • OS version
  • HW configuration