Uploaded image for project: 'Snowstorm'
  1. Snowstorm
  2. STORM-2132

Viewer uses deleted LLEventPollImpl upon rapid Teleports

    Details

    • Type: Defect
    • Status: Closed
    • Priority: Major
    • Resolution: Released
    • Affects Version/s: None
    • Fix Version/s: None
    • Labels:
      None

      Description

      LLViewerRegion manages a raw LLEventPoll pointer, which in turn holds a as a boost::unique_ptr. The problem is that LLEventPollImpl::eventPollCoro can be paused during the http request (postAndSuspend) or during a rety wait (suspendUntilTimeout).
      During rapid teleports it can happen that the LLViewerRegion responsible for the eventpoll destroys the LLEvenPoll which then invalidates the this pointer that can be later accessed in the LLEventPollImpl::eventPollCoro.
      For example mDone will cause an implicit access to this, the same in handleMessage mSenderIp.

      A solution is to hold in the this pointer by passing it as a boost:shared_ptr into the coroutine and holding it with a shared_ptr in LLEventPoll

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                Unassigned
                Reporter:
                nicky.dasmijn Nicky Dasmijn
                Contributor:
                Rider Linden
              • Watchers:
                4 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: