diff options
| author | Monty Brandenberg <monty@lindenlab.com> | 2014-09-18 18:42:30 -0400 | 
|---|---|---|
| committer | Monty Brandenberg <monty@lindenlab.com> | 2014-09-18 18:42:30 -0400 | 
| commit | 3057d246f0c63be1b3015313b9ad9824a66f4e0f (patch) | |
| tree | 03dff90e30de40105dcb1d78840d7054173e6810 /indra/llcorehttp | |
| parent | bd0a9b6b4c929f640164b623f5183d371404bb96 (diff) | |
Documentation.  Describe curl bug 1420 testing and how to
reproduce data corruption via timeouts.
Diffstat (limited to 'indra/llcorehttp')
| -rwxr-xr-x | indra/llcorehttp/_httpoprequest.cpp | 15 | ||||
| -rwxr-xr-x | indra/llcorehttp/httpcommon.cpp | 4 | 
2 files changed, 19 insertions, 0 deletions
| diff --git a/indra/llcorehttp/_httpoprequest.cpp b/indra/llcorehttp/_httpoprequest.cpp index 38c1f1e78a..4453bf2922 100755 --- a/indra/llcorehttp/_httpoprequest.cpp +++ b/indra/llcorehttp/_httpoprequest.cpp @@ -47,6 +47,19 @@  #include "llhttpconstants.h"  #include "llproxy.h" +// *DEBUG:  "[curl:bugs] #1420" problem and testing. +// +// A pipelining problem, https://sourceforge.net/p/curl/bugs/1420/, +// was a source of Core_9 failures.  Code related to this can be +// identified and tested by: +// * Looking for '[curl:bugs]' strings in source and following +//   instructions there. +// * Set 'QAModeHttpTrace' to 2 or 3 in settings.xml and look for +//   'timed out' events in the log. +// * Enable the HttpRangeRequestsDisable debug setting which causes +//   full asset fetches.  These slow the pipelines down a bit. +// +  namespace  { @@ -610,6 +623,8 @@ HttpStatus HttpOpRequest::prepareRequest(HttpService * service)  		// *TODO:  Find a better scheme than timeouts to guarantee liveness.  		xfer_timeout *= cpolicy.mPipelining;  	} +	// *DEBUG:  Useful for timeout handling and "[curl:bugs] #1420" tests +	// xfer_timeout = 3L;  	code = curl_easy_setopt(mCurlHandle, CURLOPT_TIMEOUT, xfer_timeout);  	check_curl_easy_code(code, CURLOPT_TIMEOUT);  	code = curl_easy_setopt(mCurlHandle, CURLOPT_CONNECTTIMEOUT, timeout); diff --git a/indra/llcorehttp/httpcommon.cpp b/indra/llcorehttp/httpcommon.cpp index 9bcf7ac5e3..8714915fa2 100755 --- a/indra/llcorehttp/httpcommon.cpp +++ b/indra/llcorehttp/httpcommon.cpp @@ -240,6 +240,10 @@ bool HttpStatus::isRetryable() const  	static const HttpStatus inv_cont_range(HttpStatus::LLCORE, HE_INV_CONTENT_RANGE_HDR);  	static const HttpStatus inv_status(HttpStatus::LLCORE, HE_INVALID_HTTP_STATUS); +	// *DEBUG:  For "[curl:bugs] #1420" tests. +	// Disable the '*this == inv_status' test and look for 'Core_9' +	// failures in log files. +  	return ((isHttpStatus() && mType >= 499 && mType <= 599) ||	// Include special 499 in retryables  			*this == cant_connect ||	// Connection reset/endpoint problems  			*this == cant_res_proxy ||	// DNS problems | 
