Bug 384177

Summary: YaST2-Qt crashing with Qtcurve theme
Product: [openSUSE] openSUSE 11.0 Reporter: Forgotten User eSTct29jGv <forgotten_eSTct29jGv>
Component: YaST2Assignee: Dirk Mueller <dmueller>
Status: RESOLVED FIXED QA Contact: Jiri Srain <jsrain>
Severity: Normal    
Priority: P5 - None    
Version: Beta 1   
Target Milestone: ---   
Hardware: Other   
OS: openSUSE 11.0   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: y2log of the crash
y2log of the crash (openSUSE 10.3 with qtcurve-kde4-0.59.0-4.5)

Description Forgotten User eSTct29jGv 2008-04-27 11:39:00 UTC
Created attachment 210715 [details]
y2log of the crash

Hello,

whenever I start the YaST2 Package Manager with the Qtcurve Qt4 theme (from the KDE:/KDE4:/UNSTABLE:/Desktop/ repo), YaST crashes with a segmentation fault. I only noticed this bug with the Qtcurve theme, but also only with YaST's package manager (other Qt4 applications have no problem with Qtcurve). Therefore I don't know if the bug is in YaST or Qtcurve, but maybe YaST does something wrong in the UI and Qtcurve isn't robust enough to fix it by itself instead of crashing?

This crash also happens on openSUSE 10.3 with the backported versions of ZYpp and YaST and the Qtcurve theme from the same repo (but for openSUSE 10.3 of course).

See the attached y2log for a backtrace.
Comment 1 Marcus Meissner 2008-04-27 13:21:08 UTC
update the qtcurve package again, it has been fixed in the meantime.
Comment 2 Forgotten User eSTct29jGv 2008-04-27 13:33:24 UTC
I think I already have the latest version of qtcurve:
- qtcurve-kde4-0.59.0-2.2 on openSUSE 10.3 (from KDE4 Unstable Desktop)
- qtcurve-kde4-0.58.0-3 on openSUSE 11.0 Beta1 (from Factory)

.. and the problem is still there.

I saw a blog post recently about a fixed bug in Qtcurve, but it was for Gtk2 only.
Comment 3 Dirk Mueller 2008-04-28 09:33:29 UTC
not really, the bug was also in the other qtcurve-* variants. thanks for catching!
Comment 4 Forgotten User eSTct29jGv 2008-05-01 11:49:09 UTC
Hmm.. sorry to insist, but even with the buffer overflow fix in Qtcurve, YaST still crashes with this style.

The attached y2log is from openSUSE 10.3 with the latest YaST versions from the Backport repository, and the latest Qtcurve from KDE4 Unstable Desktop :

fabien:/home/fabien # rpm -q qtcurve-kde4
qtcurve-kde4-0.59.0-4.5
fabien:/home/fabien # rpm -q qtcurve-kde4 --changelog | head -n 2
* lun avr 28 2008 dmueller@suse.de
- add buffer overflow fix here as well

I couldn't test the latest Qtcurve on openSUSE 11.0 Beta1, as the package from Factory doesn't include the buffer overflow fix yet.
Comment 5 Forgotten User eSTct29jGv 2008-05-01 11:49:34 UTC
Created attachment 211717 [details]
y2log of the crash (openSUSE 10.3 with qtcurve-kde4-0.59.0-4.5)
Comment 6 Dirk Mueller 2008-05-02 15:50:12 UTC
==20293== Invalid read of size 4
==20293==    at 0x7D1D1C7: QProgressBar::minimum() const (in /usr/lib/libQtGui.so.4.4.1)
==20293==    by 0x77E8F8E: QObject::event(QEvent*) (in /usr/lib/libQtCore.so.4.4.1)
==20293==    by 0x7991F4B: QApplicationPrivate::notify_helper(QObject*, QEvent*) (in /usr/lib/libQtGui.so.4.4.1)
==20293==    by 0x799839D: QApplication::notify(QObject*, QEvent*) (in /usr/lib/libQtGui.so.4.4.1)
==20293==    by 0x77DADD0: QCoreApplication::notifyInternal(QObject*, QEvent*) (in /usr/lib/libQtCore.so.4.4.1)
==20293==    by 0x78033E0: QTimerInfoList::activateTimers() (in /usr/lib/libQtCore.so.4.4.1)
==20293==    by 0x780365A: QEventDispatcherUNIX::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/libQtCore.so.4.4.1)
==20293==    by 0x7A1C281: QEventDispatcherX11::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/libQtGui.so.4.4.1)
==20293==    by 0x77D9549: QEventLoop::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) (in /usr/lib/libQtCore.so.4.4.1)
==20293==    by 0x7644B95: YQUI::idleLoop(int) (YQUI_core.cc:417)
==20293==    by 0x4FF0476: YUI::uiThreadMainLoop() (in /usr/lib/libyui.so.3.0.0)
==20293==    by 0x4FF0780: start_ui_thread(void*) (in /usr/lib/libyui.so.3.0.0)
==20293==  Address 0x72cd56c is 4 bytes inside a block of size 20 free'd
==20293==    at 0x402371A: operator delete(void*) (in /usr/lib/valgrind/x86-linux/vgpreload_memcheck.so)
==20293==    by 0x7EFCBFC: QProgressBar::~QProgressBar() (in /usr/lib/libQtGui.so.4.4.1)
==20293==    by 0x77E7ACE: QObjectPrivate::deleteChildren() (in /usr/lib/libQtCore.so.4.4.1)
==20293==    by 0x79E29B0: QWidget::~QWidget() (in /usr/lib/libQtGui.so.4.4.1)
==20293==    by 0x7CD0580: QFrame::~QFrame() (in /usr/lib/libQtGui.so.4.4.1)
==20293==    by 0x7621A7B: YQProgressBar::~YQProgressBar() (YQProgressBar.cc:65)
==20293==    by 0x50359AA: YWidget::deleteChildren() (in /usr/lib/libyui.so.3.0.0)
==20293==    by 0x4F58883: YCP_UI::ReplaceWidget(YCPValue const&, YCPTerm const&) (in /usr/lib/YaST2/plugin/libpy2UI.so.2.0.0)
==20293==    by 0x4F3C4C1: YUINamespace::ReplaceWidget(YCPTerm const&, YCPTerm const&) (in /usr/lib/YaST2/plugin/libpy2UI.so.2.0.0)
==20293==    by 0x4F4F4C8: YUIFunction::evaluateCall_int() (in /usr/lib/YaST2/plugin/libpy2UI.so.2.0.0)
==20293==    by 0x4F60F22: YCPBuiltinCaller::call() (in /usr/lib/YaST2/plugin/libpy2UI.so.2.0.0)
==20293==    by 0x4FF04A7: YUI::uiThreadMainLoop() (in /usr/lib/libyui.so.3.0.0)
Comment 7 Dirk Mueller 2008-05-02 22:14:29 UTC
fix submitted and sent upstream.
Comment 8 Forgotten User eSTct29jGv 2008-05-05 18:39:15 UTC
It works fine now with qtcurve-kde4-0.59.0-8.1, thanks!