summaryrefslogtreecommitdiff
path: root/indra/newview/llmeshrepository.cpp
AgeCommit message (Collapse)Author
2013-06-27SH-4311 Get highwater limiting of requests into llhttpcore working.Monty Brandenberg
Fixed the logic and have it covering all five types of requests now with validation via an assert (when enabled). Should keep things working smoothly and avoid floods of 503s when in debug modes. Also started a round of file-level documentation detailing thread usage and mutex coverage. More to do, more to describe. But the high- water stuff is functioning correctly.
2013-06-27SH-4310/BUG-2810/MAINT-2794 Better status checking and error logging in ↵Monty Brandenberg
Mesh code. Pay correct attention to status codes coming back from services. Generate better and consistent error messages when problems arise. There's more to do in error handling, need a way to cleanly fail all request types, only have that for LOD at this point. Do better keeping the HTTP pipeline between the low and high water marks. This was made challenging because the outer most code couldn't really see what's going on internally (whose actions are delayed in a worker thread). More to do here, the debug-like requests don't honor limits, that will come later. Made retry counts available from llcorehttp which can be used by the throttle-anticipating logic to advance the count. It helps but it reinforces the coupling between viewer and server which I do not like.
2013-06-20SH-4257 Preparation for a new cap grant: GetMesh2Monty Brandenberg
Mesh repo is using three policy classes now: one for large objects, one for GetMesh2 regions, one for GetMesh regions. It's also detecting the presence of the cap and using the correct class. Class initialization cleaned up significantly in llappcorehttp using data-directed code. Pulled in the changes to HttpHeader done for sunshine-internal then did a refactoring pass on the header callback which now uses a unified approach to clean up and deliver header information to all interested parties. Added support for using Retry-After header information on 503 retries.
2013-06-19Fixups for the transplant of the HttpHeader changes from sunshine.Monty Brandenberg
2013-06-18Occlusion culling overhaul.Dave Parks
2013-06-18merge with viewer-releaseNyx Linden
2013-06-05merge with viewer-releaseRichard Linden
2013-06-03Fix buildsimon
2013-05-30Merge. Pull in viewer-release reflecting new release structure.Monty Brandenberg
2013-05-29Merge downstream codesimon
2013-05-21BUG-2432: Crashfix. Don't call map::erase when the iterator is not valid.Oz Linden
2013-05-02SH-4161 Integrate cpu metrics into LLDeadmanTimer and then metrics viewerMonty Brandenberg
Normalize deadman timer's args on U64/F64. Internals remain the same. Modify mesh to collect and output enhanced CPU metrics.
2013-05-02SH-4161 Integrate cpu metrics into LLDeadmanTimer and then metrics viewerMonty Brandenberg
Integrated as a ctor-time option to LLDeadmanTimer and have mesh use this mode for the stats I'm gathering.
2013-04-24Fix crash discovered during other testing. Reviewed by Kellysimon
2013-04-18SH-4090 Metrics for mesh load time - cleanup after davep reviewMonty Brandenberg
One of the metrics calls was running in an LLCurl-owned thread doing responder invocation. Deleted that invocation and will do with the other safe ones. Added a boost signal on the TeleportStarted message which is now used to restart the metrics timer. I think I'd like to move the metric blob into a free- standing entity later...
2013-04-17SH-4090 Integrating deadman timer with mesh repo downloads.Monty Brandenberg
Timer interface violated my design rules and I paid for it with clumsiness and silent errors. Cleaned it up mainly removing the evil default values. Found better integration points in the mesh downloader and it's producing fairly consistent numbers on the MeshTest2 test region (about 5500 downloads, ~90 seconds, +/- 10 seconds). Will review with davep and do an early timer stop on teleport which invalidates a timing sequence.
2013-06-19SH-4252 Add second policy class for large mesh asset downloadsMonty Brandenberg
Added second mesh class as well as an asset upload class. Refactored initialization to use less code and more data to cleanly get http started. Modified mesh to use the new http class for large requests (>2MB for now). Added additional timeout setting to llcorehttp to distinguish connection timeout from transport timeout and are now using transport timeout values for large asset downloads that may need more time.
2013-06-07Mostly cleanup. A chunk of comment code nobody needs. DereferenceMonty Brandenberg
after delete, erase() on end() iterator, a few more like that. Killed a dead variable.
2013-06-03Merge. Refresh from viewer-release merged with in-progress work.Monty Brandenberg
2013-06-03SH-4184 Conversion to llcorehttp. Remove unneeded responderMonty Brandenberg
classes (moved to Handlers).
2013-05-30Merge. Pull viewer-release to get the new version scheme changes.Monty Brandenberg
2013-05-08SH-4139 Convert http downloaders and responders to llcorehttp patternsMonty Brandenberg
Conversion was mostly trivial. Did some refactoring in the conversion of Responders to Handlers which eliminated 5X code replication. More will be done especially as this is extended to deal with the various possible combinations of 200/206/416 status for ranged gets. There are a lot of thread races in the existing code, that is going to need some real attention. And the scheduling/liveness logic in the thread management bounces around from thread to thread wasting a lot of time and using expensive synchronization. Much can be done here. But the result is that the 8 connections in the Mesh corehttp class now perform as did the 32 connections of the original. And that 32 actually looks like it could bleed to over 64. So, progress...
2013-05-07SH-4162 Merge metrics repo into this branch and integrateMonty Brandenberg
Pull cpu-based metrics into llcorehttp work to enable A/B testing. Simple merge.
2013-05-07SH-4139 Convert http downloaders and responders to llcorehttp patternsMonty Brandenberg
First version running with all five downloaders converted. Not certain all are functional yet and the whole thing is slow but it is running.
2013-05-07SH-4139 Convert http downloaders and responders to llcorehttp patternsMonty Brandenberg
Initial work completed on linux, moving over to windows to do debug and refinement. This includes 5/6 handlers based on existing responders and use of llcorehttp for the mesh header fetch.
2013-04-12SH-4090 [WIP] Basic deadman timer integration started on Linux. Moving to ↵Monty Brandenberg
windows to do real work.
2013-04-11Merge in downstream code (chui fixes, materials)simon
2013-04-04Renaming HTTP_HEADER_* into HTTP_IN_HEADER_* and HTTP_OUT_HEADER_* to make ↵Don Kjer
it more clear which header strings should be used for incoming vs outgoing situations. Using constants for commonly used llhttpnode context strings.
2013-04-01MAINT-2511 : Mesh requests not handling time outs. Reviewed by Kellysimon
2013-03-20Don't assert on HTTP_NOT_FOUND for some mesh data. Reviewed by Kellysimon
2013-03-20MAINT-2510 : Time can go backwards for viewer animation, assert fires.simon
Reviewed by Kelly
2013-03-13Large changes to the LLCurl::Responder API, as well as pulling in some ↵Don Kjer
changes to common libraries from the server codebase: * Additional error checking in http handlers. * Uniform log spam for http errors. * Switch to using constants for http heads and status codes. * Fixed bugs in incorrectly checking if parsing LLSD xml resulted in an error. * Reduced spam regarding LLSD parsing errors in the default completedRaw http handler. It should not longer be necessary to short-circuit completedRaw to avoid spam. * Ported over a few bug fixes from the server code. * Switch mode http status codes to use S32 instead of U32. * Ported LLSD::asStringRef from server code; avoids copying strings all over the place. * Ported server change to LLSD::asBinary; this always returns a reference now instead of copying the entire binary blob. * Ported server pretty notation format (and pretty binary format) to llsd serialization. * The new LLCurl::Responder API no longer has two error handlers to choose from. Overriding the following methods have been deprecated: ** error - use httpFailure ** errorWithContent - use httpFailure ** result - use httpSuccess ** completed - use httpCompleted ** completedHeader - no longer necessary; call getResponseHeaders() from a completion method to obtain these headers. * In order to 'catch' a completed http request, override one of these methods: ** httpSuccess - Called for any 2xx status code. ** httpFailure - Called for any non-2xx status code. ** httpComplete - Called for all status codes. Default implementation is to call either httpSuccess or httpFailure. * It is recommended to keep these methods protected/private in order to avoid triggering of these methods without using a 'push' method (see below). * Uniform error handling should followed whenever possible by calling a variant of this during httpFailure: ** llwarns << dumpResponse() << llendl; * Be sure to include LOG_CLASS(your_class_name) in your class in order for the log entry to give more context. * In order to 'push' a result into the responder, you should no longer call error, errorWithContent, result, or completed. * Nor should you directly call httpSuccess/Failure/Completed (unless passing a message up to a parent class). * Instead, you can set the internal content of a responder and trigger a corresponding method using the following methods: ** successResult - Sets results and calls httpSuccess ** failureResult - Sets results and calls httpFailure ** completedResult - Sets results and calls httpCompleted * To obtain information about a the response from a reponder method, use the following getters: ** getStatus - HTTP status code ** getReason - Reason string ** getContent - Content (Parsed body LLSD) ** getResponseHeaders - Response Headers (LLSD map) ** getHTTPMethod - HTTP method of the request ** getURL - URL of the request * It is still possible to override completeRaw if you want to manipulate data directly out of LLPumpIO. * See indra/llmessage/llcurl.h for more information.
2013-03-04MAINT-2422 : Clean up mesh http status code usagesimon
2013-02-26MAINT-2371 First set of profile guided optimizations.Dave Parks
Reviewed by Graham
2013-02-20MAINT-2370 Add debug setting "RenderAutoMuteRenderCostLimit" that ↵Dave Parks
automatically visually mutes avatars above a certain threshold (adjusted by Avatar Mesh Detail Slider)
2013-02-13Merge from viewer-betaprep
2013-02-04MAINT-2323 Fix for crash on shutodwn in mesh responder destructorsDave Parks
2013-01-24merging in viewer-beta.Nyx Linden
Most of the merge was clean, a couple conflicts. Brought over a couple patches manually for llpolymesh.
2013-01-09More merge cleanup.Dave Parks
2013-01-08Automated merge with https://bitbucket.org/lindenlab/viewer-tigerDave Parks
2012-11-28SH-3563. Pull and merge from viewer-development. Modest code changes to fix ↵prep
alignment issue in llAppearance.
2012-11-20Automated merge with https://bitbucket.org/lindenlab/viewer-developmentDave Parks
2012-11-09MAINT-1311 Thread safe handling of retries on mesh loading failures.Dave Parks
2012-11-08MAINT-1311 Followup on logging and assertions of mesh loading errorsDave Parks
2012-10-26MAINT-1311 Add some logging and assertions to help track down mesh loading ↵Dave Parks
errors.
2012-10-17MAINT-873 Fix for inability to upload meshes on some systems.Dave Parks
2012-10-17MAINT-873 Fix for inability to upload meshes on some systems.Dave Parks
2012-10-11Updating linux build to gcc4.6Don Kjer
2012-06-27Merge pulled in lindenlab/viewer-beta to kelly_linden/maint-1078Kelly Washington
2012-06-22mergeDave Parks