Uploaded image for project: 'Qt'
  1. Qt
  2. QTBUG-109149

[Windows] Crash on MFPlayerControl::handleStatusChanged()

    XMLWordPrintable

Details

    • Bug
    • Resolution: Fixed
    • P2: Important
    • 6.2, 6.4, 6.5
    • 6.3.2
    • Multimedia
    • None
    • Windows
    • de266fd95 (dev), f334da2d3 (6.4), 54830b12f (tqtc/lts-6.2), 27684625a (6.5)

    Description

      I see such crashes among our users crash reports.
      Unfortunately I have no minimal reproducer at the moment.

      Unhandled exception at 0x00007FF8B492DB95 (Qt6Core.dll) in minidump (34).dmp: 0xC0000005: Access violation reading location 0x0000000000000030.
      

      Stack:

       	Qt6Core.dll!doActivate<0>(QObject * sender, int signal_index, void * * argv) Line 3805	C++
       	Qt6Core.dll!QMetaObject::activate(QObject * sender, const QMetaObject * m, int local_signal_index, void * * argv) Line 3982	C++
       	[Inline Frame] Qt6Core.dll!QtPrivate::QSlotObjectBase::call(QObject *) Line 399	C++
       	Qt6Core.dll!doActivate<0>(QObject * sender, int signal_index, void * * argv) Line 3921	C++
       	Qt6Core.dll!QMetaObject::activate(QObject * sender, const QMetaObject * m, int local_signal_index, void * * argv) Line 3982	C++
       	[Inline Frame] Qt6Multimedia.dll!QMediaPlayer::mediaStatusChanged(QMediaPlayer::MediaStatus _t1) Line 710	C++
       	Qt6Multimedia.dll!QMediaPlayerPrivate::setStatus(QMediaPlayer::MediaStatus s) Line 146	C++
      >	Qt6Multimedia.dll!MFPlayerControl::handleStatusChanged() Line 188	C++
       	[Inline Frame] Qt6Multimedia.dll!MFPlayerSession::statusChanged() Line 136	C++
       	[Inline Frame] Qt6Multimedia.dll!MFPlayerSession::changeStatus(QMediaPlayer::MediaStatus) Line 1168	C++
       	Qt6Multimedia.dll!MFPlayerSession::handleSessionEvent(IMFMediaEvent * sessionEvent) Line 1863	C++
       	Qt6Core.dll!QMetaCallEvent::placeMetaCall(QObject * object) Line 631	C++
       	Qt6Core.dll!QObject::event(QEvent * e) Line 1356	C++
       	Qt6Widgets.dll!QApplicationPrivate::notify_helper(QObject * receiver, QEvent * e) Line 3352	C++
       	Qt6Widgets.dll!QApplication::notify(QObject * receiver, QEvent * e) Line 3304	C++
       	Qt6Core.dll!QCoreApplication::notifyInternal2(QObject * receiver, QEvent * event) Line 1067	C++
       	[Inline Frame] Qt6Core.dll!QCoreApplication::sendEvent(QObject *) Line 1483	C++
       	Qt6Core.dll!QCoreApplicationPrivate::sendPostedEvents(QObject * receiver, int event_type, QThreadData * data) Line 1845	C++
       	Qt6Gui.dll!QWindowsGuiEventDispatcher::sendPostedEvents() Line 80	C++
       	Qt6Core.dll!QEventDispatcherWin32::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 476	C++
       	Qt6Gui.dll!QWindowsGuiEventDispatcher::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 73	C++
       	[Inline Frame] Qt6Core.dll!QEventLoop::processEvents(QFlags<enum QEventLoop::ProcessEventsFlag>) Line 136	C++
       	Qt6Core.dll!QEventLoop::exec(QFlags<enum QEventLoop::ProcessEventsFlag> flags) Line 218	C++
       	Qt6Core.dll!QCoreApplication::exec() Line 1388	C++
      

      This code looks weird, pay attention that mediaStatusChanged() is not a signal (why emit?), it's just a regular method of QPlatformMediaPlayer. 
      Note: as soon as I can see and may trust to minidump, m_session->status() is EndOfMedia at the moment.

      Attachments

        Issue Links

          For Gerrit Dashboard: QTBUG-109149
          # Subject Branch Project Status CR V

          Activity

            People

              artemiy Artem Dyomin
              studiosus Vladimir Belyavsky
              Votes:
              3 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes