Hide Forgot
Description of problem: Default timeout for a bad URL is 90 seconds. See if we can get a handle on the urllib2 "timeout" parameter and a config to control how soon Cumin connections to Aviary services will timeout. Version-Release number of selected component (if applicable): How reproducible: 100% Steps to Reproduce: 1. Configure Cumin to talk to Aviary successfully with ssl. 2. Change aviary-job-servers and/or aviary-query-servers addresses to use "http:" instead of "https:" as the scheme value. 3. Try to do an aviary operation, like drilling into a submission. Actual results: Cumin will wait for 90 seconds saying "Loading..." before reporting an error. Expected results: If we have a configurable timeout, we should be able to set the timeout to something small (10 or 15 seconds) and report failure much earlier. Additional info: Tried a quick change to make this work in the development version, but there is something more complex going on. Independent tests by pmackinn with standalone scripts show it working. Deferring.
Implementation note, figured out how to set this in Cumin with custom transports, earlier problems have to do with the semantics of linked option sets between Clients and Transports in Suds. Essentially, you really don't want to do the following because the undefined ordering of dictionary iterations can lead to the timeout being applied before the transport is updated, which won't work: c = Client(url, transport=MyTransport, timeout=15) Instead you want to do something like one of these With default transport, just set the timeout: c = Client(url, timeout=15) or c = Client(url) c.setoptions(timeout=15) With a custom transport, one of the following: c = Client(url, transport=MyTransport(timeout=15)) or c = Client(url, transport=MyTransport) c.setoptions(timeout=15) or maybe this if the client already exists... t = MyTransport(timeout=15) c.setoptions(transport=t) or even this to preserve an existing timeout t = MyTransport(timeout=c.options.timeout) c.setoptions(transport=t)
MRG-Grid is in maintenance and only customer escalations will be considered. This issue can be reopened if a customer escalation associated with it occurs.