SH-4489 New debug/dev settings for control over new mesh behavior

Thu, 12 Sep 2013 20:15:20 -0400

author
Monty Brandenberg <monty@lindenlab.com>
date
Thu, 12 Sep 2013 20:15:20 -0400
changeset 40723
06b01c301672
parent 40722
779b223e385c
child 40724
d3cca5ca0fbe

SH-4489 New debug/dev settings for control over new mesh behavior
While giving myself a full project code review, found a bug in
the MeshUseGetMesh1 setting. Mostly defaulted to old configuration
but used the GetMesh2 caps which would have been a huge DoS
resource sink. Did some documentation maintenance as well while
I was in there. More for the to-do list, etc.

indra/newview/app_settings/settings.xml file | annotate | diff | revisions
indra/newview/llmeshrepository.cpp file | annotate | diff | revisions
     1.1 --- a/indra/newview/app_settings/settings.xml	Wed Sep 11 19:21:31 2013 -0400
     1.2 +++ b/indra/newview/app_settings/settings.xml	Thu Sep 12 20:15:20 2013 -0400
     1.3 @@ -9983,7 +9983,7 @@
     1.4    <key>MeshUseHttpRetryAfter</key>
     1.5    <map>
     1.6      <key>Comment</key>
     1.7 -    <string>If TRUE, use Retry-After response headers when rescheduling a mesh request that fails with an HTTP 503 status.</string>
     1.8 +    <string>If TRUE, use Retry-After response headers when rescheduling a mesh request that fails with an HTTP 503 status.  Static.</string>
     1.9      <key>Persist</key>
    1.10      <integer>1</integer>
    1.11      <key>Type</key>
    1.12 @@ -9994,7 +9994,7 @@
    1.13    <key>MeshUseGetMesh1</key>
    1.14    <map>
    1.15      <key>Comment</key>
    1.16 -    <string>If TRUE, use the legacy GetMesh capability for mesh download requests.</string>
    1.17 +    <string>If TRUE, use the legacy GetMesh capability for mesh download requests.  Semi-dynamic (read at region crossings).</string>
    1.18      <key>Persist</key>
    1.19      <integer>1</integer>
    1.20      <key>Type</key>
     2.1 --- a/indra/newview/llmeshrepository.cpp	Wed Sep 11 19:21:31 2013 -0400
     2.2 +++ b/indra/newview/llmeshrepository.cpp	Thu Sep 12 20:15:20 2013 -0400
     2.3 @@ -282,10 +282,15 @@
     2.4  //     dialog.  Get the structured information going into the log into a
     2.5  //     tree there.
     2.6  //   * Header parse failures come without much explanation.  Elaborate.
     2.7 -//   * Need a final failure state for requests that are retried and just won't
     2.8 -//     complete.  We can fail a LOD request, others we don't.
     2.9 -
    2.10 -
    2.11 +//   * Work queue for uploads?  Any need for this or is the current scheme good
    2.12 +//     enough?
    2.13 +//   * Various temp buffers used in VFS I/O might be allocated once or even
    2.14 +//     statically.  Look for some wins here.
    2.15 +//   * Move data structures holding mesh data used by main thread into main-
    2.16 +//     thread-only access so that no locking is needed.  May require duplication
    2.17 +//     of some data so that worker thread has a minimal data set to guide
    2.18 +//     operations.
    2.19 +//
    2.20  // --------------------------------------------------------------------------
    2.21  //                    Development/Debug/QA Tools
    2.22  //
    2.23 @@ -1052,7 +1057,7 @@
    2.24  	
    2.25  	if (gAgent.getRegion())
    2.26  	{
    2.27 -		if (! gMeshRepo.mGetMesh2Capability.empty())
    2.28 +		if (! gMeshRepo.mGetMesh2Capability.empty() && gMeshRepo.mGetMeshVersion > 1)
    2.29  		{
    2.30  			http_url = gMeshRepo.mGetMesh2Capability;
    2.31  		}
    2.32 @@ -2181,7 +2186,7 @@
    2.33  		LLCore::BufferArray * ba = new LLCore::BufferArray;
    2.34  		LLCore::BufferArrayStream bas(ba);
    2.35  		LLSDSerialize::toXML(body, bas);
    2.36 -		// LLSDSerialize::toXML(mModelData, bas);		// <- This will generate a convenient upload error
    2.37 +		// LLSDSerialize::toXML(mModelData, bas);		// <- Enabling this will generate a convenient upload error
    2.38  		LLCore::HttpHandle handle = mHttpRequest->requestPost(mHttpPolicyClass,
    2.39  															  mHttpPriority,
    2.40  															  mWholeModelUploadURL,

mercurial