DataChannels demo crashes due to no clock available

RESOLVED FIXED in Firefox 27

Status

()

defect
RESOLVED FIXED
6 years ago
6 years ago

People

(Reporter: jbeich, Assigned: jbeich)

Tracking

Trunk
mozilla29
x86_64
FreeBSD
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox26 wontfix, firefox27 fixed, firefox28 fixed, firefox29 fixed)

Details

(Whiteboard: [qa-])

Attachments

(1 attachment)

$ firefox -P test -no-remote http://mozilla.github.io/webrtc-landing/data_test.html
...
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 801902400 (LWP 100486)]
0x00000008066773fa in webrtc::RTPSender::RTPSender (this=0x816478608, id=65536, audio=true, clock=0x0, transport=0x818f0d020, audio_feedback=0x818f0d028, paced_sender=0x0) at media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/rtp_sender.cc:70
70        srand(static_cast<uint32_t>(clock_->TimeInMilliseconds()));
(gdb) bt f
#0  0x00000008066773fa in webrtc::RTPSender::RTPSender (this=0x816478608, id=65536, audio=true, clock=0x0, transport=0x818f0d020, audio_feedback=0x818f0d028, paced_sender=0x0) at media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/rtp_sender.cc:70
No locals.
#1  0x000000080664afd6 in webrtc::ModuleRtpRtcpImpl::ModuleRtpRtcpImpl (this=0x816478600, configuration=...) at media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc:102
No locals.
#2  0x000000080664af19 in webrtc::RtpRtcp::CreateRtpRtcp (configuration=...) at media/webrtc/trunk/webrtc/modules/rtp_rtcp/source/rtp_rtcp_impl.cc:63
        configuration_copy = {
          id = 65536,
          audio = true,
          clock = 0x0,
          default_module = 0x0,
          receive_statistics = 0x81ecc9080,
          outgoing_transport = 0x818f0d020,
          rtcp_feedback = 0x818f0d010,
          intra_frame_callback = 0x0,
          bandwidth_callback = 0x0,
          rtt_observer = 0x0,
          audio_messages = 0x818f0d028,
          remote_bitrate_estimator = 0x0,
          paced_sender = 0x0
        }
        rtp_rtcp_instance = 0x818f0d000
#3  0x00000008065fc923 in webrtc::voe::Channel::Channel (this=0x818f0d000, channelId=0, instanceId=1, config=...) at media/webrtc/trunk/webrtc/voice_engine/channel.cc:1026
        configuration = {
          id = 65536,
          audio = true,
          clock = 0x0,
          default_module = 0x0,
          receive_statistics = 0x81ecc9080,
          outgoing_transport = 0x818f0d020,
          rtcp_feedback = 0x818f0d010,
          intra_frame_callback = 0x0,
          bandwidth_callback = 0x0,
          rtt_observer = 0x0,
          audio_messages = 0x818f0d028,
          remote_bitrate_estimator = 0x0,
          paced_sender = 0x0
        }
#4  0x00000008065fbcb8 in webrtc::voe::Channel::CreateChannel (channel=@0x7fffffffb530: 0x808fb56a0 <vtable for webrtc::VoiceEngineImpl>, channelId=0, instanceId=1, config=...) at media/webrtc/trunk/webrtc/voice_engine/channel.cc:826
No locals.
#5  0x000000080660a9ce in webrtc::voe::ChannelManager::CreateChannel (this=0x81bdf9018) at media/webrtc/trunk/webrtc/voice_engine/channel_manager.cc:55
        channel = 0x808fb56a0 <vtable for webrtc::VoiceEngineImpl>
        crit = {
          ptr_crit_sec_ = 0x808fb5828 <vtable for webrtc::VoiceEngineImpl+392>
        }
        channel_owner = <optimized out>
#6  0x000000080661cf21 in webrtc::VoEBaseImpl::CreateChannel (this=0x81bdf9180) at media/webrtc/trunk/webrtc/voice_engine/voe_base_impl.cc:550
        cs = {
          ptr_crit_sec_ = 0x81a6dbbf0
        }
        channel_owner = {
          channel_ref_ = 0x0
        }
#7  0x0000000803a28c11 in mozilla::WebrtcAudioConduit::Init (this=0x8203f7f40, other=0x0) at media/webrtc/signaling/src/media-conduit/AudioConduit.cpp:233
No locals.
#8  0x0000000803a28565 in mozilla::AudioSessionConduit::Create (aOther=0x0) at media/webrtc/signaling/src/media-conduit/AudioConduit.cpp:50
        obj = 0x8203f7f40
#9  0x0000000803a53b50 in vcmRxStartICE_m (mcap_id=0, group_id=0, stream_id=5, level=1, pc_stream_id=0, pc_track_id=1, call_handle=65538, peerconnection=0x81e4423e4 "a470f3e393df7e21", num_payloads=1, payloads=0x8200daa00, setup_type=SDP_SETUP_ACTIVE, fingerprint_alg=0x809212d40 <gsmsdp_free_media_chunk+34400> "sha-256", fingerprint=0x809212d4a <gsmsdp_free_media_chunk+34410> "73:F7:1D:B2:54:25:EE:78:60:20:D3:3B:D1:61:0C:57:5D:45:76:78:65:03:86:F1:FE:4E:59:2B:CF:23:2E:9A", attrs=0x7ffffc44e718) at media/webrtc/signaling/src/media/VcmSIPCCBinding.cpp:1583
        configs = {
          <std::__1::__vector_base<mozilla::AudioCodecConfig*, std::__1::allocator<mozilla::AudioCodecConfig*> >> = {
            <std::__1::__vector_base_common<true>> = {<No data fields>},
            members of std::__1::__vector_base<mozilla::AudioCodecConfig*, std::__1::allocator<mozilla::AudioCodecConfig*> >:
            __begin_ = 0x0,
            __end_ = 0x0,
            __end_cap_ = {
              <std::__1::__libcpp_compressed_pair_imp<mozilla::AudioCodecConfig**, std::__1::allocator<mozilla::AudioCodecConfig*>, 2>> = {
                <std::__1::allocator<mozilla::AudioCodecConfig*>> = {<No data fields>},
                members of std::__1::__libcpp_compressed_pair_imp<mozilla::AudioCodecConfig**, std::__1::allocator<mozilla::AudioCodecConfig*>, 2>:
                __first_ = 0x0
              }, <No data fields>}
          }, <No data fields>}
        pipeline = {
          ptr = 0x803adea53 <std::__1::basic_stringstream<char, std::__1::char_traits<char>, std::__1::allocator<char> >::~basic_stringstream()+51>
        }
        tx_conduit = {
          ptr = 0x0
        }
        conduit = {
          ptr = 0x1e41200
        }
        config_raw = 0x7fffffffbe98
        res = 32767
        pc = {
          impl_ = {
            mRawPtr = 0x8019e3340
          }
        }
        rtp_flow = {
          ptr = 0x81cef9c40
        }
        stream = {
          mRawPtr = 0x81ec711f0
        }
        rtcp_flow = {
          ptr = 0x0
        }
#10 0x0000000803a5ae6f in mozilla::runnable_args_nm_14_ret<int (*)(unsigned short, unsigned short, unsigned short, int, int, int, unsigned int, char const*, int, vcm_payload_info_t const*, sdp_setup_type_e, char const*, char const*, vcm_attrs_t_*), unsigned short, unsigned short, unsigned short, int, int, int, unsigned int, char const*, int, vcm_payload_info_t const*, sdp_setup_type_e, char const*, char const*, vcm_attrs_t_*, int>::Run (this=0x8207f4040) at media/webrtc/signaling/../../../media/mtransport/runnable_utils_generated.h:1445
No locals.
#11 0x0000000803a72c06 in mozilla::SyncRunnable::Run (this=0x816c1d9d0) at xpcom/threads/SyncRunnable.h:70
No locals.
#12 0x0000000803d1c9a0 in nsThread::ProcessNextEvent (this=0x815a9d480, mayWait=false, result=0x7fffffffc15e) at xpcom/threads/nsThread.cpp:612
        event = {
          <nsCOMPtr_base> = {
            mRawPtr = 0x816c1d9d0
          }, <No data fields>}
        notifyMainThreadObserver = true
        obs = {
          <nsCOMPtr_base> = {
            mRawPtr = 0x8164d02e8
          }, <No data fields>}
        rv = NS_OK
#13 0x0000000803c650c5 in NS_ProcessNextEvent (thread=0x815a9d480, mayWait=false) at xpcom/glue/nsThreadUtils.cpp:263
        val = true
#14 0x00000008041d9ade in mozilla::ipc::MessagePump::Run (this=0x8019f2f40, aDelegate=0x80196c8c0) at ipc/glue/MessagePump.cpp:85
        did_work = true
        autoReleasePool = {<No data fields>}
#15 0x000000080413ff75 in MessageLoop::RunInternal (this=0x80196c8c0) at ipc/chromium/src/base/message_loop.cc:222
No locals.
#16 0x000000080413fec5 in MessageLoop::RunHandler (this=0x80196c8c0) at ipc/chromium/src/base/message_loop.cc:215
No locals.
#17 0x000000080413fe9d in MessageLoop::Run (this=0x80196c8c0) at ipc/chromium/src/base/message_loop.cc:189
        save_state = {
          <MessageLoop::RunState> = {
            run_depth = 1,
            quit_received = false
          },
          members of MessageLoop::AutoRunState:
          loop_ = 0x80196c8c0,
          previous_state_ = 0x0
        }
#18 0x0000000805335f95 in nsBaseAppShell::Run (this=0x8164d02e0) at widget/xpwidgets/nsBaseAppShell.cpp:161
        thread = 0x815a9d480
#19 0x0000000806a2c12f in nsAppStartup::Run (this=0x81657f510) at toolkit/components/startup/nsAppStartup.cpp:268
        rv = 8
        retval = 89612626
#20 0x00000008069a111b in XREMain::XRE_mainRun (this=0x7fffffffc840) at toolkit/xre/nsAppRunner.cpp:3978
        rv = NS_OK
        appStartup = {
          <nsCOMPtr_base> = {
            mRawPtr = 0x81657f510
          }, <No data fields>}
        cmdLine = {
          <nsCOMPtr_base> = {
            mRawPtr = 0x81a6b2540
          }, <No data fields>}
        workingDir = {
          <nsCOMPtr_base> = {
            mRawPtr = 0x81a64eb00
          }, <No data fields>}
#21 0x00000008069a1bbe in XREMain::XRE_main (this=0x7fffffffc840, argc=5, argv=0x7fffffffd190, aAppData=0x7fffffffcad8) at toolkit/xre/nsAppRunner.cpp:4046
        aLocal = 0 '\000'
        profilerGuard = {<No data fields>}
        rv = NS_OK
        log = {<No data fields>}
        exit = false
        result = 0
        appInitiatedRestart = false
#22 0x00000008069a232d in XRE_main (argc=5, argv=0x7fffffffd190, aAppData=0x7fffffffcad8, aFlags=0) at toolkit/xre/nsAppRunner.cpp:4254
        main = {
          mNativeApp = {
            <nsCOMPtr_base> = {
              mRawPtr = 0x8019ff890
            }, <No data fields>},
          mProfileSvc = {
            <nsCOMPtr_base> = {
              mRawPtr = 0x8019f2c80
            }, <No data fields>},
          mProfD = {
            <nsCOMPtr_base> = {
              mRawPtr = 0x815a2d160
            }, <No data fields>},
          mProfLD = {
            <nsCOMPtr_base> = {
              mRawPtr = 0x815a2d200
            }, <No data fields>},
          mProfileLock = {
            <nsCOMPtr_base> = {
              mRawPtr = 0x815a35fe0
            }, <No data fields>},
          mRemoteService = {
            <nsCOMPtr_base> = {
              mRawPtr = 0x0
            }, <No data fields>},
          mScopedXPCom = 0x801922690,
          mAppData = 0x80191e180,
          mDirProvider = <error reading variable>
        result = 8
#23 0x00000000004051f7 in do_main (argc=5, argv=0x7fffffffd190, xreDirectory=0x801918240) at browser/app/nsBrowserApp.cpp:280
        appData = {
          <nsXREAppData> = {
            size = 120,
            directory = 0x8019186a0,
            vendor = 0x8019221a0 "Mozilla",
            name = 0x8019221a8 "Firefox",
            version = 0x8019221b0 "28.0a1",
            buildID = 0x801914b10 "20131209121008",
            ID = 0x80191aaf0 "{ec8030f7-c20a-464f-9b0e-13a3a9e97384}",
            copyright = 0x0,
            flags = 6,
            xreDirectory = 0x801918240,
            minVersion = 0x8019221b8 "28.0a1",
            maxVersion = 0x8019221c0 "28.0a1",
            crashReporterURL = 0x8019221c8 "",
            profile = 0x0,
            UAName = 0x0
          }, <No data fields>}
        exeFile = {
          <nsCOMPtr_base> = {
            mRawPtr = 0x801918420
          }, <No data fields>}
        greDir = {
          <nsCOMPtr_base> = {
            mRawPtr = 0x801918560
          }, <No data fields>}
        appSubdir = {
          <nsCOMPtr_base> = {
            mRawPtr = 0x8019186a0
          }, <No data fields>}
        appini = {
          <nsCOMPtr_base> = {
            mRawPtr = 0x0
          }, <No data fields>}
        rv = NS_OK
        mainFlags = 0
        appDataFile = 0x0
        metroOnDesktop = false
#24 0x00000000004048ac in main (argc=5, argv=0x7fffffffd190) at browser/app/nsBrowserApp.cpp:649
        start = 166921563075109
        gotCounters = 1
        initialRUsage = {
          ru_utime = {
            tv_sec = 0,
            tv_usec = 0
          },
          ru_stime = {
            tv_sec = 0,
            tv_usec = 3763
          },
          ru_maxrss = 0,
          ru_ixrss = 0,
          ru_idrss = 0,
          ru_isrss = 0,
          ru_minflt = 303,
          ru_majflt = 0,
          ru_nswap = 0,
          ru_inblock = 0,
          ru_oublock = 0,
          ru_msgsnd = 0,
          ru_msgrcv = 0,
          ru_nsignals = 0,
          ru_nvcsw = 4,
          ru_nivcsw = 0
        }
        xreDirectory = 0x801918240
        rv = NS_OK
        result = 8
Attachment #8344572 - Flags: review?(rjesup)
Comment on attachment 8344572 [details] [diff] [review]
Initialize RealTimeClock on BSDs.

[Approval Request Comment]
Bug caused by regressing bug 880879 and bug 807492
User impact if declined: crashing WebRTC on BSD, probably only in certain cases
Risk to taking this patch (and alternatives if risky): none
Attachment #8344572 - Flags: approval-mozilla-beta?
Attachment #8344572 - Flags: approval-mozilla-aurora?
Attachment #8344572 - Flags: review?(rjesup) → review+
I also would suggest we take this on Aurora and Beta is it's truly a BSD-only change
I need to get back to making webrtc work on openbsd.. :(

https://hg.mozilla.org/integration/mozilla-inbound/rev/9d33398eeb67
https://hg.mozilla.org/mozilla-central/rev/9d33398eeb67
Assignee: nobody → jbeich
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla29
Attachment #8344572 - Flags: approval-mozilla-beta?
Attachment #8344572 - Flags: approval-mozilla-beta+
Attachment #8344572 - Flags: approval-mozilla-aurora?
Attachment #8344572 - Flags: approval-mozilla-aurora+
I don't think this needs QA verification. If anyone thinks that's a mistake please remove the [qa-] whiteboard tag and add the verifyme keyword.
Keywords: verifyme
Whiteboard: [qa-]
You need to log in before you can comment on or make changes to this bug.