BIND 10 #588: bindctl traceback on shutdown

BIND 10 Development do-not-reply at isc.org
Wed Mar 9 14:33:03 UTC 2011


#588: bindctl traceback on shutdown
-------------------------------------+-------------------------------------
                 Reporter:  jreed    |                Owner:  zzchen_pku
                     Type:  defect   |               Status:  reviewing
                 Priority:  minor    |            Milestone:  A-Team-
                Component:  bind-    |  Sprint-20110309
  ctl                                |           Resolution:
                 Keywords:           |            Sensitive:  0
Estimated Number of Hours:  0.0      |  Add Hours to Ticket:  0
                Billable?:  1        |          Total Hours:  0
                Internal?:  0        |
-------------------------------------+-------------------------------------
Changes (by vorner):

 * owner:  vorner => zzchen_pku


Comment:

 Hello

 Replying to [comment:6 zzchen_pku]:
 > > Shouldn't this have a changelog entry?
 > I think it should have one, please find below:
 > {{{
 > 193.  [bug]     jerry
 >   src/bin/bindctl: bindctl shouldn't show traceback on shutdown.
 >   (Trac #588, git TDB)
 > }}}

 That's true, but strictly speaking, it was true even before this change
 ;-). May I propose „bindctl doesn't show traceback on shutdown“?

 > > It may be misleading to think that it just happily terminated. We
 should know when submitting of the command failed because there was noone
 to submit to (either by a traceback or some error message).
 > Updated, interactive and non-interactive mode will show different log
 message.

 We may have misunderstood each other here little bit.

 My concern wasn't about the difference between interactive and
 noninteractive, but about the difference with „just couldn't say good bye
 on shutdown“ vs. „couldn't send a command user typed“. So, what I mean is
 it should do something like this:

 If I shutdown and exit, it shoud be OK:
 {{{
 > Boss shutdown
 # Now the bind10 shuts down
 > ^D #I type ctrl+D to send an EOF ‒ I want it to shutdown
 # It should just happily terminate, possibly with ani kind of warm goodbye
 message like „Exit from bindctl“ or whatever
 }}}

 But if I (or someone else) shuts down and then send a command, it should
 complain:
 {{{
 > Boss shutdown
 # Now it terminates
 > Boss shutdown
 Error: Help, help, call the ops and cops and everybody and... someone
 killed our beloved cmdctl!!!
 }}}

 I believe this should be the same regardless of interactivity.

 Is it clearer what I mean?

 Anyway, you maybe removed something that should stay there? I got another
 backtrace on exit once (not always, so it might be some kind of race
 condition):
 {{{
 ["login success "] login as root
 > Boss shutdown
 # Here was ^D
 > Traceback (most recent call last):
   File "./bin/bindctl", line 133, in <module>
     tool.run()
   File "/home/vorner/testing/bind10/lib64/python3.1/site-
 packages/bindctl/bindcmd.py", line 122, in run
     self.cmdloop()
   File "/usr/lib64/python3.1/cmd.py", line 138, in cmdloop
     line = self.precmd(line)
   File "/home/vorner/testing/bind10/lib64/python3.1/site-
 packages/bindctl/bindcmd.py", line 278, in precmd
     self._update_all_modules_info()
   File "/home/vorner/testing/bind10/lib64/python3.1/site-
 packages/bindctl/bindcmd.py", line 272, in _update_all_modules_info
     self.config_data.update_specs_and_config()
   File "/home/vorner/testing/bind10/lib64/python3.1/site-
 packages/isc/config/ccsession.py", line 365, in update_specs_and_config
     self.request_specifications();
   File "/home/vorner/testing/bind10/lib64/python3.1/site-
 packages/isc/config/ccsession.py", line 360, in request_specifications
     specs = self._conn.send_GET('/module_spec')
   File "/home/vorner/testing/bind10/lib64/python3.1/site-
 packages/bindctl/bindcmd.py", line 239, in send_GET
     status, reply_msg = self._send_message(url, body)
   File "/home/vorner/testing/bind10/lib64/python3.1/site-
 packages/bindctl/bindcmd.py", line 231, in _send_message
     self.conn.request('GET', url, body, headers)
   File "/usr/lib64/python3.1/http/client.py", line 949, in request
     self._send_request(method, url, body, headers)
   File "/usr/lib64/python3.1/http/client.py", line 977, in _send_request
     self.putrequest(method, url, **skips)
   File "/usr/lib64/python3.1/http/client.py", line 832, in putrequest
     raise CannotSendRequest(self.__state)
 http.client.CannotSendRequest: Request-sent
 }}}

 Thanks

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


More information about the bind10-tickets mailing list