New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 609749 link

Starred by 6 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jul 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows
Pri: 2
Type: Bug



Sign in to add a comment

WebRTC thread leak

Reported by fataldev...@gmail.com, May 6 2016

Issue description

Chrome Version       : Version 50.0.2661.94 m (64-bit)
Operating systems    : Tested on Windows 10 and Debian 8.3

What steps will reproduce the problem?
(1) Start WebRTC video stream
(2) Stop stream
(3) Repeat from (1) without closing tab

What is the expected result?
All resources related to the video stream released at (2) and continued normal operation.

What happens instead?
2-3 chrome threads (not processes) remain active for each repetition, consuming resources until tab is fully closed. Occurs on both sender and receiver. The threads can be monitored from applications like Process Explorer.

The attached ZIP archive contains a small test case which repeatedly starts and stops a video stream using WebRTC. It runs on node.js to provide signaling between sender and receiver. For convenience, the sender and receiver runs in a single frameset, but works the same when running from separate processes or devices.
 
Tiny fix: added socket.io-client to package.json
webrtc_threadleak_fixed.zip
6.2 KB Download
Components: Blink>WebRTC
Labels: Needs-Feedback
fataldevoverflow@Could you please confirm whether this issue is fixed and can be closed as per your comment #1?
@ssamanoori Sorry for the confusion. Issue is not fixed. I only fixed the sample code, where I forgot to add a dependency.
Project Member

Comment 4 by sheriffbot@chromium.org, May 13 2016

Labels: -Needs-Feedback Needs-Review
Owner: ssamanoori@chromium.org
Thank you for providing more feedback. Adding requester "ssamanoori@chromium.org" for another review and adding "Needs-Review" label for tracking.

For more details visit https://www.chromium.org/issue-tracking/autotriage - Your friendly Sheriffbot
Cc: pbos@chromium.org jansson@chromium.org
Components: -Blink>WebRTC Blink>WebRTC>Video
Labels: -Pri-3 -Needs-Review OS-Linux OS-Windows Pri-2
Owner: mflodman@chromium.org
Status: Assigned (was: Unconfirmed)
fatal@ - Thanks for providing sample code! Can you also try the same test with the latest Chrome Canary binary?

Sending to mflodman for triage.

Comment 6 by pbos@chromium.org, May 14 2016

Cc: tommi@chromium.org solenberg@chromium.org
faatldevoverflow@: Can you get thread names for the leaking threads easily? This'll help triage.

Comment 7 by pbos@chromium.org, May 14 2016

fatal* :\

Comment 8 by tommi@chromium.org, May 14 2016

Cc: guidou@chromium.org
+guido fyi - could be related to pc gc
Cc: mflodman@chromium.org
Owner: perkj@chromium.org
Per,
I think you're the best person to take the first look at this.

Comment 10 by perkj@chromium.org, May 16 2016

It is most likely Call that creates threads and does not stop them on PeerConnection::Close. 
https://code.google.com/p/chromium/codesearch#chromium/src/third_party/webrtc/call/call.cc&rcl=1463368674&l=130
Call is owned by MediaControllerInterface which is owned by the PeerConnection.
https://code.google.com/p/chromium/codesearch#chromium/src/third_party/webrtc/api/peerconnection.h&rcl=1463368674&l=377

When I mentioned that Call holds threads  to pbos/solenberg as part of investigating another bug (542132) they claimed that is per design.
So in that case, they will be cleaned up as part of pc gc. I guess the reason for not cleaning up the MediaController and Call is because of stats...

If we could get rid of this GetStats requirement, Chrome could delete the libjingle pc when Close is called.


Comment 11 by perkj@chromium.org, May 16 2016

Owner: guidou@chromium.org
Assigning to guidou (after checking with him) to take a look at the gc part. Lets discuss next step after gc has been verified in this scenario.

Comment 12 by tommi@chromium.org, May 16 2016

Given that the upper layer API design is that close() frees up resources while still allowing stats to be queried, it seems like the design of Call, does not match that design.

Looks like we have (at least) these two options:

1) Augment the design of Call to have a HangUp()/Close()  method that terminates the thread.
2) Change Chromium so that the Call object is deleted inside close(), but the stats are cached.

I have a preference for the first option because a) that change aligns better with the spec and b) helps all users of WebRTC, not just Chromium.

Additionally, option 2 has the downside of copying and caching the state inside of Chromium even though it might never be needed.  This means extra code and memory used in Chromium, which is basically a copy of what exists already in WebRTC but is only just a workaround for what is essentially a design issue.

Comment 13 by pbos@chromium.org, May 16 2016

Does the standardized API permit calling GetStats when the PeerConnection is closed? Otherwise that seems like something fairly-straightforward to remove that would keep our code simpler. Ideally if we can I think Call should be deleted at this point, unless necessary.

Some proxy object could possibly also cache the last GetStats results so that when closing down we could free up all other resources. I agree that the solution should be outside of Chromium-specific code though.

Comment 14 by tommi@chromium.org, May 16 2016

"Does the standardized API permit calling GetStats when the PeerConnection
is closed?"

Yes.

That's why I think this is a design issue. I'd also not want to implement
feature functionality in proxies.
I'm a bit late, but you seem to have everything figured out already.

In version 50.0.2661.94 m (64-bit), according to Process Explorer, the thread is named "chrome_child.dll!IsSandboxedProcess+0x82a548".

I could not reproduce the problem of leaked threads in version 52.0.2740.0 canary (64-bit), but memory are still being consumed. On average, about 5 MB per stream.
Cc: hta@chromium.org hbos@chromium.org
 Issue 603156  has been merged into this issue.

Comment 17 by hta@chromium.org, May 26 2016

Owner: pbos@chromium.org
Tommi suggests pbos can take this on.


Regarding #13, #14, see comment in https://bugs.chromium.org/p/chromium/issues/detail?id=582441 ; Call is destroyed in pc.close(), so any threads remaining at that point would be due to other things.

E.g. the RtcEventLogHelperThread, which is currently created in the global VoE state: https://chromium.googlesource.com/external/webrtc/+/master/webrtc/voice_engine/channel_manager.cc#53.

ivoc@ has a CL up to move ownership of the RtcEventLog: https://codereview.webrtc.org/1748403002/

(Sorry, I meant to refer to #12, #13)

Comment 20 by pbos@chromium.org, May 31 2016

Owner: ivoc@chromium.org
-> ivoc@ since I'm not sure there's anything actionable after that.
Issue 620105 has been merged into this issue.
Project Member

Comment 22 by bugdroid1@chromium.org, Jun 29 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/1895526c6130e3d0e9b154f95079b8eda7567016

commit 1895526c6130e3d0e9b154f95079b8eda7567016
Author: Ivo Creusen <ivoc@webrtc.org>
Date: Wed Jun 29 11:56:45 2016

Move RtcEventLog object from inside VoiceEngine to Call.

In addition to moving the logging object itself, this also moves the interface from PeerConnectionFactory to PeerConnection, which makes more sense for this functionality. An API parameter to set an upper limit to the size of the logfile is introduced.
The old interface on PeerConnectionFactory is not removed in this CL, because it is called from Chrome, it will be removed after Chrome is updated to use the PeerConnection interface.

BUG= webrtc:4741 , webrtc:5603 , chromium:609749 
R=solenberg@webrtc.org, stefan@webrtc.org, terelius@webrtc.org, tommi@webrtc.org

Review URL: https://codereview.webrtc.org/1748403002 .

Cr-Commit-Position: refs/heads/master@{#13321}

[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/api/java/src/org/webrtc/PeerConnection.java
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/api/java/src/org/webrtc/PeerConnectionFactory.java
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/api/peerconnection.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/api/peerconnection.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/api/peerconnectionfactory.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/api/peerconnectionfactory.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/api/peerconnectionfactoryproxy.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/api/peerconnectioninterface.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/api/peerconnectionproxy.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/audio/DEPS
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/audio/audio_receive_stream.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/audio/audio_receive_stream.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/audio/audio_receive_stream_unittest.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/audio/audio_send_stream_unittest.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/call.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/call/call.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/call/rtc_event_log.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/call/rtc_event_log.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/media/base/mediaengine.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/media/engine/fakewebrtccall.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/media/engine/fakewebrtccall.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/media/engine/fakewebrtcvoiceengine.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/media/engine/webrtcvoiceengine.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/media/engine/webrtcvoiceengine.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/modules/bitrate_controller/bitrate_controller_impl.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/modules/bitrate_controller/bitrate_controller_impl.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/modules/bitrate_controller/bitrate_controller_unittest.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/modules/bitrate_controller/include/bitrate_controller.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation_unittest.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/modules/congestion_controller/DEPS
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/modules/congestion_controller/congestion_controller.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/modules/congestion_controller/congestion_controller_unittest.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/modules/congestion_controller/include/congestion_controller.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/modules/congestion_controller/include/mock/mock_congestion_controller.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/modules/remote_bitrate_estimator/DEPS
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/modules/remote_bitrate_estimator/test/estimators/remb.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/modules/remote_bitrate_estimator/test/estimators/remb.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/modules/remote_bitrate_estimator/test/estimators/send_side.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/modules/remote_bitrate_estimator/test/estimators/send_side.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/pc/channelmanager.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/pc/channelmanager.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/test/mock_voe_channel_proxy.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/test/mock_voice_engine.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/voice_engine/channel.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/voice_engine/channel.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/voice_engine/channel_manager.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/voice_engine/channel_manager.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/voice_engine/channel_proxy.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/voice_engine/channel_proxy.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/voice_engine/include/voe_codec.h
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/voice_engine/test/auto_test/standard/codec_test.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/voice_engine/test/cmd_test/voe_cmd_test.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/voice_engine/voe_codec_impl.cc
[modify] https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016/webrtc/voice_engine/voe_codec_impl.h

Project Member

Comment 23 by bugdroid1@chromium.org, Jun 30 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/9e03c3b3726e704a492a6b8ed2800dccd59c83a9

commit 9e03c3b3726e704a492a6b8ed2800dccd59c83a9
Author: ivoc <ivoc@webrtc.org>
Date: Thu Jun 30 07:59:43 2016

Revert of Move RtcEventLog object from inside VoiceEngine to Call. (patchset #16 id:420001 of https://codereview.webrtc.org/1748403002/ )

Reason for revert:
Reverting all CLs related to moving the eventlog, as they break Chromium tests.

Original issue's description:
> Move RtcEventLog object from inside VoiceEngine to Call.
>
> In addition to moving the logging object itself, this also moves the interface from PeerConnectionFactory to PeerConnection, which makes more sense for this functionality. An API parameter to set an upper limit to the size of the logfile is introduced.
> The old interface on PeerConnectionFactory is not removed in this CL, because it is called from Chrome, it will be removed after Chrome is updated to use the PeerConnection interface.
>
> BUG= webrtc:4741 , webrtc:5603 , chromium:609749 
> R=solenberg@webrtc.org, stefan@webrtc.org, terelius@webrtc.org, tommi@webrtc.org
>
> Committed: https://crrev.com/1895526c6130e3d0e9b154f95079b8eda7567016
> Cr-Commit-Position: refs/heads/master@{#13321}

TBR=solenberg@webrtc.org,tommi@webrtc.org,stefan@webrtc.org,terelius@webrtc.org
# Skipping CQ checks because original CL landed less than 1 days ago.
NOPRESUBMIT=true
NOTREECHECKS=true
NOTRY=true
BUG= webrtc:4741 , webrtc:5603 , chromium:609749 

Review-Url: https://codereview.webrtc.org/2111813002
Cr-Commit-Position: refs/heads/master@{#13340}

[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/api/java/src/org/webrtc/PeerConnection.java
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/api/java/src/org/webrtc/PeerConnectionFactory.java
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/api/peerconnection.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/api/peerconnection.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/api/peerconnectionfactory.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/api/peerconnectionfactory.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/api/peerconnectionfactoryproxy.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/api/peerconnectioninterface.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/api/peerconnectionproxy.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/audio/DEPS
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/audio/audio_receive_stream.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/audio/audio_receive_stream.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/audio/audio_receive_stream_unittest.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/audio/audio_send_stream_unittest.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/call.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/call/call.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/call/rtc_event_log.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/call/rtc_event_log.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/media/base/mediaengine.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/media/engine/fakewebrtccall.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/media/engine/fakewebrtccall.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/media/engine/fakewebrtcvoiceengine.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/media/engine/webrtcvoiceengine.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/media/engine/webrtcvoiceengine.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/modules/bitrate_controller/bitrate_controller_impl.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/modules/bitrate_controller/bitrate_controller_impl.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/modules/bitrate_controller/bitrate_controller_unittest.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/modules/bitrate_controller/include/bitrate_controller.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation_unittest.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/modules/congestion_controller/DEPS
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/modules/congestion_controller/congestion_controller.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/modules/congestion_controller/congestion_controller_unittest.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/modules/congestion_controller/include/congestion_controller.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/modules/congestion_controller/include/mock/mock_congestion_controller.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/modules/remote_bitrate_estimator/DEPS
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/modules/remote_bitrate_estimator/test/estimators/remb.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/modules/remote_bitrate_estimator/test/estimators/remb.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/modules/remote_bitrate_estimator/test/estimators/send_side.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/modules/remote_bitrate_estimator/test/estimators/send_side.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/pc/channelmanager.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/pc/channelmanager.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/test/mock_voe_channel_proxy.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/test/mock_voice_engine.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/voice_engine/channel.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/voice_engine/channel.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/voice_engine/channel_manager.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/voice_engine/channel_manager.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/voice_engine/channel_proxy.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/voice_engine/channel_proxy.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/voice_engine/include/voe_codec.h
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/voice_engine/test/auto_test/standard/codec_test.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/voice_engine/test/cmd_test/voe_cmd_test.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/voice_engine/voe_codec_impl.cc
[modify] https://crrev.com/9e03c3b3726e704a492a6b8ed2800dccd59c83a9/webrtc/voice_engine/voe_codec_impl.h

Project Member

Comment 24 by bugdroid1@chromium.org, Jul 4 2016

The following revision refers to this bug:
  https://chromium.googlesource.com/external/webrtc.git/+/14d5dbe5b35c560e978dab0c02c48cb16d28273d

commit 14d5dbe5b35c560e978dab0c02c48cb16d28273d
Author: ivoc <ivoc@webrtc.org>
Date: Mon Jul 04 14:06:55 2016

Reland of "Move RtcEventLog object from inside VoiceEngine to Call.", "Fix to make the start/stop functions for the Rtc Eventlog non-virtual." and "Fix for RtcEventLog ObjC interface"

The breaking tests in Chromium have been temporarily disabled, they will be fixed and reenabled soon.

Original CLs: https://codereview.webrtc.org/1748403002/, https://codereview.webrtc.org/2107253002/ and https://codereview.webrtc.org/2106103003/.

TBR=solenberg@webrtc.org,tommi@webrtc.org,stefan@webrtc.org,terelius@webrtc.org,tkchin@webrtc.org
BUG= webrtc:4741 ,  webrtc:5603 ,  chromium:609749 

Review-Url: https://codereview.webrtc.org/2110113003
Cr-Commit-Position: refs/heads/master@{#13379}

[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/api/android/java/src/org/webrtc/PeerConnection.java
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/api/android/java/src/org/webrtc/PeerConnectionFactory.java
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/api/peerconnection.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/api/peerconnection.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/api/peerconnectionfactory.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/api/peerconnectionfactory.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/api/peerconnectionfactoryproxy.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/api/peerconnectioninterface.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/api/peerconnectionproxy.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/audio/DEPS
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/audio/audio_receive_stream.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/audio/audio_receive_stream.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/audio/audio_receive_stream_unittest.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/audio/audio_send_stream_unittest.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/call.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/call/call.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/call/rtc_event_log.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/call/rtc_event_log.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/examples/objc/AppRTCDemo/ARDAppClient.m
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/media/base/mediaengine.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/media/engine/fakewebrtccall.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/media/engine/fakewebrtccall.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/media/engine/fakewebrtcvoiceengine.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/media/engine/webrtcvoiceengine.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/media/engine/webrtcvoiceengine.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/modules/bitrate_controller/bitrate_controller_impl.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/modules/bitrate_controller/bitrate_controller_impl.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/modules/bitrate_controller/bitrate_controller_unittest.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/modules/bitrate_controller/include/bitrate_controller.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/modules/bitrate_controller/send_side_bandwidth_estimation_unittest.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/modules/congestion_controller/DEPS
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/modules/congestion_controller/congestion_controller.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/modules/congestion_controller/congestion_controller_unittest.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/modules/congestion_controller/include/congestion_controller.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/modules/congestion_controller/include/mock/mock_congestion_controller.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/modules/remote_bitrate_estimator/DEPS
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/modules/remote_bitrate_estimator/test/estimators/remb.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/modules/remote_bitrate_estimator/test/estimators/remb.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/modules/remote_bitrate_estimator/test/estimators/send_side.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/modules/remote_bitrate_estimator/test/estimators/send_side.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/pc/channelmanager.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/pc/channelmanager.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/sdk/objc/Framework/Classes/RTCPeerConnection.mm
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/sdk/objc/Framework/Classes/RTCPeerConnectionFactory.mm
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCPeerConnection.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/sdk/objc/Framework/Headers/WebRTC/RTCPeerConnectionFactory.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/test/mock_voe_channel_proxy.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/test/mock_voice_engine.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/voice_engine/channel.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/voice_engine/channel.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/voice_engine/channel_manager.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/voice_engine/channel_manager.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/voice_engine/channel_proxy.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/voice_engine/channel_proxy.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/voice_engine/include/voe_codec.h
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/voice_engine/test/auto_test/standard/codec_test.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/voice_engine/test/cmd_test/voe_cmd_test.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/voice_engine/voe_codec_impl.cc
[modify] https://crrev.com/14d5dbe5b35c560e978dab0c02c48cb16d28273d/webrtc/voice_engine/voe_codec_impl.h

Comment 25 by ivoc@chromium.org, Jul 11 2016

Owner: pbos@chromium.org
The issue with RtcEventLogHelperThread should be fixed now that ownership of RtcEventLog has been moved to Call. I'm not sure if there is anything else that needs to be done here, reassigning to pbos.

Comment 26 by pbos@chromium.org, Jul 11 2016

Owner: ivoc@chromium.org
Status: Fixed (was: Assigned)
I'll consider it closed. fataldevoverflow@, please speak up if you see this issue on Chrome Canary.

Sign in to add a comment