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@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.
Until a more fine grained detection is developed that could be as easy as adding:
ConditionVirtualization=!container
That would let the package install, but not start the service (knowing it would fail).
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. fb-targetctl. service fb-targetctl. service - Restore LIO kernel target configuration system/ rtslib- fb-targetctl. service; disabled; vendor preset: enabled) /usr/bin/ mkdir -p /etc/rtslib- fb-target (code=exited, status=0/SUCCESS) /usr/bin/ targetctl restore (code=exited, status=1/FAILURE)
root@f:~# systemctl status rtslib-
● rtslib-
Loaded: loaded (/lib/systemd/
Active: failed (Result: exit-code) since Thu 2020-02-27 14:10:35 UTC; 3s ago
Process: 23831 ExecStart=
Process: 23832 ExecStart=
Main PID: 23832 (code=exited, status=1/FAILURE)
Feb 27 14:10:35 f target[23832]: File "/usr/bin/ targetctl" , line 47, in restore ).restore_ from_file( restore_ file=from_ file) python3/ dist-packages/ rtslib_ fb/root. py", line 85, in __init__ 'target_ core_mod' ) python3/ dist-packages/ rtslib_ fb/utils. py", line 428, in modprobe stderrdata) 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> fb-targetctl. service: Main process exited, code=exited, status=1/FAILURE fb-targetctl. service: Failed with result 'exit-code'.
Feb 27 14:10:35 f target[23832]: errors = RTSRoot(
Feb 27 14:10:35 f target[23832]: File "/usr/lib/
Feb 27 14:10:35 f target[23832]: modprobe(
Feb 27 14:10:35 f target[23832]: File "/usr/lib/
Feb 27 14:10:35 f target[23832]: raise RTSLibError(
Feb 27 14:10:35 f target[23832]: rtslib_
Feb 27 14:10:35 f systemd[1]: rtslib-
Feb 27 14:10:35 f systemd[1]: rtslib-
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.
Until a more fine grained detection is developed that could be as easy as adding: ualization= !container
ConditionVirt
That would let the package install, but not start the service (knowing it would fail).