[Bug 1227580] New: yast2-services-manager fails to build with systemd v256
https://bugzilla.suse.com/show_bug.cgi?id=1227580 Bug ID: 1227580 Summary: yast2-services-manager fails to build with systemd v256 Classification: openSUSE Product: openSUSE Tumbleweed Version: Current Hardware: Other OS: Other Status: NEW Severity: Normal Priority: P5 - None Component: YaST2 Assignee: yast2-maintainers@suse.de Reporter: fbui@suse.com QA Contact: jsrain@suse.com Target Milestone: --- Found By: --- Blocker: --- Hi, It seems that there's a regression in yast2-services-manager with the latest version of systemd (v256 submitted via sr#1186155). For more details please check the following link: https://build.opensuse.org/package/show/openSUSE:Factory:Staging:K/yast2-ser... Could you have a look ? Thanks. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1227580 https://bugzilla.suse.com/show_bug.cgi?id=1227580#c1 Ana Guerrero <ana.guerrero@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |ana.guerrero@suse.com --- Comment #1 from Ana Guerrero <ana.guerrero@suse.com> --- Created attachment 875964 --> https://bugzilla.suse.com/attachment.cgi?id=875964&action=edit yast2_services_manager_log Log attached since systemd is likely to change Staging letter. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1227580 https://bugzilla.suse.com/show_bug.cgi?id=1227580#c2 --- Comment #2 from Stefan Hundhammer <shundhammer@suse.com> --- Summary of failed unit tests:
rspec ./test/dialogs/services_manager_test.rb:122 # Y2ServicesManager::Dialogs::ServicesManager#run when logs button should not be shown does not offer a button to show logs rspec ./test/dialogs/services_manager_test.rb:134 # Y2ServicesManager::Dialogs::ServicesManager#run when logs button should be shown offers a button to show logs rspec ./test/dialogs/services_manager_test.rb:146 # Y2ServicesManager::Dialogs::ServicesManager#run when start/stop button should be shown offers a button to start/stop services rspec ./test/dialogs/services_manager_test.rb:157 # Y2ServicesManager::Dialogs::ServicesManager#run when start/stop button should not be shown does not offer a button to start/stop services rspec ./test/dialogs/services_manager_test.rb:168 # Y2ServicesManager::Dialogs::ServicesManager#run when apply button should be shown offers a button to apply changes rspec ./test/dialogs/services_manager_test.rb:182 # Y2ServicesManager::Dialogs::ServicesManager#run when apply button should be shown and there are no changes yet disables the 'Apply' button rspec ./test/dialogs/services_manager_test.rb:195 # Y2ServicesManager::Dialogs::ServicesManager#run when apply button should not be shown does not offer a button to apply changes rspec ./test/dialogs/services_manager_test.rb:207 # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'Cancel' button shows a confirmation popup rspec ./test/dialogs/services_manager_test.rb:213 # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'Cancel' button closes the dialog rspec ./test/dialogs/services_manager_test.rb:219 # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'Cancel' button returns false rspec ./test/dialogs/services_manager_test.rb[1:1:8:1] # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'OK' button shows a confirmation popup with a summary of changes rspec ./test/dialogs/services_manager_test.rb[1:1:8:2] # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'OK' button tries to apply all changes rspec ./test/dialogs/services_manager_test.rb:296 # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'OK' button and all changes are correctly applied closes the dialog rspec ./test/dialogs/services_manager_test.rb:302 # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'OK' button and all changes are correctly applied returns true rspec ./test/dialogs/services_manager_test.rb[1:1:8:4:1] # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'OK' button and some changes cannot be applied asks whether to continue editing rspec ./test/dialogs/services_manager_test.rb[1:1:8:4:2:1] # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'OK' button and some changes cannot be applied and user wants to continue editing refreshes the services list rspec ./test/dialogs/services_manager_test.rb[1:1:8:4:3:1] # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'OK' button and some changes cannot be applied and user does not want to continue editing closes the dialog rspec ./test/dialogs/services_manager_test.rb[1:1:8:4:3:2] # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'OK' button and some changes cannot be applied and user does not want to continue editing returns false rspec ./test/dialogs/services_manager_test.rb[1:1:9:1] # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'Apply' button shows a confirmation popup with a summary of changes rspec ./test/dialogs/services_manager_test.rb[1:1:9:2] # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'Apply' button tries to apply all changes rspec ./test/dialogs/services_manager_test.rb:324 # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'Apply' button and all changes are correctly applied refreshes the services list rspec ./test/dialogs/services_manager_test.rb[1:1:9:4:1] # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'Apply' button and some changes cannot be applied asks whether to continue editing rspec ./test/dialogs/services_manager_test.rb[1:1:9:4:2:1] # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'Apply' button and some changes cannot be applied and user wants to continue editing refreshes the services list rspec ./test/dialogs/services_manager_test.rb[1:1:9:4:3:1] # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'Apply' button and some changes cannot be applied and user does not want to continue editing closes the dialog rspec ./test/dialogs/services_manager_test.rb[1:1:9:4:3:2] # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'Apply' button and some changes cannot be applied and user does not want to continue editing returns false rspec ./test/dialogs/services_manager_test.rb:345 # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'Show Log' button shows the systemd journal entries for the selected service rspec ./test/dialogs/services_manager_test.rb:358 # Y2ServicesManager::Dialogs::ServicesManager#run when user selects 'Help' button shows a popup with the help
rspec ./test/widgets/target_selector_test.rb:60 # Y2ServicesManager::Widgets::TargetSelector#widget returns a Yast::Term
rspec ./test/widgets/target_selector_test.rb:64 # Y2ServicesManager::Widgets::TargetSelector#widget offers all possible targets -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1227580 https://bugzilla.suse.com/show_bug.cgi?id=1227580#c3 --- Comment #3 from Stefan Hundhammer <shundhammer@suse.com> --- I see this 29 times in that build log:
NameError: uninitialized constant #<Class:Yast2::Systemd::Target>::SystemctlError -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1227580 https://bugzilla.suse.com/show_bug.cgi?id=1227580#c4 --- Comment #4 from Stefan Hundhammer <shundhammer@suse.com> --- I don't see a class definition for 'SystemctlError' (no matter which namespace) anywhere in the YaST code. I suspect that it was always missing, but that never became obvious because it's a very rare error. AFAICS it's raised only here: https://github.com/yast/yast-yast2/blob/master/library/systemd/src/lib/yast2...
def get_default # rubocop:disable Naming/AccessorMethodName result = Systemctl.execute("get-default") raise(SystemctlError, result) unless result.exit.zero?
find(result.stdout.strip) end
...which would mean that systemctl get-default doesn't work anymore on this systemd version. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1227580 https://bugzilla.suse.com/show_bug.cgi?id=1227580#c5 --- Comment #5 from Stefan Hundhammer <shundhammer@suse.com> --- Franck, if that is the case ('systemd get-default' not working on this systemd version), is that intentional? Is there a replacement command? Or how should this now be handled? -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1227580 https://bugzilla.suse.com/show_bug.cgi?id=1227580#c6 --- Comment #6 from Stefan Hundhammer <shundhammer@suse.com> --- It looks like this commit removed the error class, but did not add a new one in another class or module (which was probably intended): https://github.com/yast/yast-yast2/commit/e4ab10035ba30f739175009344872c4062... That was part of this PR https://github.com/yast/yast-yast2/pull/799 back in mid-2018, 6 years ago. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1227580 https://bugzilla.suse.com/show_bug.cgi?id=1227580#c7 --- Comment #7 from Stefan Hundhammer <shundhammer@suse.com> --- PR that fixes the missing error class: https://github.com/yast/yast-yast2/pull/1312 This will not fix the underlying problem: systemctl get-default failing. But it will show the original error message of the 'systemctl' command. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1227580 https://bugzilla.suse.com/show_bug.cgi?id=1227580#c8 --- Comment #8 from Franck Bui <fbui@suse.com> --- (In reply to Stefan Hundhammer from comment #5)
Franck, if that is the case ('systemd get-default' not working on this systemd version), is that intentional? Is there a replacement command? Or how should this now be handled?
AFAICS `systemctl get-default` is still available and still works as expected on my system running v256. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1227580 https://bugzilla.suse.com/show_bug.cgi?id=1227580#c9 --- Comment #9 from Stefan Hundhammer <shundhammer@suse.com> --- So let's wait what the next iteration brings; the PR is now merged. We should now get a clear error message why 'systemctl get-default' fails. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1227580 https://bugzilla.suse.com/show_bug.cgi?id=1227580#c10 --- Comment #10 from Stefan Hundhammer <shundhammer@suse.com> --- SR to OBS: https://build.opensuse.org/request/show/1186617 -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1227580 https://bugzilla.suse.com/show_bug.cgi?id=1227580#c11 --- Comment #11 from Stefan Hundhammer <shundhammer@suse.com> --- Franck, Ana, any news on this? Are we getting a more specific error message now that it doesn't crash anymore in the process of throwing the error? -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1227580 https://bugzilla.suse.com/show_bug.cgi?id=1227580#c13 Fabian Vogt <fvogt@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |fvogt@suse.com --- Comment #13 from Fabian Vogt <fvogt@suse.com> --- (In reply to Stefan Hundhammer from comment #11)
Franck, Ana, any news on this?
Are we getting a more specific error message now that it doesn't crash anymore in the process of throwing the error?
Yes: [ 10s] Systemctl command failed: #<OpenStruct exit=1, stderr="Failed to connect to bus: No such file or directory\n", stdout="", command=" LANG=C TERM=dumb COLUMNS=1024 /usr/bin/systemctl --plain --full --no-legend --no-pager --no-ask-password get-default"> i.e. new systemd get-default requires a running system? -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1227580 https://bugzilla.suse.com/show_bug.cgi?id=1227580#c14 --- Comment #14 from Franck Bui <fbui@suse.com> --- (In reply to Fabian Vogt from comment #13)
i.e. new systemd get-default requires a running system?
No it shouldn't. I also just verified that the command still works in a chroot. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1227580 https://bugzilla.suse.com/show_bug.cgi?id=1227580#c15 Stefan Hundhammer <shundhammer@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|yast2-maintainers@suse.de |fbui@suse.com --- Comment #15 from Stefan Hundhammer <shundhammer@suse.com> --- Franck has been working on this since last week. Reassigning. -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1227580 Franck Bui <fbui@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Assignee|fbui@suse.com |systemd-maintainers@suse.de -- You are receiving this mail because: You are on the CC list for the bug.
https://bugzilla.suse.com/show_bug.cgi?id=1227580 https://bugzilla.suse.com/show_bug.cgi?id=1227580#c19 Franck Bui <fbui@suse.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution|--- |FIXED --- Comment #19 from Franck Bui <fbui@suse.com> --- This should be fixed by now. Closing. -- You are receiving this mail because: You are on the CC list for the bug.
participants (1)
-
bugzilla_noreply@suse.com