Unregister PeerConnectionTracker on PC close() |
|||
Issue descriptionThe PeerConnectionTracker should be unregistered when the PC is no longer active. This currently only happens in the pc handler's destructor: https://cs.chromium.org/chromium/src/content/renderer/media/rtc_peer_connection_handler.cc?q=rtc_peer_connection_handler.cc&sq=package:chromium&dr&l=1294 The handler is destroyed if the RTCPeerConnection's context is destroyed or it is garbage collected, this is not something we can rely on happening. It makes more sense to unregister when the PC is closed. This was attempted here: https://chromium-review.googlesource.com/c/chromium/src/+/754838 Which for unknown reason caused OnSuspend-related crashes and was reverted: https://crbug.com/783010 It looks like something is referencing the tracker after it is destroyed and the host is still dispatching OnSuspend (e.g. laptop lid closes?). With the WeakPtr support of the tracker I thought the IPC message would not be processed so not sure what's going on. Need to investigate.
,
Dec 8 2017
,
Dec 8 2017
It will block the completion of https://bugs.chromium.org/p/chromium/issues/detail?id=775415, though progress is still possible for now.
,
Dec 8 2017
,
Dec 8 2017
I can't make sense of the stack trace and code, the reported crash is invalid memory close to 0x0, it looks like the thing that is sending the IPC message to the Tracker is also the owner of it... I don't see what could be null. And the Host is on the other process, so that's not it. I think we would have to find a repro case to debug it further. |
|||
►
Sign in to add a comment |
|||
Comment 1 by hbos@chromium.org
, Dec 8 2017