Package: targetcli
Version: 3.0+git0.7e32595e-2
Severity: grave
Justification: renders package unusable
Dear Maintainer,
The upgrade from targetcli 2.1-1 removes all targets and makes targetcli
unusable.
1. Removing lio-utils disables/removes all targets from the kernel. This is a
serious problem on something like a storage server.
2. Once you can manage to run targetcli (see #XXXXXX), you are greeted with an
error: "This RTSRoot does not exist in configFS."
tarquin bootc # targetcli
This RTSRoot does not exist in configFS.
targetcli GIT_VERSION (rtslib GIT_VERSION)
Copyright (c) 2011-2014 by Datera, Inc.
All rights reserved.
3. Performing an 'ls' lists no available target modules and only the pscsi
backstore module:
/> ls
o- / .................................................................... [...]
o- backstores ......................................................... [...]
o- pscsi ............................................... [0 Storage Object]
/>
4. When you try to exit, targetcli tries to look in /var/target/policy and
explodes because that directory doesn't exist:
/> exit
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/configshell/shell.py", line 990, in
run_interactive
self._cli_loop()
File "/usr/lib/python2.7/dist-packages/configshell/shell.py", line 820, in
_cli_loop
self.run_cmdline(cmdline)
File "/usr/lib/python2.7/dist-packages/configshell/shell.py", line 934, in
run_cmdline
self._execute_command(path, command, pparams, kparams)
File "/usr/lib/python2.7/dist-packages/configshell/shell.py", line 909, in
_execute_command
result = target.execute_command(command, pparams, kparams)
File "/usr/lib/python2.7/dist-packages/targetcli/ui_node.py", line 103, in
execute_command
pparams, kparams)
File "/usr/lib/python2.7/dist-packages/configshell/node.py", line 1416, in
execute_command
result = method(*pparams, **kparams)
File "/usr/lib/python2.7/dist-packages/targetcli/ui_node.py", line 115, in
ui_command_exit
config = Config()
File "/usr/lib/python2.7/dist-packages/rtslib/config.py", line 133, in
__init__
self._load_policy()
File "/usr/lib/python2.7/dist-packages/rtslib/config.py", line 140, in
_load_policy
for path in os.listdir(self.policy_dir)
OSError: [Errno 2] No such file or directory: '/var/target/policy'
/>
5. If you create the directory you still can't exit because of the error
described in point 2:
/> exit
This RTSRoot does not exist in configFS.
/>
The only way to escape this seems to be to kill targetcli from another window.
6. 'service target stop' followed by 'service target start', then re-entering
targetcli allows all the various target types to become available again.
7. Trying to exit at this point (without making any changes) bombs out again:
/> exit
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/configshell/shell.py", line 990, in
run_interactive
self._cli_loop()
File "/usr/lib/python2.7/dist-packages/configshell/shell.py", line 820, in
_cli_loop
self.run_cmdline(cmdline)
File "/usr/lib/python2.7/dist-packages/configshell/shell.py", line 934, in
run_cmdline
self._execute_command(path, command, pparams, kparams)
File "/usr/lib/python2.7/dist-packages/configshell/shell.py", line 909, in
_execute_command
result = target.execute_command(command, pparams, kparams)
File "/usr/lib/python2.7/dist-packages/targetcli/ui_node.py", line 103, in
execute_command
pparams, kparams)
File "/usr/lib/python2.7/dist-packages/configshell/node.py", line 1416, in
execute_command
result = method(*pparams, **kparams)
File "/usr/lib/python2.7/dist-packages/targetcli/ui_node.py", line 119, in
ui_command_exit
config.load_live()
File "/usr/lib/python2.7/dist-packages/rtslib/config.py", line 562, in
load_live
source=source, allow_new_attrs=True)
File "/usr/lib/python2.7/dist-packages/rtslib/config.py", line 190, in
_load_parse_tree
token = self.validate_obj(token, cur)
File "/usr/lib/python2.7/dist-packages/rtslib/config.py", line 385, in
validate_obj
raise ConfigError("Unknown object type: %s" % obj_type)
ConfigError: Unknown object type: fabric
/>
I am now trying to get my targets running again, which I am having to do by
using the bits of targetcli that work and manual changes in
/sys/kernel/config/target. I can't 'savechanges' in targetcli either.
I am not impressed.
HTH,
Chris
-- System Information:
Debian Release: jessie/sid
APT prefers testing
APT policy: (990, 'testing'), (500, 'testing-updates'), (500, 'unstable'),
(1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386
Kernel: Linux 3.14-2-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages targetcli depends on:
ii python 2.7.8-1
ii python-configshell 1.5+git0.0827baa6-2
ii python-rtslib 3.0+git0.86e46bc6-2
targetcli recommends no packages.
targetcli suggests no packages.
-- no debconf information