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

COREWEB: /usr/bin/meego-im-uiserver 'internalWinId QWidget::effectiveWinId MReactionMapPrivate::eventFilter QCoreApplicationPrivate::sendThroughObjectEventFilters QApplicationPrivate::notify_helper'

    XMLWordPrintable

Details

    • 6db0153cd7e35e4a919a76ae2aadbf2d2510bfb7

    Description

      Hulkkonen Lassi (Symbio) 2011-03-14 12:18:14 EET

      SOFTWARE VERSION:
      DFL61_HARMATTAN_0.2011.10-7_PR_001

      HARDWARE VERSION:
      product RM-696 hw-build 0807 nolo 2.0.20 boot-mode normal

      This bug was generated from a crash report:
      https://coreweb.projects.maemo.org/core?sha1sum=46cf2a9ea910250c091f92e9f7601d95f4cbc83d

      Stack:
      Signal 11 (SIGSEGV)
      0 internalWinId (this=0x41fe0) at
      ../../include/QtGui/../../src/gui/kernel/qwidget.h:234
      1 QWidget::effectiveWinId (this=0x41fe0) at kernel/qwidget.cpp:2562
      2 0x3db5cfb0 MReactionMapPrivate::eventFilter (this=0x7f9a0,
      obj=0x41fe0) at mreactionmap_p.cpp:371
      3 0x3b6922a0 QCoreApplicationPrivate::sendThroughObjectEventFilters
      (receiver=0x41fe0, event=0xae9acf80) at kernel/qcoreapplication.cpp:902
      4 0x3ac8e710 QApplicationPrivate::notify_helper (this=0x23610,
      receiver=0x41fe0, e=0xae9acf80) at kernel/qapplication.cpp:4458
      5 0x3ac95374 QApplication::notify (this=0xae9adb64, receiver=0x41fe0,
      e=0xae9acf80) at kernel/qapplication.cpp:4341
      6 0x3b6926e4 QCoreApplication::notifyInternal (this=0xae9adb64,
      event=0xae9acf80) at kernel/qcoreapplication.cpp:787
      7 0x3ace0f94 sendEvent (id=0) at
      ../../include/QtCore/../../src/corelib/kernel/qcoreapplication.h:215
      8 QWidgetPrivate::setWinId (id=0) at kernel/qwidget.cpp:1694
      9 0x3ad38930 QWidgetPrivate::setParent_sys (this=0x39a00, parent=0x0)
      at kernel/qwidget_x11.cpp:1200
      10 0x3aceb7b0 QWidget::setParent (this=0x41fe0, parent=0x0) at
      kernel/qwidget.cpp:10072
      11 0x3ad399f4 QWidget::setWindowState (this=0x41fe0) at
      kernel/qwidget_x11.cpp:1833
      12 0x3ace0634 QWidget::showFullScreen (this=0x41fe0) at
      kernel/qwidget.cpp:3057
      13 0x0000d004 MPassThruWindow::inputPassthrough (this=0x41fe0) at
      mpassthruwindow.cpp:130
      14 0x0000e200 MPassThruWindow::qt_metacall (this=0x41fe0, _id=0,
      _a=0xae9ad3f8) at moc_mpassthruwindow.cpp:80
      15 0x3b69879c QMetaObject::metacall (object=0x0, idx=28, argv=0x39a00)
      at kernel/qmetaobject.cpp:237
      16 0x3b6ae30c QMetaObject::activate (sender=0x41718, argv=0x39a00) at
      kernel/qobject.cpp:3278
      17 0x3ab01f80 MIMPluginManager::regionUpdated (this=0x0) at
      .moc/moc_mimpluginmanager.cpp:115
      18 0x3ab45f24 MAbstractInputMethodHost::qt_metacall (this=0x681c0,
      _id=-4, _a=0xae9ad4b8) at .moc/moc_mabstractinputmethodhost.cpp:143
      19 0x3b69879c QMetaObject::metacall (object=0x0, idx=28, argv=0x39a00)
      at kernel/qmetaobject.cpp:237
      20 0x3b6ae30c QMetaObject::activate (sender=0xc0830, argv=0x39a00) at
      kernel/qobject.cpp:3278
      21 0x3de7133c RegionTracker::regionChanged (this=0x0) at
      .moc/moc_regiontracker.cpp:87
      22 0x3de5a7a4 MKeyboardHost::sendRegionEstimate () at
      mkeyboardhost.cpp:572
      23 0x3de5aa14 MKeyboardHost::show (this=0x77048) at
      mkeyboardhost.cpp:620
      24 0x3ab06eb8 MIMPluginManagerPrivate::showActivePlugins () at
      mimpluginmanager.cpp:664
      25 0x3ab0cefc MIMPluginManager::qt_metacall (this=0x41718, _id=-9,
      _a=0xae9ad664) at .moc/moc_mimpluginmanager.cpp:95
      26 0x3b69879c QMetaObject::metacall (object=0x0, idx=28, argv=0x39a00)
      at kernel/qmetaobject.cpp:237
      27 0x3b6ae30c QMetaObject::activate (sender=0x45390, argv=0x39a00) at
      kernel/qobject.cpp:3278
      28 0x3ab3158c m_dbus_glib_ic_connection_show_input_method () at
      minputcontextglibdbusconnection.cpp:107
      29 0x3ab31dc8
      dbus_glib_marshal_m_dbus_glib_ic_connection_BOOLEAN__POINTER
      (closure=0xae9ad7c8, return_value=0xae9ad810, param_values=0x1061b0,
      invocation_hint=0x0, marshal_data=0x3ab3157c) at
      mdbusglibicconnectionserviceglue.h:243
      30 0x3bb620d8 invoke_object_method () at dbus-gobject.c:1721
      31 object_registration_message () at dbus-gobject.c:1941
      32 0x3bb954b0 _dbus_object_tree_dispatch_and_unlock (tree=0x1a89e0,
      message=0x1e0aa8) at dbus-object-tree.c:858
      33 0x3bb870d4 dbus_connection_dispatch (connection=0x1e34e0) at
      dbus-connection.c:4687
      34 0x3bb5dd24 message_queue_dispatch () at dbus-gmain.c:101
      35 0x3bc4ee58 g_main_dispatch () at
      /home/bifh13/cs2009q3-armel/work/glib2.0-2.26.0/glib/gmain.c:2171
      36 g_main_context_dispatch () at
      /home/bifh13/cs2009q3-armel/work/glib2.0-2.26.0/glib/gmain.c:2724
      37 0x3bc52f38 g_main_context_iterate (context=0x26200) at
      /home/bifh13/cs2009q3-armel/work/glib2.0-2.26.0/glib/gmain.c:2802
      38 0x3bc53198 g_main_context_iteration (context=0x26200, may_block=1)
      at /home/bifh13/cs2009q3-armel/work/glib2.0-2.26.0/glib/gmain.c:2865
      39 0x3b6c4fb0 QEventDispatcherGlib::processEvents (this=0x24e78) at
      kernel/qeventdispatcher_glib.cpp:422
      40 0x3ad46f14 QGuiEventDispatcherGlib::processEvents (this=0x0) at
      kernel/qguieventdispatcher_glib.cpp:204
      41 0x3b691208 QEventLoop::processEvents () at kernel/qeventloop.cpp:149
      42 0x3b6916ac QEventLoop::exec (this=0xae9adadc) at
      kernel/qeventloop.cpp:201
      43 0x3b696d60 QCoreApplication::exec () at
      kernel/qcoreapplication.cpp:1064
      44 0x0000be78 main (argc=3) at main.cpp:86

      [reply] [-] Comment 1 Hasselmann Michael (Openismus) 2011-03-14 17:07:03 EET

      Cannot call ::effectiveWinId for unmapped (X) windows - something goes awfully
      wrong in Qt, as effectiveWinId should simply return 0 in this case!

      So, shall we move this to Qt?

      [reply] [-] Comment 2 Hasselmann Michael (Openismus) 2011-03-14 17:19:10 EET

      From the relevant Qt code:

      WId QWidget::effectiveWinId() const
      {
      WId id = internalWinId();
      if (id || !testAttribute(Qt::WA_WState_Created))
      return id;
      QWidget *realParent = nativeParentWidget();
      Q_ASSERT(realParent);
      Q_ASSERT(realParent->internalWinId());
      return realParent->internalWinId();
      }

      This is broken. The Q_ASSERT's are useless, and wrong. The only real solution
      is to return 0 if nativeParentWidget returns 0.

      As our backtrace here shows, the Qt::WA_WState_Created guard is not good enough
      if for example event filters are involved.

      Forwarding to Qt. Proposing to raise severity, as it applies to all users of
      QWidget::effectiveWinId.

      [reply] [-] Comment 3 Sun Richard (NokiaSSU) H_TPO 2011-03-14 17:27:04 EET

      request for Sales Flag.

      [reply] [-] Comment 4 Bhatti Asbhatti (Tieto) 2011-03-15 10:07:29 EET

      As the crash happens at:
      WId id = internalWinId();

      Is this the change you meant?

      WId QWidget::effectiveWinId() const
      {
      if (!testAttribute(Qt::WA_WState_Created))

      { WId id = internalWinId(); if (id) return id; }

      QWidget *realParent = nativeParentWidget();
      Q_ASSERT(realParent);
      Q_ASSERT(realParent->internalWinId());
      return realParent->internalWinId();
      }

      [reply] [-] Comment 5 Hasselmann Michael (Openismus) 2011-03-15 11:10:22 EET

      (In reply to comment #4)
      > As the crash happens at:
      > WId id = internalWinId();
      >
      > Is this the change you meant?

      The line number in the bt says it crashes at:

      return realParent->internalWinId();

      which means we dereferencing a nullptr here.

      [reply] [-] Comment 6 Pakarinen Juuso (Tieto) 2011-03-18 12:18:13 EET

      Assignign.

      [reply] [-] Comment 7 Kekki Jussi-Pekka (Nokia) H_BPO product_managers 2011-03-18 13:28:04 EET

      flagging to sales.

      [reply] [-] Comment 8 Sun Richard (NokiaSSU) H_TPO 2011-03-25 15:23:28 EET

      request PILOT inherited from blocked bug

      [reply] [-] Comment 9 Bhatti Asbhatti (Tieto) 2011-03-29 07:56:30 EEST

      qt merge requested:

      Oswald Buddenhagen commented:

      hi, looks like our widget guys are rather busy. :/
      to accelerate integration, you should add an autotest that demonstrates the
      problem.

      http://gitorious.org/qt/qt/merge_requests/1141

      Lassi.Hulkkonen can you do the needful?

      [reply] [-] Comment 10 Hulkkonen Lassi (Symbio) 2011-03-29 08:14:20 EEST

      (In reply to comment #9)
      > qt merge requested:
      >
      > Oswald Buddenhagen commented:
      >
      > hi, looks like our widget guys are rather busy. :/
      > to accelerate integration, you should add an autotest that demonstrates the
      > problem.
      >
      > http://gitorious.org/qt/qt/merge_requests/1141
      >
      > Lassi.Hulkkonen can you do the needful?

      No, I don't think I can do this.

      Attachments

        Activity

          People

            bjnilsen Bjørn Erik Nilsen
            asifzubair Asif Zubair Bhatti
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: