Bug 391856

Summary: Segfault in installation partitioner dialog
Product: [openSUSE] openSUSE 11.0 Reporter: Petr Ostadal <postadal>
Component: InstallationAssignee: Thomas Göttlicher <tgoettlicher>
Status: RESOLVED FIXED QA Contact: Jiri Srain <jsrain>
Severity: Blocker    
Priority: P5 - None CC: aschnell, coolo, koenig, mvidner, tgoettlicher
Version: Beta 3   
Target Milestone: ---   
Hardware: x86-64   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---
Attachments: YaST2 log

Description Petr Ostadal 2008-05-18 19:01:36 UTC
In installation I click on partitioning and I went throught dialogs and back then I tried it again and error ocured and installation ended immediately.
Comment 1 Petr Ostadal 2008-05-18 19:07:49 UTC
Created attachment 216244 [details]
YaST2 log
Comment 2 Stefan Hundhammer 2008-05-19 10:14:58 UTC
2008-05-18 19:14:05 <0> linux(3507) [libycp] ExecutionEnvironment.cc(pushframe):105 Push frame OpenDialog (`opt (`wizardDialog), `Wizard (`back, Label::BackButton (), `abort, Label::AbortButton (), `next, Label::NextButton ()))
2008-05-18 19:14:05 <0> linux(3507) [qt-ui] YQDialog.cc(chooseParent):118 Adding dialog to mainWinDock
2008-05-18 19:14:05 <0> linux(3507) [qt-ui] YQMainWinDock.cc(add):135 Adding dialog 0x1e756c0  to mainWinDock
2008-05-18 19:14:05 <0> linux(3507) [qt-ui] YQMainWinDock.cc(resizeVisibleChild):98 Resizing child dialog 0x1e756c0 to 1024 x 768
2008-05-18 19:14:05 <0> linux(3507) [qt-ui] YQMainWinDock.cc(resizeVisibleChild):91 wizard YWizard "YQWizard "Suggested Partitioning"" at 0x7bab68 0
2008-05-18 19:14:05 <0> linux(3507) [qt-ui] YQMainWinDock.cc(resizeVisibleChild):91 wizard YWizard "untitled YQWizard" at 0x29d3048 1
2008-05-18 19:14:05 <0> linux(3507) [qt-ui] YQMainWinDock.cc(resizeVisibleChild):98 Resizing child dialog 0x1e756c0 to 810 x 768
2008-05-18 19:14:05 <3> linux(3507) [liby2] genericfrontend.cc(log_stored_debug):75 End of suppressed debugging messages
2008-05-18 19:14:05 <3> linux(3507) [liby2] genericfrontend.cc(log_backtrace):97 Back trace:

   Frame  0: /usr/lib64/liby2.so.2  log_backtrace()
   Frame  1: /usr/lib64/liby2.so.2  signal_handler(int)
   Frame  2: /lib64/libc.so.6 [0x7ff38f176640]
   Frame  3: /usr/lib64/libQtCore.so.4  QObject::objectName() const
   Frame  4: /usr/lib64/YaST2/plugin/libpy2qt.so.2  QY2Styler::renderParent(QWidget*)
   Frame  5: /usr/lib64/YaST2/plugin/libpy2qt.so.2  QY2Styler::updateRendering(QWidget*)
   Frame  6: /usr/lib64/YaST2/plugin/libpy2qt.so.2  QY2Styler::eventFilter(QObject*, QEvent*)
   Frame  7: /usr/lib64/libQtCore.so.4  QCoreApplicationPrivate::sendThroughObjectEventFilters(QObject*, QEvent*)
   Frame  8: /usr/lib64/libQtGui.so.4  QApplicationPrivate::notify_helper(QObject*, QEvent*)
   Frame  9: /usr/lib64/libQtGui.so.4  QApplication::notify(QObject*, QEvent*)
   Frame 10: /usr/lib64/libQtCore.so.4  QCoreApplication::notifyInternal(QObject*, QEvent*)
   Frame 11: /usr/lib64/libQtGui.so.4  QWidgetPrivate::show_helper()
   Frame 12: /usr/lib64/libQtGui.so.4  QWidget::setVisible(bool)
   Frame 13: /usr/lib64/libQtGui.so.4  QWidgetPrivate::showChildren(bool)
   Frame 14: /usr/lib64/libQtGui.so.4  QWidgetPrivate::show_helper()
   Frame 15: /usr/lib64/libQtGui.so.4  QWidget::setVisible(bool)
   Frame 16: /usr/lib64/YaST2/plugin/libpy2qt.so.2  YQDialog::setSize(int, int)
   Frame 17: /usr/lib64/YaST2/plugin/libpy2qt.so.2  YQDialog::resizeEvent(QResizeEvent*)
   Frame 18: /usr/lib64/libQtGui.so.4  QWidget::event(QEvent*)
   Frame 19: /usr/lib64/libQtGui.so.4  QApplicationPrivate::notify_helper(QObject*, QEvent*)
   Frame 20: /usr/lib64/libQtGui.so.4  QApplication::notify(QObject*, QEvent*)
   Frame 21: /usr/lib64/libQtCore.so.4  QCoreApplication::notifyInternal(QObject*, QEvent*)
   Frame 22: /usr/lib64/libQtGui.so.4  QWidgetPrivate::setGeometry_sys(int, int, int, int, bool)
   Frame 23: /usr/lib64/libQtGui.so.4  QWidget::setGeometry(QRect const&)
   Frame 24: /usr/lib64/YaST2/plugin/libpy2qt.so.2  YQMainWinDock::resizeVisibleChild()
   Frame 25: /usr/lib64/YaST2/plugin/libpy2qt.so.2  YQWizard::YQWizard(YWidget*, std::string const&, std::string const&, std::string const&, YWizardMode)
   Frame 26: /usr/lib64/YaST2/plugin/libpy2qt.so.2  YQOptionalWidgetFactory::createWizard(YWidget*, std::string const&, std::string const&, std::string const&, YWizardMode)
   Frame 27: /usr/lib64/YaST2/plugin/libpy2UI.so.2  YCPDialogParser::parseWizard(YWidget*, YWidgetOpt&, YCPTerm const&, YCPList const&, int)
   Frame 28: /usr/lib64/YaST2/plugin/libpy2UI.so.2  YCPDialogParser::parseWidgetTreeTerm(YWidget*, YWidgetOpt&, YCPTerm const&)
   Frame 29: /usr/lib64/YaST2/plugin/libpy2UI.so.2  YCPDialogParser::parseWidgetTreeTerm(YWidget*, YCPTerm const&)
   Frame 30: /usr/lib64/YaST2/plugin/libpy2UI.so.2  YCP_UI::OpenDialog(YCPTerm const&, YCPTerm const&)
   Frame 31: /usr/lib64/YaST2/plugin/libpy2UI.so.2  YUINamespace::OpenDialog(YCPTerm const&, YCPTerm const&)
   Frame 32: /usr/lib64/YaST2/plugin/libpy2UI.so.2  YUIFunction::evaluateCall_int()
   Frame 33: /usr/lib64/YaST2/plugin/libpy2UI.so.2  YCPBuiltinCaller::call()
   Frame 34: /usr/lib64/libyui.so.3  YUI::uiThreadMainLoop()
   Frame 35: /usr/lib64/libyui.so.3  start_ui_thread(void*)
   Frame 36: /lib64/libpthread.so.0 [0x7ff390370040]
Comment 3 Stefan Hundhammer 2008-05-19 10:18:19 UTC
I've seen this exact backtrace before (also on x86_64 IIRC).

Can this be a simple memory corruption? (Arvin? Valgrind?)
Or a race condition on that architecture? (Coolo? Any known Qt issues?)

It doesn't seem to be a generic problem with opening (Wizard) dialogs; several others before that worked without problem.
Comment 4 Stephan Kulow 2008-05-19 10:47:55 UTC
see https://bugzilla.novell.com/show_bug.cgi?id=380290 - I tried for _hours_ to reproduce it ;(
Comment 5 Stefan Hundhammer 2008-05-19 10:56:13 UTC
See also bug #381755 - same backtrace AFAICS
Comment 6 Thomas Göttlicher 2008-05-19 12:26:07 UTC
See also 391947, sounds similar.
Comment 7 Stephan Kulow 2008-05-20 10:43:33 UTC
I fail to reproduce any of that - does someone have a half way reproducible way that he could run under valgrind?
Comment 9 Stephan Kulow 2008-05-20 11:13:02 UTC
No, the bug is somewhere in yast2-qt - the question is where.
Comment 10 Petr Ostadal 2008-05-20 14:02:01 UTC
Stephan, could you describe, how can I run it under valgrind? (I don't know yast2 installation). I think I have same problem in alpha plus, but I thought that I did a lot of nonstandart things;).
Comment 11 Stefan Hundhammer 2008-05-20 14:23:50 UTC
valgrind in an inst-sys is a bit more challenging than an average valgrind run...

Basically, you'll have to set up an installation server, unpack the inst-sys there, add valgrind to that inst-sys (AFAICS valgrind doesn't need anything else), change the YaST2 start scripts so it calls y2base with valgrind, and then run an installation from that setup.
Comment 12 Martin Vidner 2008-05-20 14:35:52 UTC
It is not easy but one part got recently easier: use start_shell=1 to get bash before yast starts. Type "extend ../../suse/i586/valgrind-3.3.0-39.i586.rpm" (look up the exact path for B3).
Comment 13 Thomas Göttlicher 2008-05-30 12:21:21 UTC

*** This bug has been marked as a duplicate of bug 391947 ***
Comment 14 Stefan Hundhammer 2008-06-05 11:43:06 UTC
Reapeared with RC1
Comment 15 Stephan Kulow 2008-06-05 16:55:49 UTC
fixed for rc3