BIND 10 #3114: Too large number crashes BIND 10 and stops it from being restarted

BIND 10 Development do-not-reply at isc.org
Thu Aug 22 15:31:54 UTC 2013


#3114: Too large number crashes BIND 10 and stops it from being restarted
----------------------------------+---------------------------------------
            Reporter:  cas        |                         Type:  defect
              Status:  new        |                     Priority:  high
           Milestone:  New Tasks  |                    Component:  cmd-ctl
            Keywords:             |                 CVSS Scoring:
           Sensitive:  0          |              Defect Severity:  N/A
         Sub-Project:  Core       |  Feature Depending on Ticket:
Estimated Difficulty:  0          |          Add Hours to Ticket:  0
         Total Hours:  0          |                    Internal?:  0
----------------------------------+---------------------------------------
 A too large number in the configuration crashes BIND 10 1.1.0,
  takes down the whole system

 As the configuration is already committed to the config database, BIND 10
 refuses to start until the large number is removed from the
 /usr/local/var/bind10/b10-config.db by manually editing.

 As this can be done by mistake (it happen by mistake in our BIND 10 class
 today), this is a bug. cmd-ctl should be able to catch this and report a
 sensible error message without committing the value into the
 configuration.


 > config set Logging/loggers[5]/output_options[0]/maxsize
 55555555555555555555

 > config commit
 Traceback (most recent call last):
   File "/usr/local/libexec/bind10/b10-cfgmgr", line 131, in <module>
     sys.exit(main())
   File "/usr/local/libexec/bind10/b10-cfgmgr", line 119, in main
     cm.run()
   File "/usr/local/lib/python3.3/site-packages/isc/config/cfgmgr.py", line
 608, in run
     answer = self.handle_msg(msg);
   File "/usr/local/lib/python3.3/site-packages/isc/config/cfgmgr.py", line
 577, in handle_msg
     answer = self.__handle_set_config(arg)
   File "/usr/local/lib/python3.3/site-packages/isc/config/cfgmgr.py", line
 519, in __handle_set_config
     answer = self.__handle_set_config_all(cmd[0])
   File "/usr/local/lib/python3.3/site-packages/isc/config/cfgmgr.py", line
 502, in __handle_set_config_all
     self.check_logging_config(cmd);
   File "/usr/local/lib/python3.3/site-packages/isc/config/cfgmgr.py", line
 272, in check_logging_config
     self.log_config_data)
   File "/usr/local/lib/python3.3/site-packages/isc/config/ccsession.py",
 line 161, in default_logconfig_handler
     json.dumps(config_data.get_module_spec().get_full_spec()))
 TypeError: JSON format error: Number overflow: 55555555555555555555
 ----------------------------------------
 Exception happened during processing of request from ('127.0.0.1', 38754)
 Traceback (most recent call last):
   File "/usr/local/lib/python3.3/socketserver.py", line 610, in
 process_request_thread
 Exception in thread Thread-1:
 Traceback (most recent call last):
   File "/usr/local/lib/python3.3/threading.py", line 639, in
 _bootstrap_inner
     self.run()
   File "/usr/local/lib/python3.3/threading.py", line 596, in run
     self._target(*self._args, **self._kwargs)
   File "/usr/local/libexec/bind10/b10-cmdctl", line 391, in
 _handle_msg_from_msgq
     self._module_cc.check_command(False)
   File "/usr/local/lib/python3.3/site-packages/isc/config/ccsession.py",
 line 287, in check_command
     msg, env = self._session.group_recvmsg(nonblock)
   File "/usr/local/lib/python3.3/site-packages/isc/cc/session.py", line
 306, in group_recvmsg
     env, msg  = self.recvmsg(nonblock, seq)
   File "/usr/local/lib/python3.3/site-packages/isc/cc/session.py", line
 139, in recvmsg
     data = self._receive_full_buffer(nonblock)
   File "/usr/local/lib/python3.3/site-packages/isc/cc/session.py", line
 223, in _receive_full_buffer
     self._receive_len_data()
   File "/usr/local/lib/python3.3/site-packages/isc/cc/session.py", line
 183, in _receive_len_data
     new_data = self._receive_bytes(self._recv_len_size)
   File "/usr/local/lib/python3.3/site-packages/isc/cc/session.py", line
 171, in _receive_bytes
     raise ProtocolError("Read of 0 bytes: connection closed")
 isc.cc.session.ProtocolError: Read of 0 bytes: connection closed

     self.finish_request(request, client_address)
   File "/usr/local/lib/python3.3/socketserver.py", line 345, in
 finish_request
     self.RequestHandlerClass(request, client_address, self)
   File "/usr/local/libexec/bind10/b10-cmdctl", line 103, in __init__
     client_address, server)
   File "/usr/local/lib/python3.3/socketserver.py", line 666, in __init__
     self.handle()
   File "/usr/local/lib/python3.3/http/server.py", line 400, in handle
     self.handle_one_request()
   File "/usr/local/lib/python3.3/http/server.py", line 388, in
 handle_one_request
     method()
   File "/usr/local/libexec/bind10/b10-cmdctl", line 164, in do_POST
     rcode, reply = self._handle_post_request()
   File "/usr/local/libexec/bind10/b10-cmdctl", line 230, in
 _handle_post_request
     rcode, reply = self.server.send_command_to_module(mod, cmd, param)
   File "/usr/local/libexec/bind10/b10-cmdctl", line 632, in
 send_command_to_module
     return self.cmdctl.send_command_with_check(module_name, command_name,
 params)
   File "/usr/local/libexec/bind10/b10-cmdctl", line 435, in
 send_command_with_check
     return self.send_command(module_name, command_name, params)
   File "/usr/local/libexec/bind10/b10-cmdctl", line 473, in send_command
     answer, env = self._cc.group_recvmsg(False, seq)
   File "/usr/local/lib/python3.3/site-packages/isc/cc/session.py", line
 306, in group_recvmsg
     env, msg  = self.recvmsg(nonblock, seq)
   File "/usr/local/lib/python3.3/site-packages/isc/cc/session.py", line
 139, in recvmsg
     data = self._receive_full_buffer(nonblock)
   File "/usr/local/lib/python3.3/site-packages/isc/cc/session.py", line
 223, in _receive_full_buffer
     self._receive_len_data()
   File "/usr/local/lib/python3.3/site-packages/isc/cc/session.py", line
 183, in _receive_len_data
     new_data = self._receive_bytes(self._recv_len_size)
   File "/usr/local/lib/python3.3/site-packages/isc/cc/session.py", line
 171, in _receive_bytes
     raise ProtocolError("Read of 0 bytes: connection closed")
 isc.cc.session.ProtocolError: Read of 0 bytes: connection closed
 ----------------------------------------
 Error: ''

 Log-File:

 Aug 22 16:15:41 bind10 local0: FATAL [b10-auth.auth] AUTH_SERVER_FAILED
 server failed: Number overflow: 55555555555555555555
 Aug 22 16:15:41 bind10 local0: INFO  [b10-auth.auth] AUTH_SERVER_EXITING
 exiting
 Aug 22 16:15:41 bind10 local0: INFO  [b10-auth.auth]
 AUTH_DATASRC_CLIENTS_BUILDER_STOPPED data source builder thread stopped
 Aug 22 16:15:41 bind10 local0: INFO  [b10-init.init]
 BIND10_LOST_SOCKET_CONSUMER consumer 18 of sockets disconnected,
 considering all its sockets closed
 Aug 22 16:15:41 bind10 local0: INFO  [b10-init.init] BIND10_PROCESS_ENDED
 process 1869 of b10-auth ended with status 256
 Aug 22 16:15:41 bind10 local0: ERROR [b10-init.init]
 BIND10_COMPONENT_FAILED component b10-auth (pid 1869) failed: process
 exited normally with exit status 256
 Aug 22 16:15:41 bind10 local0: INFO  [b10-init.init]
 BIND10_COMPONENT_START component b10-auth is starting
 Aug 22 16:15:41 bind10 local0: INFO  [b10-init.init]
 BIND10_STARTING_PROCESS starting process b10-auth
 Aug 22 16:15:41 bind10 local0: INFO  [b10-init.init] BIND10_PROCESS_ENDED
 process 1334 of cfgmgr ended with status 256
 Aug 22 16:15:41 bind10 local0: ERROR [b10-init.init]
 BIND10_COMPONENT_FAILED component cfgmgr (pid 1334) failed: process exited
 normally with exit status 256
 Aug 22 16:15:41 bind10 local0: FATAL [b10-init.init]
 BIND10_COMPONENT_UNSATISFIED component cfgmgr is required to run and
 failed
 Aug 22 16:15:41 bind10 local0: INFO  [b10-init.init] BIND10_SHUTDOWN
 stopping the server
 Aug 22 16:15:41 bind10 local0: INFO  [b10-init.init]
 BIND10_CONFIGURATOR_STOP bind10 component configurator is shutting down
 Aug 22 16:15:41 bind10 local0: INFO  [b10-init.init] BIND10_COMPONENT_STOP
 component b10-xfrout is being stopped
 Aug 22 16:15:41 bind10 local0: INFO  [b10-init.init] BIND10_STOP_PROCESS
 asking b10-xfrout to shut down
 Aug 22 16:15:41 bind10 local0: ERROR [b10-init.init]
 BIND10_CONFIGURATOR_PLAN_INTERRUPTED configurator plan interrupted, only 0
 of 8 done
 Aug 22 16:15:42 bind10 local0: INFO  [b10-init.init] BIND10_SEND_SIGTERM
 sending SIGTERM to Socket creator (PID 1331)
 Aug 22 16:15:42 bind10 local0: WARN  [b10-init.init]
 BIND10_SOCKCREATOR_KILL killing the socket creator
 Aug 22 16:15:42 bind10 local0: INFO  [b10-init.init] BIND10_SEND_SIGTERM
 sending SIGTERM to msgq (PID 1332)
 Aug 22 16:15:42 bind10 local0: INFO  [b10-init.init] BIND10_SEND_SIGTERM
 sending SIGTERM to b10-xfrout (PID 1941)
 Aug 22 16:15:42 bind10 local0: INFO  [b10-init.init] BIND10_SEND_SIGTERM
 sending SIGTERM to b10-cmdctl (PID 1336)
 Aug 22 16:15:42 bind10 local0: INFO  [b10-init.init] BIND10_SEND_SIGTERM
 sending SIGTERM to b10-xfrin (PID 2028)
 Aug 22 16:15:42 bind10 local0: INFO  [b10-init.init] BIND10_SEND_SIGTERM
 sending SIGTERM to b10-auth (PID 2138)
 Aug 22 16:15:42 bind10 local0: INFO  [b10-init.init] BIND10_SEND_SIGTERM
 sending SIGTERM to b10-zonemgr (PID 2027)
 Aug 22 16:15:42 bind10 local0: INFO  [b10-init.init] BIND10_SEND_SIGTERM
 sending SIGTERM to b10-stats (PID 1340)
 Aug 22 16:15:43 bind10 local0: INFO  [b10-init.init] BIND10_PROCESS_ENDED
 process 1331 of Socket creator ended with status 9
 Aug 22 16:15:43 bind10 local0: INFO  [b10-init.init] BIND10_PROCESS_ENDED
 process 1332 of msgq ended with status 0
 Aug 22 16:15:43 bind10 local0: INFO  [b10-init.init] BIND10_PROCESS_ENDED
 process 1336 of b10-cmdctl ended with status 0
 Aug 22 16:15:43 bind10 local0: INFO  [b10-init.init] BIND10_PROCESS_ENDED
 process 1340 of b10-stats ended with status 15
 Aug 22 16:15:43 bind10 local0: INFO  [b10-init.init] BIND10_PROCESS_ENDED
 process 1941 of b10-xfrout ended with status 0
 Aug 22 16:15:43 bind10 local0: INFO  [b10-init.init] BIND10_PROCESS_ENDED
 process 2027 of b10-zonemgr ended with status 0
 Aug 22 16:15:43 bind10 local0: INFO  [b10-init.init] BIND10_PROCESS_ENDED
 process 2028 of b10-xfrin ended with status 0
 Aug 22 16:15:43 bind10 local0: INFO  [b10-init.init] BIND10_PROCESS_ENDED
 process 2138 of b10-auth ended with status 15
 Aug 22 16:15:43 bind10 local0: INFO  [b10-init.init]
 BIND10_SHUTDOWN_COMPLETE all processes ended, shutdown complete

-- 
Ticket URL: <http://bind10.isc.org/ticket/3114>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development


More information about the bind10-tickets mailing list