Skip to content
Snippets Groups Projects
  1. Aug 11, 2020
  2. Aug 10, 2020
  3. Jul 30, 2020
  4. Jul 27, 2020
  5. Jul 24, 2020
  6. Jul 23, 2020
  7. Jul 20, 2020
  8. Jul 10, 2020
  9. Jul 07, 2020
    • Nat Goodspeed's avatar
      DRTVWR-476, SL-13555: Don't crash if user closes viewer during login. · 87da08b1
      Nat Goodspeed authored
      Ever since February 2010, the body of the login coroutine function has been
      enclosed in try/catch (...), with an llerrs message to try to crash more
      informatively than the runtime's unhandled-exception termination. Over the
      years this evolved to LL_ERRS and then to CRASH_ON_UNHANDLED_EXCEPTION.
      
      This persisted despite the August 2016 addition of generic catch clauses in
      the LLCoros::toplevel() function to serve the same purpose, and despite the
      subsequent introduction of the LLCoros::Stop family of exceptions to
      deliberately throw into waiting coroutines on viewer shutdown.
      
      That's exactly what was happening. When the user closed the viewer while
      waiting for the response from login.cgi, the waiting operation threw
      LLCoros::Stopping, which was caught by that CRASH_ON_UNHANDLED_EXCEPTION,
      which crashed the viewer with LL_ERRS rather than propagating up to the
      toplevel() and cleanly terminating the coroutine.
      
      Change CRASH_ON_UNHANDLED_EXCEPTION() to LOG_UNHANDLED_EXCEPTION() and
      re-throw so toplevel() can handle.
      87da08b1
  10. Jul 02, 2020
  11. Jul 01, 2020
  12. Jun 30, 2020
  13. Jun 26, 2020
  14. Jun 25, 2020
    • Nat Goodspeed's avatar
      DRTVWR-476, SL-13512: Make suspendUntilTimeout() notice shutdown. · 1231cb45
      Nat Goodspeed authored
      Specifically, the shutdown crash reported in SL-13512 was due to
      LLExperienceCache::idleCoro() looping on suspendUntilTimeout(), failing to
      notice in its slumbers that the viewer was shutting down around it.
      
      Make suspendUntilTimeout() internally call suspendUntilEventOnWithTimeout(),
      which already listens for "LLApp" state-change events and throws Stopping when
      LLApp enters its shutdown sequence.
      1231cb45
  15. Jun 24, 2020
  16. Jun 23, 2020
  17. Jun 19, 2020
    • Nat Goodspeed's avatar
      DRTVWR-476, SL-13467: Make LLTrace::BlockTimerStatHandle keys unique. · f627140c
      Nat Goodspeed authored
      There are duplicate LLTrace::BlockTimerStatHandle key strings declared in
      llsettingsdaycycle.cpp and llsettingswater.cpp -- the only instances of
      duplicate BlockTimerStatHandle keys in the viewer code base. SL-13467 tracks
      intentional crashes due to duplicate LLInstanceTracker subclass instances with
      one of those keys. The simplest experiment to try to eliminate those crashes
      is to ensure that every BlockTimerStatHandle in the code base is unique.
      f627140c
  18. Jun 02, 2020
Loading