diff options
author | Monty Brandenberg <monty@lindenlab.com> | 2014-06-06 21:31:31 +0000 |
---|---|---|
committer | Monty Brandenberg <monty@lindenlab.com> | 2014-06-06 21:31:31 +0000 |
commit | 5429cec9e9139a207ca5bab5ff3e8f8bcc140cef (patch) | |
tree | 9530a460415727a206e2729a726badb651147f55 /indra/newview | |
parent | eb8cf27cc5757cfb548cc2fd5954ac5826c76422 (diff) |
BUG-3323/SH-4375 Server side baking not baking AVs over cellular network.
This is a workaround that the TPVs have been exercising for quite a few
months and it does seem to fix the OPs problem. The solution is based
on magic numbers and has no technical basis, it's just an artifact of
particular networking gear and/or ISPs.
Diffstat (limited to 'indra/newview')
-rwxr-xr-x | indra/newview/lltexturefetch.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/indra/newview/lltexturefetch.cpp b/indra/newview/lltexturefetch.cpp index 2acd38b753..aa43840ff2 100755 --- a/indra/newview/lltexturefetch.cpp +++ b/indra/newview/lltexturefetch.cpp @@ -4,7 +4,7 @@ * * $LicenseInfo:firstyear=2000&license=viewerlgpl$ * Second Life Viewer Source Code - * Copyright (C) 2012-2013, Linden Research, Inc. + * Copyright (C) 2012-2014, Linden Research, Inc. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public @@ -242,6 +242,13 @@ LLTrace::EventStatHandle<F64Milliseconds > LLTextureFetch::sCacheReadLatency("te static const S32 HTTP_REQUESTS_IN_QUEUE_HIGH_WATER = 40; // Maximum requests to have active in HTTP static const S32 HTTP_REQUESTS_IN_QUEUE_LOW_WATER = 20; // Active level at which to refill +// BUG-3323/SH-4375 +// *NOTE: This is a heuristic value. Texture fetches have a habit of using a +// value of 32MB to indicate 'get the rest of the image'. Certain ISPs and +// network equipment get confused when they see this in a Range: header. So, +// if the request end is beyond this value, we issue an open-ended Range: +// request (e.g. 'Range: <start>-') which seems to fix the problem. +static const S32 HTTP_REQUESTS_RANGE_END_MAX = 20000000; ////////////////////////////////////////////////////////////////////////////// @@ -1491,7 +1498,9 @@ bool LLTextureFetchWorker::doWork(S32 param) mWorkPriority, mUrl, mRequestedOffset, - mRequestedSize, + (mRequestedOffset + mRequestedSize) > HTTP_REQUESTS_RANGE_END_MAX + ? 0 + : mRequestedSize, mFetcher->mHttpOptions, mFetcher->mHttpHeaders, this); |