Commit Graph

104 Commits (87664fa35de33a8db00dd61ba91f5dc73afce14a)

Author SHA1 Message Date
Andrey Kleshchev 93805cfbc1 SL-16778 handle shutdown exceptions
These exceptions are expected and do not need to be logged
2022-02-07 22:50:37 +02:00
Andrey Kleshchev 609a26b59a Merge branch 'master' of https://bitbucket.org/lindenlab/viewer/src/master into DRTVWR-515-maint
# Conflicts:
#	autobuild.xml (llca)
#	indra/llwindow/llwindow.h (SL-13507 vs SL-5894)
#	indra/newview/llscenemonitor.cpp (SL-14422)
#	indra/newview/llvovolume.cpp (SL-12069)
2021-02-01 22:28:15 +02:00
Andrey Kleshchev b36082170e SL-14767 Expanded logging to be a bit more informative 2021-01-28 23:30:27 +02:00
Andrey Kleshchev 0a2b748705 SL-14078 No point in verifying display name cap each frame #2 2020-10-12 19:40:22 +03:00
Andrey Kleshchev fc63aa7424 SL-14078 No point in verifying display name cap each frame
Convoluted due to multiple workarounds. Might be a good idea to spend some time refactoring this, but for now just trottled checks.
2020-10-09 21:53:53 +03:00
Andrey Lihatskiy ae48c7c8b3 Merge branch 'master' into DRTVWR-513-maint
# Conflicts:
#	indra/llcommon/llerror.cpp
#	indra/newview/llappviewerwin32.cpp
#	indra/newview/llimprocessing.cpp
#	indra/newview/llviewerjoystick.cpp
2020-07-21 11:54:11 +03:00
Andrey Kleshchev 6fddbeb397 SL-12748 Blocked username displays old name after name change 2020-06-05 16:59:34 +03:00
Nat Goodspeed 2a56ab4436 DRTVWR-476, SL-12197: Don't throw Stopping from main coroutine.
The new LLCoros::Stop exception is intended to terminate long-lived coroutines
-- not interrupt mainstream shutdown processing. Only throw it on an
explicitly-launched coroutine.

Make LLCoros::getName() (used by the above test) static. As with other LLCoros
methods, it might be called after the LLCoros LLSingleton instance has been
deleted. Requiring the caller to call instance() implies a possible need to
also call wasDeleted(). Encapsulate that nuance into a static method instead.
2020-03-25 19:24:25 -04:00
andreykproductengine 779b5627c5 DRTVWR-493 LLAvatarNameCache to singletone 2019-07-03 20:06:47 +03:00
andreykproductengine 69d87dfb63 MAINT-8364 Fix for requestAvatarNameCache_ crash 2018-03-07 20:31:29 +02:00
andreykproductengine af8984348e MAINT-8210 Fixed crash in avatar name cache 2018-01-22 20:37:58 +02:00
andreykproductengine 605160d501 MAINT-7118 Swapping legacy people API with new cache 2017-02-15 20:40:03 +02:00
Nat Goodspeed 4d10172d8b MAINT-5011: Catch unhandled exceptions in LLCoros coroutines.
Wrap coroutine call in try/catch in top-level coroutine wrapper function
LLCoros::toplevel(). Distinguish exception classes derived from
LLContinueError (log and continue) from all others (crash with LL_ERRS).

Enhance CRASH_ON_UNHANDLED_EXCEPTIONS() and LOG_UNHANDLED_EXCEPTIONS() macros
to accept a context string to supplement the log message. This lets us replace
many places that called boost::current_exception_diagnostic_information() with
LOG_UNHANDLED_EXCEPTIONS() instead, since the explicit calls were mostly to
log supplemental information.

Provide supplemental information (coroutine name, function parameters) for
some of the previous LOG_UNHANDLED_EXCEPTIONS() calls. This information
duplicates LL_DEBUGS() information at the top of these functions, but in a
typical log file we wouldn't see the LL_DEBUGS() message.

Eliminate a few catch (std::exception e) clauses: the information we get from
boost::current_exception_diagnostic_information() in a catch (...) clause
makes it unnecessary to distinguish.

In a few cases, add a final 'throw;' to a catch (...) clause: having logged
the local context info, propagate the exception to be caught by higher-level
try/catch.

In a couple places, couldn't resist reconciling indentation within a
particular function: tabs where the rest of the function uses tabs, spaces
where the rest of the function uses spaces.

In LLLogin::Impl::loginCoro(), eliminate some confusing comments about an
array of rewritten URIs that date back to a long-deleted implementation.
2016-08-18 17:33:44 -04:00
Nat Goodspeed 993f54f6e9 MAINT-5011: Try to enrich catch (...) logging throughout viewer.
Turns out we have a surprising number of catch (...) clauses in the viewer
code base. If all we currently do is

    LL_ERRS() << "unknown exception" << LL_ENDL;

then call CRASH_ON_UNHANDLED_EXCEPTION() instead. If what we do is

    LL_WARNS() << "unknown exception" << LL_ENDL;

then call LOG_UNHANDLED_EXCEPTION() instead.

Since many places need LOG_UNHANDLED_EXCEPTION() and nobody catches
LLContinueError yet, eliminate LLContinueError& parameter from
LOG_UNHANDLED_EXCEPTION(). This permits us to use the same log message as
CRASH_ON_UNHANDLED_EXCEPTION(), just with a different severity level.

Where a catch (...) clause actually provides contextual information, or makes
an error string, add boost::current_exception_diagnostic_information() to try
to figure out actual exception class and message.
2016-08-17 15:40:03 -04:00
Oz Linden 9be58e915a merge with 4.0.3-release 2016-04-04 15:53:09 -04:00
Oz Linden 5822fb00b6 merge DRTVWR-398 build cleanup fixes 2016-03-07 12:41:11 -05:00
Oz Linden 2dcfa3b6bd Suppress some overly verbose logging 2016-02-12 16:58:41 -05:00
Oz Linden c8726aba30 remove execute permission from many files that should not have it 2015-11-10 09:48:56 -05:00
Rider Linden 75c6549fde Set consistent terminology for yield/wait -> suspend for coroutines. 2015-09-18 11:39:22 -07:00
Nat Goodspeed efa9a0f99c Backed out changeset bab1000e1b2d: restore 'selfless' changes 2015-07-10 19:30:10 -04:00
Rider Linden 247eb0c9c3 Backout selfles merge 738255dbbfd679d9e615baab3398e5e345bbb3c5 2015-07-07 19:41:27 +01:00
Nat Goodspeed b262ded7e0 MAINT-5351: Remove 'self' parameter from coroutine functions.
lleventcoro_test.cpp runs clean (as modified for new API), and all the rest
builds clean, but the resulting viewer is as yet untested.
2015-07-01 18:33:29 -04:00
Nat Goodspeed 80d17b2dd9 MAINT-4952: Use IntrusivePtr for BufferArray,HttpHeaders,HttpOptions.
Specifically, change the ptr_t typedefs for these LLCore classes to use
IntrusivePtr rather than directly using boost::intrusive_ptr. This allows us
to use a simple ptr_t(raw ptr) constructor rather than having to remember to
code ptr_t(raw ptr, false) everywhere. In fact, the latter form is now invalid:
remove the now-extraneous 'false' constructor parameters.
2015-06-29 17:19:51 -04:00
Rider Linden aba8d5e488 Removed homelocation responder (rolled into llagent)
Removed sdhandler from llagent.
Removed unused values from llacountingccostmgr
Fixed smart pontier creation in llfacebook
2015-06-09 13:06:09 -07:00
Rider Linden 0d3fb07bfa Remove vestigial httpclient.h include from files that no longer need it. 2015-06-03 16:04:40 -07:00
Rider Linden fe8dec32db Merge 2015-04-13 09:37:09 -07:00
Rider Linden 2d3e4576d7 Formatting change to get past merge conflict. 2015-04-13 09:20:54 -07:00
Rider Linden 8a76284e48 Results from code review with Nat. Consolidate some of the coroutine/http code into a single adapter. 2015-04-07 10:30:10 -07:00
Oz Linden 66bc510786 detect xml errors in parsing xml files and remove those files 2015-04-02 21:43:34 -04:00
Rider Linden edc1439bd6 Added AvatarNameCache as coroutine, with LLCore::HttpHandler to respond correctly to Event Pumps.
Added get/setRequestURL() to LLCore::HttpResponse
Removed URI from the HttpSDHandler.
2015-04-01 16:37:00 -07:00
Brad Payne (Vir Linden) d9e3a2948a merge 2014-03-12 17:24:07 -04:00
Mnikolenko ProductEngine aaf6c7954d MAINT-3374 FIXED Don't show username after display name if this setting is disabled. 2013-11-06 11:42:48 +02:00
Brad Payne (Vir Linden) a04a706c1b merge 2013-05-21 16:18:48 -04:00
Oz Linden ddd5659f81 merge changes for DRTVWR-294 2013-04-19 10:11:29 -04:00
Don Kjer beeefb4526 Renaming HTTP_HEADER_* into HTTP_IN_HEADER_* and HTTP_OUT_HEADER_* to make it more clear which header strings should be used for incoming vs outgoing situations.
Using constants for commonly used llhttpnode context strings.
2013-04-04 21:50:45 +00:00
Graham Madarasz bf6182daa8 Update Mac and Windows breakpad builds to latest 2013-03-29 07:50:08 -07:00
Don Kjer 662d67e3b5 Merging LLCURL::Responder changes with CHUI changes. Fixed gcc 4.6 compile failures 2013-03-13 08:46:59 +00:00
Don Kjer f945415210 Large changes to the LLCurl::Responder API, as well as pulling in some 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-13 06:26:25 +00:00
prep 207d9fd767 Viewer-chui merge 2013-03-11 14:45:53 -04:00
Don Kjer 54cdc322b8 Fixing issues with not detecting when LLSD XML parsing fails. Changing most http error handlers to understand LLSD error responses. Fleshing out most http error handler message spam. 2013-03-05 22:05:22 -08:00
Merov Linden 573ab07a40 Merge pull from lindenlab/viewer-beta 2013-01-10 14:51:59 -08:00
Kelly Washington 2cba564b24 MAINT-2184 [crashhunters] new crash in LLUUID::toString
Fix dangling references.
2013-01-03 09:17:25 -08:00
Merov Linden 9b556fb3fe CHUI-599 : Use the account name in all places that are not UI related but use avatar names to index, search and other code only uses. 2012-12-14 14:19:17 -08:00
Merov Linden a6f1690128 CHUI-580, CHUI-406 : Fixed : Finished avatar name caching, also fixed the display of (waiting) when names don't come (mostly in legacy mode). 2012-12-07 18:58:52 -08:00
Merov Linden bb322a1ccc CHUI-580 : Fixed : Clean up the use of display name. Allow the use of the legacy protocol in settings.xml 2012-12-07 00:10:50 -08:00
Merov Linden 3a49beed0e CHUI-580 : WIP : Change the display name cache system, deprecating the old protocol and using the cap (People API) whenever available. Still has occurence of Resident as last name to clean up. 2012-12-05 20:25:46 -08:00
Kelly Washington 5646e564e5 MAINT-1897 Poor performance viewing large group member lists
* Split avatar name requests up among multiple frames to prevent overloading
  the nameserver and having requests time out.
2012-11-12 14:10:02 -08:00
Oz Linden c2e902d56a merge back beta fixes 2012-08-20 14:45:47 -04:00
Todd Stinson 7cbbdbd896 PATH-849: CRASHFIX This should fix the crash caused by LLPathfindingObject::handleAvatarNameFetch being called after the corresponding LLPathfindingObject has been deleted. 2012-08-13 16:55:51 -07:00
Brad Payne (Vir Linden) 30140f66be SH-3079 FIX - minimize retries and avoid log spam when people API is missing 2012-05-03 17:25:02 -04:00