I’ve got a setup a two wptdriver clients (windows 8.0 64 bit norwegian) and windows 7.0. 64 bit norwegian) running on two hp elitebook 2540p laptops. The server is running Ubuntu 12.04 and most stuff works as expected.
All simple pages works flawlessly, but when we run the frontpage of http://www.vg.no/, or company site (…) it will fail most of the time. Especially with chrome. It starts but stalls after a random amount of time usually while the browser says “resolving host”, it may or may not have rendered some part of the page, sometimes it runs the first view flawlessly, sometimes it even finishes, but that’s rare. When it happens the client machine freezes up for several minutes… This only happens when run from wptdriver. Surfing the same page manually with chrome works flawlessly. Any suggestions? Does wptdriver log somewhere?
Hm. I’ve stilling trying to debug this. I have 7 identical HP 2540p laptops. And I’ve tried serveral different versions of windows on it. To make stuff as simple as possible I’ve not standardized on windows 7 pro 32 bit. On a machine that still have IE 9. Urlblast works as a charm. But anything that uses wptdriver (including IE9) will in 8 out of 10 runs go to a grinding halt on http:///www.vg.no.
I also have issues to get usefull logging from the debugbuilds and debugview. As I can see from the from the prior post I’ve managed it earlier (on a windows 8 box) But I can’t manage to configure it correclty on windows 7 pro. No mater what kind of settings i put it through I only the the default output that also goes to the wptdriver itself
“Checking for work” “Waiting for work” etc.
When it comes the the crash in my prior log it seems that it’s doing this
Browsing through the forums i think i found the issue.
It seems like wptdriver isn’t very happy running in a multi-core enviroment. All my testmachies are pysical laptops with quad-core cpu. I used taskmanager to set affinity on wptdriver.exe to run on only one core. And Hey Presto: All wptdriver issues vanishes in thin air.
Racecondition that gets worse with number of cores on complex sites?
[hr]
creating “wptdriver.bat” with content:
start /affinity 1 wptdriver.exe
And linking that .bat files in from startup instead makes it permanent.
Hmm. Possible though it doesn’t make much sense. wptdriver just launches the browser process and injects wpthook into the browser and then waits for everything to finish. It is super-simplistic and while it does thread a bit. Any interaction with a complex page would be in wpthook which runs inside of the browser process(es) and wouldn’t be affected by the affinity.
I’ll have a bit more spare time early next week and will be able to take a look then and see if it is something I can reproduce or track down. I run on everything from single-core VM’s to quad-core laptops (with hyperthreading) so it should be easy enough to track down if I can reproduce it.
Well. I don’t know. But setting affinity to 1 definitely solves the problems. Not a single issue with it on. Did a few hundred tests and no issues. Once I removed the affinity and ran wptdriver on all cores. Complex pages like www.vg.no would hang 9 out of 10 times.
Urlblast is unaffected and works as expected.
If affinity is set on the wptdriver process and that process fires up chrome. Will chrome and all other children also only run on one core?
I was able to reproduce it locally and tracked down a couple of structures that were not protected by critical sections. Fixed it and it has been running rock solid on the machines where I was able to reproduce it.