Bugzilla – Bug 941398
YaST2 software managements crashes
Last modified: 2015-10-05 08:22:11 UTC
YaST2 Software management closes after one confirmed which packages to update with the error YaST got signal 11 at file /usr/share/YaST2/modules/PackagesUI.rb:303 /sbin/yast2: line 434: 12686 Segmentation fault (core dumped) $ybindir/y2base $module "$@" "$SELECTED_GUI" $Y2_GEOMETRY $Y2UI_ARGS
This is with the latest packages from Factory (updated this morning 12 August)
I'll try to reproduce. Meanwhile, can you please attach full yast logs? https://en.opensuse.org/openSUSE:Report_a_YaST_bug
Created attachment 643623 [details] YaST2 logfiles (created with save_y2logs)
Created attachment 643756 [details] Selection of file to be deleted When a packet is removed with yast, and there are dependencies from other packages yash breaks. Attached are one pictures in which you can see the steps to reproduce this bug.
Created attachment 643820 [details] crashlog 1. select to remove a package with deps. 2. conflict resolution dialog appears 3. click "ok- try again" 4. yast-sw crashes it crashes with qt gui, and works with ncurses. started to happen with recent tw snapshots
Can you, please, re-test with newer TW snapshot holding libyui-qt-pkg version 2.45.1 once it is available? Wed Aug 12 19:10:53 CEST 2015 - shundhammer@suse.de - Handle mixed multiversion packages (fate#318778) - Fixed libzypp deprecated warning - 2.45.1 libyui-qt-pkg was not building for some days exactly at the point of time you refer to and this butreport may be the result...
*** Bug 941731 has been marked as a duplicate of this bug. ***
*** Bug 941870 has been marked as a duplicate of this bug. ***
(In reply to Jiri Srain from comment #6) > Can you, please, re-test with newer TW snapshot holding libyui-qt-pkg > version 2.45.1 once it is available? If you want this EVER to be available in Tumbleweed, I'm afraid somebody has to submit it... 2.45.1 is not even available in the devel project: https://build.opensuse.org/package/show/devel:libraries:libyui/libyui-qt-pkg
I also see this bug in my openSUSE Tumbl. 64-bit system. I can not test 2.45.1, because there is no such RMP package version enywere (in list of versions in https://software.opensuse.org/package/libyui-qt-pkg; 2.45.0 is latest). The only place where I found 2.45.1, is GIT: https://github.com/libyui/libyui-qt-pkg/commit/8779a2d4129cd60b0c78ad47dde2ddedc3ac34c5
I just created RPM for 64 bit system: http://download.opensuse.org/repositories/home:/embar-:/branches:/devel:/libraries:/libyui/openSUSE_Tumbleweed/x86_64/libyui-qt-pkg6-2.45.1-8.1.x86_64.rpm and for 32 bit system: https://build.opensuse.org/package/binary/home:embar-:branches:devel:libraries:libyui/libyui-qt-pkg?arch=i586&filename=libyui-qt-pkg6-2.45.1-8.1.i586.rpm&repository=openSUSE_Tumbleweed Note: then https://build.opensuse.org/request/show/324933 will be accepted, these link will not work, but you will find RPMs via https://software.opensuse.org/package/libyui-qt-pkg6?search_term=libyui-qt-pkg6
This bug still exist in libyui-qt-pkg6-2.45.1-8.1.x86_64.rpm: # yast2 Run command: /sbin/yast2 sw_single & YaST got signal 11 at file /usr/share/YaST2/modules/PackagesUI.rb:303 /sbin/yast2: 434 eilutė: 29000 Segmentavimo klaida $ybindir/y2base $module "$@" "$SELECTED_GUI" $Y2_GEOMETRY $Y2UI_ARGS
Created attachment 644673 [details] backtrace of the crash/segfault Backtrace *with* latest libyui-qt-pkg (from git)
Line 0 is: #0 0x00007f22f2f88610 in zypp::ResolverProblem::description[abi:cxx11]() const (this=this@entry=0x0) at /usr/src/debug/libzypp-15.13.0/zypp/ResolverProblem.cc:8
(In reply to Hrvoje Senjan from comment #15) > Line 0 is: > #0 0x00007f22f2f88610 in zypp::ResolverProblem::description[abi:cxx11]() > const (this=this@entry=0x0) > at /usr/src/debug/libzypp-15.13.0/zypp/ResolverProblem.cc:8 Sorry; #0 0x00007f22f2f88610 in zypp::ResolverProblem::description[abi:cxx11]() const (this=this@entry=0x0) at /usr/src/debug/libzypp-15.13.0/zypp/ResolverProblem.cc:83
affected line is https://github.com/libyui/libyui-qt-pkg/blob/master/src/YQPkgConflictList.cc#L381 looks like zypp::ProblemSolution_Ptr -> problem() return zero pointer. No clue why. zypp maintainers can you check it?
*** Bug 942835 has been marked as a duplicate of this bug. ***
Created attachment 644804 [details] YaST2 logs with errors When I start Live Installer after "License" page YaST2 closed with Segmentation Fault error. But if I choose "English (US)" language instead "Russian", it works, but has error notices windows om red background. The same error when Software Manager prompts to solve collisions and dependences on notice window. When I shoose any variant YaST2 crashed with SegFault error: # yast2 Run command: /sbin/yast2 sw_single & YaST got signal 11 at file /usr/share/YaST2/modules/PackagesUI.rb:303 /sbin/yast2: line 434: 29652 Ошибка сегментирования $ybindir/y2base $module "$@" "$SELECTED_GUI" $Y2_GEOMETRY $Y2UI_ARGS OS details: # lsb_release -a LSB Version: core-2.0-noarch:core-3.2-noarch:core-4.0-noarch:core-2.0-x86_64:core-3.2-x86_64:core-4.0-x86_64:desktop-4.0-amd64:desktop-4.0-noarch:graphics-2.0-amd64:graphics-2.0-noarch:graphics-3.2-amd64:graphics-3.2-noarch:graphics-4.0-amd64:graphics-4.0-noarch Distributor ID: openSUSE project Description: openSUSE 20150813 (Tumbleweed) (x86_64) Release: 20150813 Codename: n/a # uname -a Linux steel 4.1.4-1-default #1 SMP Mon Aug 3 18:25:04 UTC 2015 (a37e14f) x86_64 x86_64 x86_64 GNU/Linux Tumbleweed OSS repo in using. Reproducible: Always Steps to Reproduce: 1. Start Yast Software Manager (/sbin/yast2 sw_single). 2. Trying to remove any important package. 3. In opened Solver Window select "Keep this package, do not remove". 4. Press "OK" Actual Results: Yast closing with error message in terminal: "YaST got signal 11 at file /usr/share/YaST2/modules/PackagesUI.rb:303 /sbin/yast2: line 434: 29652 Ошибка сегментирования $ybindir/y2base $module "$@" "$SELECTED_GUI" $Y2_GEOMETRY $Y2UI_ARGS" Expected Results: Solver should keep this package undeleted and continue software manager works. This bug present on several machines with the same distibutive. Present on any GUI. Without X-session (after init 3) yast2 live installer show error: "Undefined method 'split' for ["ru_RU"]:Array Caller: /usr/lib64/ruby/vendor_ruby/2.2.0/yast/builtins.rb:455:in 'splitstring"
*** Bug 941872 has been marked as a duplicate of this bug. ***
I can easily reproduce it on my machine with Tumbleweed, latest libzypp (from the Devel repo), latest libyui-qt-pkg (from Git): Try to remove "bash", select any solution from the conflict dialog, press "OK - try again" -> segfault.
Hm - in my case, it's not a segfault, but a SIGABRT due to a failed assertion: y2base: /usr/include/boost/smart_ptr/intrusive_ptr.hpp:174: T* boost::intrusive_ptr<T>::operator->() const [with T = zypp::ResolverProblem]: Zusicherung »px != 0« nicht erfüllt. YaST got signal 6 at file /usr/share/YaST2/modules/PackagesUI.rb:303 Anyway, we have some null pointers somewhere here. The question is why we get those null pointers. The libyui-qt-pkg code in that general area (conflict resolution) has not changed for a long time (eye candy changes in March 2014, last changes before that in June 2012), so it's more likely a problem inside libzypp.
The offending commit in libzypp is very likely this one: https://github.com/openSUSE/libzypp/commit/a2e46f1c816322c1c0860f04541dafdeeee5362e When I go back to the commit just before this one, the problem seems to be gone. Unfortunately, this is a quite large commit, so we'll have to investigate further.
Confirmed: When I build libzypp (and yast2-pkg-bindings and libyui-qt-pkg) with that commit, the problem reappears.
I suspect that with that refactoring in that commit some of those smart pointers in libzypp now behave differently: They now no longer point to their object directly, but to some interface class which in turn should point to the real underlying object. Will investigate in that general direction.
Found it: https://github.com/openSUSE/libzypp/commit/a2e46f1c816322c1c0860f04541dafdeeee5362e#diff-cfe97fa1cac32c085d36c42d3a898bd4R76 ResolverProblem_Ptr problem() const { return nullptr; } This will reliably crash every time here in libyui-qt-pkg in YQPkgConflictList.cc line 381: https://github.com/libyui/libyui-qt-pkg/blob/master/src/YQPkgConflictList.cc#L381 yuiMilestone() << "User selected resolution \""<< solution->description() << "\" for problem \"" << solution->problem()->description() <<"\"" << std::endl; Adding insult to injury, this is logging output that should make debugging easier - but it crashes before it can output anything. Removing both lines removes the problem() (pun intended). Now, why a non-virtual const function would ever return a null pointer is beyond me. This is asking for trouble. Michael, I think you owe me a beer. ;-)
libyui-ncurses-pkg is not affected: This function is not used there. The workaround for libyui-qt-pkg should prevent crashes for now: Pull request (merged): https://github.com/libyui/libyui-qt-pkg/pull/25 This will appear with libyui-qt-pkg-2.45.2 .
Pull request for fixing the problem in libzypp: https://github.com/openSUSE/libzypp/pull/50 This might take a while until Michael Andres will return from vacation. But this is only for the sake of completeness anyway; the crashes in the YaST Qt UI's package selector should already be gone with the fix for libyui-qt-pkg from comment#27. Please also notice that this might affect other packges as well that use libzypp. But if they use that function, they will have similar crashes anyway, so the maintainers will have to do something about it anyway. It's better to be honest and remove that function from the public API rather than bury the problem deep in a dozen layers of C++ templates (boost, libzypp).
But reporters, please have some patience until the fixed libyui-qt-pkg appears in the repos (Factory, Tumbleweed, SP1). This might take a few days. Closing as FIXED for now.
This is an autogenerated message for OBS integration: This bug (941398) was mentioned in https://build.opensuse.org/request/show/327305 Factory / libyui-qt-pkg
I have Run command: /sbin/yast2 repositories & terminate called after throwing an instance of 'YUIPluginException' what(): Couldn't load plug-in qt YaST got signal 6 at file /usr/share/YaST2/modules/Wizard.rb:782 /sbin/yast2: line 440: 26292 Aborted $ybindir/y2base $module "$@" "$SELECTED_GUI" $Y2_GEOMETRY $Y2UI_ARGS Run command: /sbin/yast2 sw_single & terminate called after throwing an instance of 'YUIPluginException' what(): Couldn't load plug-in qt YaST got signal 6 at file /usr/share/YaST2/modules/Wizard.rb:782 /sbin/yast2: line 440: 26228 Aborted $ybindir/y2base $module "$@" "$SELECTED_GUI" $Y2_GEOMETRY $Y2UI_ARGS after upgrading. libyui-qt6-2.46.18-3.6.x86_64 libyui7-3.2.1-1.1.x86_64 libyui6-3.2.0-1.1.x86_64 libyui-qt-pkg6-2.45.2-1.1.x86_64
Seleko, the above error is typical for version incompatibilities between libyui-qt-pkg and yast2-pkg-bindings. Please update yast2-pkg-bindings as well.
(In reply to Stefan Hundhammer from comment #32) > Seleko, the above error is typical for version incompatibilities between > libyui-qt-pkg and yast2-pkg-bindings. Please update yast2-pkg-bindings as > well. I dont see newer version of yast2-pkg-bindings in devel:/libraries:/libyui with installed Yast:HEAD yast2-pkg-bindings-3.1.28-1.2.x86_64 I've got same error.
(In reply to Stefan Hundhammer from comment #32) > Seleko, the above error is typical for version incompatibilities between > libyui-qt-pkg and yast2-pkg-bindings. Please update yast2-pkg-bindings as > well. that sounds like a yast package is not specific enough in its dependency specifications.
(In reply to Roman Neuhauser from comment #34) > that sounds like a yast package is not specific enough in its dependency > specifications. That should not be a problem, yast2-pkg-bindings requires the exact libzypp version which was used at the build time, e.g.: # rpm -q --requires yast2-pkg-bindings | grep zypp libzypp.so.1439()(64bit) libzypp.so.1439(ZYPP_plain)(64bit) The yast2-pkg-bindings and libzypp versions should be always kept in sync by the dependencies.
(In reply to Ladislav Slezak from comment #35) > (In reply to Roman Neuhauser from comment #34) > > that sounds like a yast package is not specific enough in its dependency > > specifications. > > That should not be a problem, yast2-pkg-bindings requires the exact libzypp > version which was used at the build time, e.g.: > > # rpm -q --requires yast2-pkg-bindings | grep zypp > libzypp.so.1439()(64bit) > libzypp.so.1439(ZYPP_plain)(64bit) > > The yast2-pkg-bindings and libzypp versions should be always kept in sync by > the dependencies. Sounds clear, but some obstacles. libzypp.so.1511()(64bit) libzypp.so.1511(ZYPP_plain)(64bit) but actually I see NO such version in suse repos. yast2-pkg-bindings-3.1.29-1.1.x86_64 yast2-pkg-bindings-3.1.28-1.1.x86_64 both the same result yast2-ycp-ui-bindings-3.1.9-1.1.x86_64
(In reply to seleko seleko from comment #36) > (In reply to Ladislav Slezak from comment #35) > > (In reply to Roman Neuhauser from comment #34) > > > that sounds like a yast package is not specific enough in its dependency > > > specifications. > > > > That should not be a problem, yast2-pkg-bindings requires the exact libzypp > > version which was used at the build time, e.g.: > > > > # rpm -q --requires yast2-pkg-bindings | grep zypp > > libzypp.so.1439()(64bit) > > libzypp.so.1439(ZYPP_plain)(64bit) > > > > The yast2-pkg-bindings and libzypp versions should be always kept in sync by > > the dependencies. > > Sounds clear, but some obstacles. > libzypp.so.1511()(64bit) > libzypp.so.1511(ZYPP_plain)(64bit) > > but actually I see NO such version in suse repos. > > yast2-pkg-bindings-3.1.29-1.1.x86_64 > yast2-pkg-bindings-3.1.28-1.1.x86_64 both the same result > > yast2-ycp-ui-bindings-3.1.9-1.1.x86_64 Finally I've got it working... ruby bindings.
(In reply to seleko seleko from comment #37) > Finally I've got it working... ruby bindings. ruby bindings what?
(In reply to Roman Neuhauser from comment #38) > (In reply to seleko seleko from comment #37) > > Finally I've got it working... ruby bindings. > > ruby bindings what? Was updated and problem finally disappeared.
(In reply to seleko seleko from comment #39) > (In reply to Roman Neuhauser from comment #38) > > (In reply to seleko seleko from comment #37) > > > Finally I've got it working... ruby bindings. > > > > ruby bindings what? > > Was updated and problem finally disappeared. IOW, it should've been updated as a dependency of other yast-related packages, which didn't happen... why?
(In reply to Roman Neuhauser from comment #40) > (In reply to seleko seleko from comment #39) > > (In reply to Roman Neuhauser from comment #38) > > > (In reply to seleko seleko from comment #37) > > > > Finally I've got it working... ruby bindings. > > > > > > ruby bindings what? > > > > Was updated and problem finally disappeared. > > IOW, it should've been updated as a dependency of other yast-related > packages, which didn't happen... why? I dont know why... Such dependencies I guess. Im just user :)
(In reply to seleko seleko from comment #41) > I dont know why... Such dependencies I guess. > Im just user :) of course, my question was directed at the yast team. :)
Problem still present for live-installer module: YaST got signal 6 at file /usr/share/YaST2/modules/Language.rb:942 /sbin/yast2: line 440: 11307 Аварийный останов $ybindir/y2base $module "$@" "$SELECTED_GUI" $Y2_GEOMETRY $Y2UI_ARGS Just start Live Installer, accept license and press "Next" button. Live Installer crashes.
Crash if select other language in Live-installer than English.
YaST2 Live Installer still crashes
(In reply to Alexander Karpov from comment #45) > YaST2 Live Installer still crashes That crash is obviously a completely different problem (different scenario, different code location, different crash). It has nothing to do with the original bug here that is now fixed. Reopening the fixed bug does not magically fix that other problem. Please file a new bug for that new problem and attach y2logs.
*** Bug 944654 has been marked as a duplicate of this bug. ***
*** Bug 944674 has been marked as a duplicate of this bug. ***
*** Bug 944868 has been marked as a duplicate of this bug. ***
*** Bug 945049 has been marked as a duplicate of this bug. ***
*** Bug 945308 has been marked as a duplicate of this bug. ***
still crashes in tumbleweed with same log as in comment 5: i | libyui-qt-graph6 | package | 2.44.3-1.5 | x86_64 | openSUSE-Factory-Oss name: libyui-qt-graph6 i | libyui-qt-graph6 | package | 2.44.3-1.5 | x86_64 | (System Packages) name: libyui-qt-graph6 i | libyui-qt-pkg6 | package | 2.45.0-1.5 | x86_64 | openSUSE-Factory-Oss name: libyui-qt-pkg6 i | libyui-qt-pkg6 | package | 2.45.0-1.5 | x86_64 | (System Packages) name: libyui-qt-pkg6 i | libyui-qt6 | package | 2.46.18-1.4 | x86_64 | openSUSE-Factory-Oss name: libyui-qt6 i | libyui-qt6 | package | 2.46.18-1.4 | x86_64 | (System Packages) name: libyui-qt6 i | libyui6 | package | 3.2.0-1.1 | x86_64 | openSUSE-Factory-Oss name: libyui6 i | libyui6 | package | 3.2.0-1.1 | x86_64 | (System Packages) name: libyui6
ah sorry, the one with fixes is still not updated. meh/
Did this fix hit the mirrors yet? Mirrors are showing 11 Sept. timestamps here. This looks like it may describe the installation crash from clicking OK in retry resolve dependencies window that I experienced 3 days ago, described in this mailing list thread: http://lists.opensuse.org/opensuse-factory/2015-09/msg00344.html I just tried again (twice) after seeing on mirrors libyui* packages were since rebuilt, and it crashed in same manner.
(In reply to Felix Miata from comment #56) > Did this fix hit the mirrors yet? No. The fix hasn't even been accepted to Factory yet: https://build.opensuse.org/request/show/327731 Also see: (In reply to Stefan Hundhammer from comment #27) > The workaround for libyui-qt-pkg should prevent crashes for now: > > Pull request (merged): > > https://github.com/libyui/libyui-qt-pkg/pull/25 > > This will appear with libyui-qt-pkg-2.45.2 . In particular the last sentence. Tumbleweed still has 2.45.0.
Can the workaround be applied in an installation environment, on vtty2 before accepting the license?
(In reply to Felix Miata from comment #58) > Can the workaround be applied in an installation environment, on vtty2 > before accepting the license? The workaround IS the updated libyui-qt-pkg-2.45.2 package. I tried to provide that package (and a driver update disk with it) via my OBS home project, but the most recent version also requires the latest libzypp which also isn't available. I fear you'll just have to wait a day or two more until those packages show up in the public factory/Tumbleweed repos.
No more crash trying to use installer that hit mirrors 21 Sept. :-)
*** Bug 946111 has been marked as a duplicate of this bug. ***
*** Bug 947293 has been marked as a duplicate of this bug. ***
When will the fixed package be available on Tumbleweed? The latest version I see there is 2.45.0.
Created attachment 649154 [details] Y2logs Fresh reinstall. Had solver issue on old install. I'm getting crashes *any* time it runs into something that needs the solver now as well. In my case, was trying to install multimedia codecs via One-Click Installer. Don't know for sure if this is *different*, but maybe more logs will help.
(In reply to Jay Anderson from comment #64) > Don't know for sure if this is *different*, Yes, it does look like the same issue. > but maybe more logs will help. No. Again, the issue is fixed in libyui-qt-pkg 2.45.2, but Tumbleweed still has 2.45.0. 2.45.4 (with the fix) will be in the next snapshot though, but I cannot tell when this will be published.
*** Bug 948541 has been marked as a duplicate of this bug. ***
> When will the fixed package be available on Tumbleweed? The latest version I see there is 2.45.0. https://build.opensuse.org/request/show/332686 On Sep 27 the fixed package was accepted to Factory, BUT it does not build for Tumbleweed because it thinks a recent libzypp is missing there: nothing provides libzypp-devel >= 15.14.0 OTOH I do see a 15.17.1 here, so I am confused: http://download.opensuse.org/tumbleweed/repo/oss/suse/x86_64/?P=*zypp*