SUT hangs when Ranorex Spy x86 scans it

Technology specific object identification, supported applications, web technologies, and 3rd party controls.
EugeneMkv
Posts: 29
Joined: Thu Nov 30, 2017 3:52 pm

SUT hangs when Ranorex Spy x86 scans it

Post by EugeneMkv » Thu Mar 01, 2018 11:36 am

Hey guys!
We are developing a massive WPF-based BIM-system and a lot of GUI elements are Telerik controls.
And I've encountered some frustrating issues trying to automate several user actions.
Some grids contain thousands of rows (e.g. 2500 rows).
When a grid is loaded and I try to scan it or EVEN ANY OTHER GUI element using Studio or Ranorex Spy x86 the whole SUT just hangs with uncontrolled memory leak! And of course you can't automate anything due to unresponsive GUI.

Our SUT is explicitly x64 application and there's no way we can build it as x86.
I tried to scan such grids using Ranorex Spy x64 and it works just fine! No hangs.
I tried to create a project in VS2013 and used x64 environment. I referenced only x64-based Ranorex dlls. Used Ranorex Spy x64 to get xpaths for simple automation. And encountered the same problem!

So it seems there is a problem when x86-based Studio (or Spy) tries to inject in x64-based application with Telerik controls (filled with thousands of rows).
One more thing to notice. There is no problem with the same grids when they contain 20 or even 50 rows. I tried different values. It seems the problem occurs around 1000 rows and more.

Is there a way for a Ranorex Studio to use only x64-based instrumentation?
Or maybe you've got plans to use x64-based studio (afaik, there are x64-based SharpDevelop forks)?

ps/ tried TestComplete for the same action - works good. No hangs.

EugeneMkv
Posts: 29
Joined: Thu Nov 30, 2017 3:52 pm

Re: SUT hangs when Ranorex Spy x86 scans it

Post by EugeneMkv » Thu Mar 01, 2018 1:55 pm

And btw, I've inspected the list of dlls being used in Ranorex Spy x64 and Ranorex Studio (x32). They are the same. But the problem occurs only when using Ranorex Studio and Ranorex Spy x32.

ahoisl
Certified Professional
Certified Professional
Posts: 192
Joined: Fri Sep 07, 2007 8:16 am

Re: SUT hangs when Ranorex Spy x86 scans it

Post by ahoisl » Thu Mar 01, 2018 9:17 pm

EugeneMkv wrote:I tried to create a project in VS2013 and used x64 environment. I referenced only x64-based Ranorex dlls. Used Ranorex Spy x64 to get xpaths for simple automation. And encountered the same problem!
You did encounter the problem when only using x64/AnyCPU DLLs? Then 64bit did not help. Or did you mean that everything worked well then?

Big grids are always a problem if they don't use virtualization, i.e. only really display the rows within the viewport. However, if x64 Spy works alright, then x86 should be able to do the same. When using a tool with a different bit width, Ranorex has a shim called BitBridge that translates calls to the right bit width - this definitely has an overhead, but should be just a few percent and not cause the application to hang.

Could you post a snapshot of the app using Ranorex Spy x64?
Or can we get access to that application or a sample application the we can reproduce the problem with?

Regards,
Alex
Ranorex Team

EugeneMkv
Posts: 29
Joined: Thu Nov 30, 2017 3:52 pm

Re: SUT hangs when Ranorex Spy x86 scans it

Post by EugeneMkv » Fri Mar 02, 2018 11:14 am

ahoisl wrote: You did encounter the problem when only using x64/AnyCPU DLLs? Then 64bit did not help. Or did you mean that everything worked well then?
...
Or can we get access to that application or a sample application the we can reproduce the problem with?
...
I encountered the problem when using Ranorex Studio (which is apparently x86) and Ranorex Spy x86.
I also created VS2013 console app, referenced x64 dlls and tried to click some grid (filled with 2000 rows), the problem occurred again.
Yesterday I even installed JetBrains Rider IDE (which is x64 app) and tried the same actions. Still unlucky.
But every time I try to track the same filled grid using Ranorex Spy x64 - there are no problems.
And speaking of virtualization, all the grids within our SUT have Virtualization mode on.

Ok, I''ll discuss with our DEVs the possibility to create a simple sample app where the problem is reproduced...