[Bug 1865037] Re: make the service fail gracefully if unable to load modules
Christian Ehrhardt
1865037 at bugs.launchpad.net
Wed Apr 28 05:38:23 UTC 2021
Before - Tried to start and fail in a container
root at python-rtslib-fb-lp1865037-groovy:~# systemctl status target.service
● target.service - Restore LIO kernel target configuration
Loaded: loaded (/lib/systemd/system/target.service; disabled; vendor preset: enabled)
Active: inactive (dead)
root at python-rtslib-fb-lp1865037-groovy:~# systemctl status rtslib-fb-targetctl
● rtslib-fb-targetctl.service - LSB: Start LIO targets
Loaded: loaded (/etc/init.d/rtslib-fb-targetctl; generated)
Active: active (exited) since Wed 2021-04-28 05:28:43 UTC; 45s ago
Docs: man:systemd-sysv-generator(8)
Tasks: 0 (limit: 38268)
Memory: 0B
CGroup: /system.slice/rtslib-fb-targetctl.service
Apr 28 05:28:43 python-rtslib-fb-lp1865037-groovy systemd[1]: Starting LSB: Start LIO targets...
Apr 28 05:28:43 python-rtslib-fb-lp1865037-groovy rtslib-fb-targetctl[710]: modprobe: FATAL: Module configfs not found in directory /lib/modules/5.4.0-72-generic
Apr 28 05:28:43 python-rtslib-fb-lp1865037-groovy rtslib-fb-targetctl[704]: Could not load configfs module: exiting!
Apr 28 05:28:43 python-rtslib-fb-lp1865037-groovy systemd[1]: Started LSB: Start LIO targets.
After:
- proper service file (in case one wants to modify)
- properly dtecting
root at python-rtslib-fb-lp1865037-groovy:~# systemctl status target.service
● target.service - Restore LIO kernel target configuration
Loaded: loaded (/lib/systemd/system/target.service; disabled; vendor preset: enabled)
Active: inactive (dead)
root at python-rtslib-fb-lp1865037-groovy:~# systemctl status rtslib-fb-targetctl
● rtslib-fb-targetctl.service - Restore LIO kernel target configuration
Loaded: loaded (/lib/systemd/system/rtslib-fb-targetctl.service; enabled; vendor preset: enabled)
Active: inactive (dead)
Apr 28 05:33:29 python-rtslib-fb-lp1865037-groovy systemd[1]: Condition
check resulted in Restore LIO kernel target configuration being skipped.
=> verified
** Tags removed: verification-needed verification-needed-groovy
** Tags added: verification-done verification-done-groovy
--
You received this bug notification because you are a member of Ubuntu
OpenStack, which is subscribed to python-rtslib-fb in Ubuntu.
https://bugs.launchpad.net/bugs/1865037
Title:
make the service fail gracefully if unable to load modules
Status in rtslib-fb:
Unknown
Status in python-rtslib-fb package in Ubuntu:
Fix Released
Status in python-rtslib-fb source package in Groovy:
Fix Committed
Bug description:
[Impact]
========
The LIO interfaces is inherently tied to the kernel.
That makes the service fail on e.g. a container install:
See "systemctl status rtslib-fb-targetctl.service" and "journalctl -xe" for details.
root at f:~# systemctl status rtslib-fb-targetctl.service
● rtslib-fb-targetctl.service - Restore LIO kernel target configuration
Loaded: loaded (/lib/systemd/system/rtslib-fb-targetctl.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Thu 2020-02-27 14:10:35 UTC; 3s ago
Process: 23831 ExecStart=/usr/bin/mkdir -p /etc/rtslib-fb-target (code=exited, status=0/SUCCESS)
Process: 23832 ExecStart=/usr/bin/targetctl restore (code=exited, status=1/FAILURE)
Main PID: 23832 (code=exited, status=1/FAILURE)
Feb 27 14:10:35 f target[23832]: File "/usr/bin/targetctl", line 47, in restore
Feb 27 14:10:35 f target[23832]: errors = RTSRoot().restore_from_file(restore_file=from_file)
Feb 27 14:10:35 f target[23832]: File "/usr/lib/python3/dist-packages/rtslib_fb/root.py", line 85, in __init__
Feb 27 14:10:35 f target[23832]: modprobe('target_core_mod')
Feb 27 14:10:35 f target[23832]: File "/usr/lib/python3/dist-packages/rtslib_fb/utils.py", line 428, in modprobe
Feb 27 14:10:35 f target[23832]: raise RTSLibError(stderrdata)
Feb 27 14:10:35 f target[23832]: rtslib_fb.utils.RTSLibError: b"modprobe: ERROR: ../libkmod/libkmod.c:611 kmod_search_moddep() could not open moddep file '/lib/modules/5.3.0-40-generic/modu>
Feb 27 14:10:35 f systemd[1]: rtslib-fb-targetctl.service: Main process exited, code=exited, status=1/FAILURE
Feb 27 14:10:35 f systemd[1]: rtslib-fb-targetctl.service: Failed with result 'exit-code'.
Feb 27 14:10:35 f systemd[1]: Failed to start Restore LIO kernel target configuration.
It is ok that this doesn't work in a container, but it also breaks the
package installation status which should be avoided.
[Test Plan]
===========
To reproduce this bug, simply do the following:
$ lxc launch ubuntu-daily:groovy python-rtslib-fb-lp1865037-groovy
$ lxc shell python-rtslib-fb-lp1865037-groovy
# apt update && apt upgrade
# reboot
# apt install python3-rtslib-fb
...and this should fail to install.
To make sure that this bug is indeed fixed, install the patched
version of this package and that should install fine.
[Where problems could occur]
============================
This is a workaround since there doesn't seem to be a in-container use case. But in case there is one, then that'd fail to work, so we might better find a better solution for this in the long term.
The disccusion has been initiated upstream (cf: https://github.com
/open-iscsi/rtslib-fb/issues/157) and probably we'll wait for upstream
to state some in-container use case(s).
To manage notifications about this bug go to:
https://bugs.launchpad.net/rtslib-fb/+bug/1865037/+subscriptions
More information about the Ubuntu-openstack-bugs
mailing list