Closed Bug 803744 Opened 13 years ago Closed 13 years ago

PeerConnectionImpl Initialize: StartGathering failed: 2147500037

Categories

(Core :: WebRTC, defect)

x86_64
macOS
defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla19
Tracking Status
firefox18 --- affected

People

(Reporter: posidron, Assigned: ehugg)

References

Details

(Whiteboard: [fuzzblocker][WebRTC][blocking-webrtc+][qa-])

Attachments

(3 files, 2 obsolete files)

Attached file NSPR_LOG
PeerConnection fails to initialize after some time of fuzzing SDP, although I try to close/destroy PC instances on failures and on success in each testcase. Each testcase gets loaded into Firefox as a new HTML page with PC calls. This issue makes fuzzing SDP currently not possible. Let me know if you need further information or if you have workarounds. 2082140544[1037e9e80]: PeerConnectionImpl Initialize: StartGathering failed: 2147500037 JavaScript error: file:///Users/cdiehl/Code/Mozilla/mc-asan-opt/debug_build/dist/NightlyDebug.app/Contents/MacOS/components/PeerConnection.js, line 207: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [IPeerConnection.initialize]
Do you have a test case? The natural workaround would be to terminate the browser between tests.
I could perhaps create one with setTimeout(), I will see if that works.
Attached file testcase (obsolete) —
Click the run button, after a few seconds you get the message: JavaScript error: file:///Users/cdiehl/Code/Mozilla/mc-asan-opt/debug_build/dist/NightlyDebug.app/Contents/MacOS/components/PeerConnection.js, line 211: NS_ERROR_FAILURE: Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [IPeerConnection.initialize] Reload the page and click the run button again and you get: Assertion failure: 0, at /Users/cdiehl/Code/Mozilla/mc-asan-opt/media/webrtc/signaling/src/peerconnection/PeerConnectionCtx.cpp:114
So, what's the expected behavior here? Obviously, we can remove the assert, but the bottom line is that you are allocating a lot of resources with each PC and while they will eventually be garbage collected, it's not clear to me that that should happen in any finite time, so it's not clear to me that this represents a resource leak.
Attached file testcase (obsolete) —
Testcase with calling .close() for each PeerConnection.
Attachment #674392 - Attachment is obsolete: true
Comment on attachment 674395 [details] testcase This calls x.close() only for the last PeerConnection, not for each of the 100 you create.
With that fixed, I got this: Assertion failure: 0, at c:/mozilla/objdir-debug/media/webrtc/signaling/signali g_ecc/../../../../../inbound/media/webrtc/signaling/src/peerconnection/PeerConn ctionCtx.cpp:114 This is a assertion due to PeerConnectionImpl being the wrong state. Ethan?
Not sure yet if this device event that pops up should be valid or not. Investigating. I will upload fixed test case and hopefully patch soon.
Attached file testcase
JS != Python. Fix brackets in testcase. This throws now an assertion failure as discussed above. I will look out for a suitable testcase for the initialization problem.
Attachment #674395 - Attachment is obsolete: true
Whiteboard: [fuzzblocker] → [fuzzblocker][WebRTC][blocking-webrtc+]
Comment on attachment 674896 [details] [diff] [review] Allow signaling startup when already started I don't see why this device event should be an error if we are already in kStarted. Don't think we want to Cleanup() in this case either.
Attachment #674896 - Flags: review?(rjesup)
Attachment #674896 - Flags: review?(rjesup) → review+
Attachment #674896 - Flags: checkin?(rjesup)
Attachment #674896 - Flags: checkin?(rjesup) → checkin+
Assignee: nobody → ethanhugg
Status: NEW → RESOLVED
Closed: 13 years ago
Flags: in-testsuite-
Resolution: --- → FIXED
Whiteboard: [fuzzblocker][WebRTC][blocking-webrtc+] → [fuzzblocker][WebRTC][blocking-webrtc+][qa-]
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: