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