BIND 10 #1203: bindctl crash when setting a list item (under another list item) without using a index number (was: bindctl crash when setting a list item that inside of another uncommitted list)

BIND 10 Development do-not-reply at isc.org
Tue Aug 30 14:29:00 UTC 2011


#1203: bindctl crash when setting a list item (under another list item) without
using a index number
----------------------------------------+----------------------------------
                   Reporter:  jreed     |                 Owner:
                       Type:  defect    |                Status:  new
                   Priority:  major     |             Milestone:  New Tasks
                  Component:  bind-ctl  |            Resolution:
                   Keywords:            |             Sensitive:  0
            Defect Severity:  Medium    |           Sub-Project:  Core
Feature Depending on Ticket:            |  Estimated Difficulty:  0
        Add Hours to Ticket:  0         |           Total Hours:  0
                  Internal?:  0         |
----------------------------------------+----------------------------------
Description changed by jreed:

Old description:

> The following happened by not commit'ing the addition of base {{{
> Logging/Loggers[0] }}} first. (It was just added.)
>
> So a list under a list. Note I forgot to add [0] for output_options[0]
> here also.
>
> {{{
>
> > config set Logging/loggers[0]/output_options flush
> Error: flush is not a list
> > config add Logging/loggers[0]/output_options
> > config show Logging/loggers[0]/output_options
> Logging/loggers[0]/output_options[0]/destination        "console"
> string (default)
> Logging/loggers[0]/output_options[0]/output     "stdout"        string
> (default)
> Logging/loggers[0]/output_options[0]/flush      false   boolean (default)
> Logging/loggers[0]/output_options[0]/maxsize    0       integer (default)
> Logging/loggers[0]/output_options[0]/maxver     0       integer (default)
> > config set Logging/loggers[0]/output_options/flush true
> Traceback (most recent call last):
>   File "/usr/pkg/lib/python3.1/cmd.py", line 213, in onecmd
>     func = getattr(self, 'do_' + cmd)
> AttributeError: 'BindCmdInterpreter' object has no attribute 'do_config'
>
> During handling of the above exception, another exception occurred:
>
> Traceback (most recent call last):
>   File "work/isc/bind10-install/bin/bindctl", line 149, in <module>
>     tool.run()
>   File "/home/reed/work/isc/bind10-install/lib/python3.1/site-
> packages/bindctl/bindcmd.py", line 128, in run
>     self.cmdloop()
>   File "/usr/pkg/lib/python3.1/cmd.py", line 139, in cmdloop
>     stop = self.onecmd(line)
>   File "/home/reed/work/isc/bind10-install/lib/python3.1/site-
> packages/bindctl/bindcmd.py", line 452, in onecmd
>     Cmd.onecmd(self, line)
>   File "/usr/pkg/lib/python3.1/cmd.py", line 215, in onecmd
>     return self.default(line)
>   File "/home/reed/work/isc/bind10-install/lib/python3.1/site-
> packages/bindctl/bindcmd.py", line 418, in default
>     self._parse_cmd(line)
>   File "/home/reed/work/isc/bind10-install/lib/python3.1/site-
> packages/bindctl/bindcmd.py", line 556, in _parse_cmd
>     self._handle_cmd(cmd)
>   File "/home/reed/work/isc/bind10-install/lib/python3.1/site-
> packages/bindctl/bindcmd.py", line 396, in _handle_cmd
>     self.apply_config_cmd(cmd)
>   File "/home/reed/work/isc/bind10-install/lib/python3.1/site-
> packages/bindctl/bindcmd.py", line 680, in apply_config_cmd
>     self.config_data.set_value(identifier, parsed_value)
>   File "/home/reed/work/isc/bind10-install/lib/python3.1/site-
> packages/isc/config/config_data.py", line 671, in set_value
>     isc.cc.data.set(self._local_changes, identifier, value)
>   File "/home/reed/work/isc/bind10-install/lib/python3.1/site-
> packages/isc/cc/data.py", line 214, in set
>     cur_el[id] = value
> TypeError: list indices must be integers, not str
>
> }}}

New description:

 I can reproduce with:
 {{{
 config set Logging/loggers[0]/output_options/flush true
 }}}
 (assumimg the Logging/loggers[0] was already added.

 Note I forgot to add [0] for output_options[0] here.

 {{{

 > config set Logging/loggers[0]/output_options flush
 Error: flush is not a list
 > config add Logging/loggers[0]/output_options
 > config show Logging/loggers[0]/output_options
 Logging/loggers[0]/output_options[0]/destination        "console"
 string (default)
 Logging/loggers[0]/output_options[0]/output     "stdout"        string
 (default)
 Logging/loggers[0]/output_options[0]/flush      false   boolean (default)
 Logging/loggers[0]/output_options[0]/maxsize    0       integer (default)
 Logging/loggers[0]/output_options[0]/maxver     0       integer (default)
 > config set Logging/loggers[0]/output_options/flush true
 Traceback (most recent call last):
   File "/usr/pkg/lib/python3.1/cmd.py", line 213, in onecmd
     func = getattr(self, 'do_' + cmd)
 AttributeError: 'BindCmdInterpreter' object has no attribute 'do_config'

 During handling of the above exception, another exception occurred:

 Traceback (most recent call last):
   File "work/isc/bind10-install/bin/bindctl", line 149, in <module>
     tool.run()
   File "/home/reed/work/isc/bind10-install/lib/python3.1/site-
 packages/bindctl/bindcmd.py", line 128, in run
     self.cmdloop()
   File "/usr/pkg/lib/python3.1/cmd.py", line 139, in cmdloop
     stop = self.onecmd(line)
   File "/home/reed/work/isc/bind10-install/lib/python3.1/site-
 packages/bindctl/bindcmd.py", line 452, in onecmd
     Cmd.onecmd(self, line)
   File "/usr/pkg/lib/python3.1/cmd.py", line 215, in onecmd
     return self.default(line)
   File "/home/reed/work/isc/bind10-install/lib/python3.1/site-
 packages/bindctl/bindcmd.py", line 418, in default
     self._parse_cmd(line)
   File "/home/reed/work/isc/bind10-install/lib/python3.1/site-
 packages/bindctl/bindcmd.py", line 556, in _parse_cmd
     self._handle_cmd(cmd)
   File "/home/reed/work/isc/bind10-install/lib/python3.1/site-
 packages/bindctl/bindcmd.py", line 396, in _handle_cmd
     self.apply_config_cmd(cmd)
   File "/home/reed/work/isc/bind10-install/lib/python3.1/site-
 packages/bindctl/bindcmd.py", line 680, in apply_config_cmd
     self.config_data.set_value(identifier, parsed_value)
   File "/home/reed/work/isc/bind10-install/lib/python3.1/site-
 packages/isc/config/config_data.py", line 671, in set_value
     isc.cc.data.set(self._local_changes, identifier, value)
   File "/home/reed/work/isc/bind10-install/lib/python3.1/site-
 packages/isc/cc/data.py", line 214, in set
     cur_el[id] = value
 TypeError: list indices must be integers, not str

 }}}

--

-- 
Ticket URL: <http://bind10.isc.org/ticket/1203#comment:1>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list