-
- Downloads
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.
Showing
- indra/llcommon/llcoros.cpp 13 additions, 1 deletionindra/llcommon/llcoros.cpp
- indra/llcommon/llexception.cpp 14 additions, 7 deletionsindra/llcommon/llexception.cpp
- indra/llcommon/llexception.h 7 additions, 6 deletionsindra/llcommon/llexception.h
- indra/llmessage/llavatarnamecache.cpp 5 additions, 5 deletionsindra/llmessage/llavatarnamecache.cpp
- indra/llmessage/llcoproceduremanager.cpp 8 additions, 8 deletionsindra/llmessage/llcoproceduremanager.cpp
- indra/newview/llaccountingcostmanager.cpp 4 additions, 5 deletionsindra/newview/llaccountingcostmanager.cpp
- indra/newview/llappcorehttp.cpp 2 additions, 1 deletionindra/newview/llappcorehttp.cpp
- indra/newview/llsecapi.cpp 6 additions, 3 deletionsindra/newview/llsecapi.cpp
- indra/newview/llsechandler_basic.cpp 20 additions, 23 deletionsindra/newview/llsechandler_basic.cpp
- indra/viewer_components/login/lllogin.cpp 46 additions, 55 deletionsindra/viewer_components/login/lllogin.cpp
Loading
Please register or sign in to comment