Configurable Timeouts?

Is it possible to set a configurable timeouts for urlBlaster.exe and wptdriver.exe? In the private instance I am running against various QA environments which can for many reasons be in various states of broken which can cause pages to hang for unreasonable lengths of time. Is there a parameter which can cause it to give up waiting?

I am looking to hit a very large number of URLs with a lot of different browsers and I do not want the jobs backing up on stuck connections.

My other question I had for the forum, about how long does it take the wptdriver on your node(s) to test a URL? I have noticed it is rather slow on mine. It says launching… for a very significant length of time before it actually Chrome fires sometimes as long as 20-30 seconds.

Thoughts? Suggestions?

The timeouts are configured in urlblast.ini and wptdriver.ini. They default to 2 minutes and are in seconds.

Urlblast.ini:

Timeout=120

wptdriver.ini:

time limit=60

wow, Chrome pretty much launches instantly on mine. Any chance it is running in a VM with lots of disk contention?

Check the exe path and try launching chrome manually - does it take a while as well?

If you’re using Antivirus on the system, which one?

Thanks,

-Pat

Patrick,

Launch times from run bar for example are near instantaneous. The Anti-Virus solution here at the office is McAfee VirusScan Enterprise version 8.7i.

Let me investigate further. The time out parameters wil come in extremely handy. I appreciate it.

On a side note, I see that the forum “Documentation” link connects to webperformancecentral.com instead of the new google sites page. I would be happy to help update the docs with additional and examples, etc. Would you like me to prepare something to submit to the google docs site or should I post to the wiki?

Aaron

Oh, thanks. The header bar in the forums is hard-coded and I forgot to update it (doing it now). If you ping me offline I can give you access to edit the sites page (I’m moving off of the wiki because there was a huge spam problem).

Thanks,

-Pat

Hi Patrick, so I added a line in wptdriver.ini time limit=120 under [WebPageTest]. However, when I restart wptdriver, it still says “Waiting up to 480 seconds for the test to complete”. Is there another place I have to change in order to get this to work?

120 seconds is the default timeout which is a soft timeout for the test itself. wptdriver’s timeout is a multiple of that (should have been 2x, not 4x) and is a hard timeout where the browser process will be terminated if it doesn’t complete by then. The extra buffer is to allow for optimization checks and things like that to be done.

Are you trying to make it longer or shorter?

Thank you for the quick response. I would like to make the time limit shorter. Is there a way to make the wptdriver’s timout to be 2x the default timeout instead of 4x?

Hey Patrick -

I see where to do this in https://github.com/WPO-Foundation/webpagetest/blob/master/agent/wptdriver/wptdriver.ini.sample

However I’m wondering if there’s an easy way to do this when spinning up an EC2 instance. Can we pass a timeout variable for the user data, or will we have to login, change, and then restart every agent we spin up if we want to override default timeouts?

Thanks!

There is a test option “time” that can be used to set the timeout on a per-test basis (not documented because I was a bit worried about abuse but it’s there). It would be really easy to add some server-side logic in runtest.php to set it automatically from settings.ini so you could have a different default timeout specified on the server.

Thanks! I just tried passing that with a few different values and I’m not seeing a difference. Is the value of ‘time’ in seconds or milliseconds? Is there a min/max that can’t be overridden?

PS - By looking around there I found another undocumented var (‘priority’) and that seems to be working great. Rad!

Sorry, my bad - time is for the “minimum duration”. There isn’t currently a setting that controls per-test time limits. It would probably take about a day to implement on the server and both desktop agents so it could be configured on the server. If you file an issue in github I can take a look at it.

Ah makes sense. I don’t want to create any more work for you - I’ll find a way to work with the current feature set. Thanks Patrick!

Hi,

There is setActivityTimeout command available in scripting: https://sites.google.com/a/webpagetest.org/docs/using-webpagetest/scripting#TOC-setActivityTimeout.

I wonder if it is possible to change its default value? Per WPT server or per agent. Now it is set to 2000ms and I need more in most cases because in case of very poor performance wptdriver often finishes test run even when there are http requests pending. What is worse such a test has no status to make it possible to know that actually it happened.

Artur

Sorry, looking through the code, the only way it gets set right now is with the hard-coded 2 second default or with the script command. Adding a setting is doable, it’s just not in the code yet.

OK. I can live with that.

Thanks for checking it!