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


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to