|
Bugzilla – Full Text Bug Listing |
| Summary: | YaST iSCSI Client Crashes with "Services can be only System Service" | ||
|---|---|---|---|
| Product: | [openSUSE] openSUSE Distribution | Reporter: | Per Jessen <per> |
| Component: | YaST2 | Assignee: | E-mail List <yast2-maintainers> |
| Status: | RESOLVED DUPLICATE | QA Contact: | Jiri Srain <jsrain> |
| Severity: | Normal | ||
| Priority: | P5 - None | CC: | per |
| Version: | Leap 15.5 | ||
| Target Milestone: | --- | ||
| Hardware: | Other | ||
| OS: | Other | ||
| Whiteboard: | |||
| Found By: | --- | Services Priority: | |
| Business Priority: | Blocker: | --- | |
| Marketing QA Status: | --- | IT Deployment: | --- |
| Attachments: |
y2logs as saved by save_y2logs
gzipped y2log from "anton". |
||
The rpm-qa file from that y2logs tarball says it's using yast2-iscsi-client-4.5.7-150500.1.1 https://github.com/yast/yast-iscsi-client/blob/SLE-15-SP5/package/yast2-iscsi-client.changes#L14-L20 which is not the latest version that I checked in just today. https://github.com/yast/yast-iscsi-client/pull/125 which was the fix for bug #1214273 which failed with 'Services can be only System Service'. I am not sure if you can access that other bug since it was reported by a SLES business customer. Per, if you feel like doing some experimenting, you could grab this file https://github.com/yast/yast-iscsi-client/blob/SLE-15-SP5/src/modules/IscsiClient.rb and copy it to your /usr/share/YaST2/modules directory and try again. It should work then. Alternatively, you can also wait until this gets shipped as an official Leap 15.5 patch which might take a few days. But you could be an Open Source hero and proactively test it. The penguins are relying on your help! ;-) (In reply to Stefan Hundhammer from comment #2) > Per, if you feel like doing some experimenting, you could grab this file > > https://github.com/yast/yast-iscsi-client/blob/SLE-15-SP5/src/modules/ > IscsiClient.rb > > and copy it to your /usr/share/YaST2/modules directory and try again. It > should work then. Hi Stefan I tried that, but I got another error: Caller: /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:186:in `import_pure' Details: undefined method `message' for nil:NilClass Looking at your pull request, I see: "No iscsiuio systemd service running, so it couldn't be detected. The service was not running because the corresponding iscsiuio driver package was not installed, " In my case, the system was installed without a Broadcom offload interface, so iscsiuio was not auto-selected. Yesterday I then installed a Broadcom interface, but of course iscsiuio was not "automagically" installed :-) I expect it'll all work fine when I: a) install iscsiuio b) revert to the previous IscsiClient.rb Yes, detecting that it's needed and installing the iscsiuio package in that case is what that pull request was all about. Could you attach the latest /var/log/YaST/y2log that contains that latest backtrace, please? (No need for the full save_y2logs etc. in this case since we already have that part). Created attachment 869652 [details]
gzipped y2log from "anton".
The last call of this module in that y2log from comment #6: > 2023-09-21 09:13:06 <1> anton(18321) [Ruby] bin/y2start(<main>):22 > y2base called with ["iscsi-client", "ncurses", "-name", "YaST2", > "-icon", "yast"] > ... > ... > 2023-09-21 09:13:06 <1> anton(18321) [Ruby] > clients/iscsi-client.rb(main):44 > IscsiClient module started > . > 2023-09-21 09:13:06 <3> anton(18321) [Y2Ruby] > binary/Y2RubyUtils.cc(y2_require):26 > cannot require yast:undefined local variable or method `null' > for main:Object at /usr/share/YaST2/modules/IscsiClient.rb:1:in > `<top (required)>' > . > 2023-09-21 09:13:06 <3> anton(18321) [Ruby] > yast/wfm.rb(handle_exception):271 Client > /usr/share/YaST2/clients/iscsi-client.rb > failed with 'undefined method `message' for > nil:NilClass' (NoMethodError). > . > Backtrace: > . > /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:186:in `import_pure' > /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:186:in `import' > /usr/share/YaST2/include/iscsi-client/complex.rb:40:in `initialize_iscsi_client_complex' > /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:159:in `include' > /usr/share/YaST2/include/iscsi-client/wizards.rb:40:in `initialize_iscsi_client_wizards' > /usr/lib64/ruby/vendor_ruby/2.5.0/yast/yast.rb:159:in `include' > /usr/share/YaST2/clients/iscsi-client.rb:51:in `main' > /usr/share/YaST2/clients/iscsi-client.rb:104:in `<top (required)>' > /usr/lib64/ruby/vendor_ruby/2.5.0/yast/wfm.rb:345:in `eval' > /usr/lib64/ruby/vendor_ruby/2.5.0/yast/wfm.rb:345:in `run_client' > /usr/lib64/ruby/vendor_ruby/2.5.0/yast/wfm.rb:206:in `call_builtin' > /usr/lib64/ruby/vendor_ruby/2.5.0/yast/wfm.rb:206:in `call_builtin_wrapper' > /usr/lib64/ruby/vendor_ruby/2.5.0/yast/wfm.rb:195:in `CallFunction' > /usr/lib/YaST2/bin/y2start:68:in `<main>' That backtrace had me stunned for a while. Until I tried exactly what I asked you to do in comment #2: I right-clicked on that hyperlink and saved it with "Save linked content as...". And promptly I got the same backtrace; because that actually saves a HTML file with lots of meta tags and hyperlinks and CSS references and whatnot, not valid Ruby code. Duh. ;-) But there is a "download raw file" button on that page directly above the actual code. That should work much better. And BTW in the meantime I did more testing on my machine despite not having any iSCSI targets. I made sure not to have package 'iscsiuio' installed and hacked up the code a bit to always execute that ... if IscsiClientLib.iscsiuio_relevant? (it's in the code twice, once for the packages and once for the service) ...and it worked as expected, first prompting me to install the 'iscsiuio' package, installing it and then checking for the 'iscsiuio' service. For your immediate needs, please do what you already suggested in comment #3: Install the 'iscsiuio' package and restore the IscsiClient.rb file. (In reply to Stefan Hundhammer from comment #10) > For your immediate needs, please do what you already suggested in comment > #3: Install the 'iscsiuio' package and restore the IscsiClient.rb file. Hi Stefan yeah, that is what I have done so far. Don't worry, this is not an urgent problem, it is a new server I am preparing. I am perfectly happy with the "manual" solution. However - may not be relevant to this report: I had the bnx2i interface configured with a static address - 10.42.8.70/21. Yast complained about not finding "ifconfig", and it still does. I removed the static address, same problem. (obviously). 2023-09-21 18:54:14 <1> anton(21674) [Ruby] modules/IscsiClientLib.rb(ip_addr):1786 GetOffloadItems cmd:LC_ALL=POSIX ifconfig eth4 2023-09-21 18:54:14 <3> anton(21674) [bash] ShellCommand.cc(shellcommand):78 sh: ifconfig: command not found 2023-09-21 18:54:14 <1> anton(21674) [Ruby] modules/IscsiClientLib.rb(ip_addr):1788 GetOffloadItems out:$["exit":127, "stderr":"sh: ifconfig: command not found\n", "stdout":"" I see it is available in "net-tools-deprecated" but ... (In reply to Per Jessen from comment #11) > 2023-09-21 18:54:14 <1> anton(21674) [Ruby] > modules/IscsiClientLib.rb(ip_addr):1786 GetOffloadItems cmd:LC_ALL=POSIX > ifconfig eth4 I had to smile when I saw the source code: cmd = "LC_ALL=POSIX ifconfig #{dev_name.shellescape}" # FIXME: ifconfig is deprecated Is it better if I open a separate ticket on that? Yes, please let's keep that separate. Duplicate of bug #1214273 *** This bug has been marked as a duplicate of bug 1214273 *** |
Created attachment 869627 [details] y2logs as saved by save_y2logs Trying to configure an iSCSI initiator, I get Internal error. Please report a bug report with logs. Run save_y2logs to get complete logs. Caller: /usr/share/YaST2/lib/yast2/compound_service.rb:43:in `initialize' Details: Services can be only System Service