Hi, we have a problem with our contrail setup: it looks like contrail doesn't work off the rabbitmq queues:
root@juju-machine-3-lxc-23:~# rabbitmqctl list_queues -p contrail Listing queues ... device_manager.juju-machine-3-lxc-64 0 device_manager.juju-machine-43-lxc-24 910 schema_transformer.juju-machine-3-lxc-64 0 schema_transformer.juju-machine-43-lxc-24 910 svc_mon.juju-machine-3-lxc-64 0 svc_mon.juju-machine-43-lxc-24 152 svc_mon.juju-machine-5-lxc-63 166 vnc_config.juju-machine-3-lxc-64-8082 0 vnc_config.juju-machine-43-lxc-24-8082 0 vnc_config.juju-machine-5-lxc-63-8082 0 ...done. In the contrail-svc-monitor-stdout.log I see python errors: ============== START =============== <type 'exceptions.ZeroDivisionError'> Python 2.7.6: /usr/bin/python Mon Jul 18 18:21:55 2016 A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred. /usr/bin/contrail-svc-monitor in <module>() 6 7 if __name__ == '__main__': 8 sys.exit( 9 load_entry_point('svc-monitor==0.1dev', 'console_scripts', 'contrail-svc-monitor')() 10 ) load_entry_point = <function load_entry_point> /usr/lib/python2.7/dist-packages/svc_monitor/svc_monitor.py in server_main() 885 def server_main(): 886 cgitb.enable(format='text') 887 main() 888 # end server_main 889 global main = <function main> /usr/lib/python2.7/dist-packages/svc_monitor/svc_monitor.py in main(args_str='--conf_file /etc/contrail/contrail-svc-monitor.c...nf_file /etc/contrail/contrail-keystone-auth.conf') 879 client_pfx+"svc-monitor", args.zk_server_ip) 880 _zookeeper_client.master_election(zk_path_pfx+"/svc-monitor", os.getpid(), 881 run_svc_monitor, args) 882 # end main 883 global run_svc_monitor = <function run_svc_monitor> args = Namespace(admin_password='xxx', admin_t...r_ip='192.168.100.144:2181', zk_server_port='2181') /usr/lib/python2.7/dist-packages/cfgm_common/zkclient.py in master_election(self=<cfgm_common.zkclient.ZookeeperClient object>, path='/svc-monitor', identifier=14745, func=<function run_svc_monitor>, *args=(Namespace(admin_password='xxx', admin_t...r_ip='192.168.100.144:2181', zk_server_port='2181'),), **kwargs={}) 333 def master_election(self, path, identifier, func, *args, **kwargs): 334 self._election = self._zk_client.Election(path, identifier) 335 self._election.run(func, *args, **kwargs) 336 # end master_election 337 self = <cfgm_common.zkclient.ZookeeperClient object> self._election = <kazoo.recipe.election.Election object> self._election.run = <bound method Election.run of <kazoo.recipe.election.Election object>> func = <function run_svc_monitor> args = (Namespace(admin_password='xxx', admin_t...r_ip='192.168.100.144:2181', zk_server_port='2181'),) kwargs = {} /usr/lib/python2.7/dist-packages/kazoo/recipe/election.py in run(self=<kazoo.recipe.election.Election object>, func=<function run_svc_monitor>, *args=(Namespace(admin_password='xxx', admin_t...r_ip='192.168.100.144:2181', zk_server_port='2181'),), **kwargs={}) 51 try: 52 with self.lock: 53 func(*args, **kwargs) 54 55 except CancelledError: func = <function run_svc_monitor> args = (Namespace(admin_password='xxx', admin_t...r_ip='192.168.100.144:2181', zk_server_port='2181'),) kwargs = {} /usr/lib/python2.7/dist-packages/svc_monitor/svc_monitor.py in run_svc_monitor(args=Namespace(admin_password='xxx', admin_t...r_ip='192.168.100.144:2181', zk_server_port='2181')) 836 837 def run_svc_monitor(args=None): 838 monitor = SvcMonitor(args) 839 840 monitor._zookeeper_client = _zookeeper_client monitor undefined global SvcMonitor = <class 'svc_monitor.svc_monitor.SvcMonitor'> args = Namespace(admin_password='xxx', admin_t...r_ip='192.168.100.144:2181', zk_server_port='2181') /usr/lib/python2.7/dist-packages/svc_monitor/svc_monitor.py in __init__(self=<svc_monitor.svc_monitor.SvcMonitor object>, args=Namespace(admin_password='xxx', admin_t...r_ip='192.168.100.144:2181', zk_server_port='2181')) 86 87 # init cassandra 88 self._cassandra = ServiceMonitorDB(self._args, self.logger) 89 DBBaseSM.init(self, self.logger, self._cassandra) 90 self = <svc_monitor.svc_monitor.SvcMonitor object> self._cassandra undefined global ServiceMonitorDB = <class 'svc_monitor.db.ServiceMonitorDB'> self._args = Namespace(admin_password='xxx', admin_t...r_ip='192.168.100.144:2181', zk_server_port='2181') self.logger = <svc_monitor.logger.ServiceMonitorLogger object> /usr/lib/python2.7/dist-packages/svc_monitor/db.py in __init__(self=<svc_monitor.db.ServiceMonitorDB object>, args=Namespace(admin_password='xxx', admin_t...r_ip='192.168.100.144:2181', zk_server_port='2181'), logger=<svc_monitor.logger.ServiceMonitorLogger object>) 41 self._db_logger.log, 42 reset_config=args.reset_config, 43 credential=cred) 44 45 self._svc_si_cf = self._cf_dict[self._SVC_SI_CF] credential undefined cred = None /usr/lib/python2.7/dist-packages/cfgm_common/vnc_cassandra.py in __init__(self=<svc_monitor.db.ServiceMonitorDB object>, server_list=[], db_prefix='', rw_keyspaces={'svc_monitor_keyspace': [('service_instance_table', None), ('pool_table', None)]}, ro_keyspaces=None, logger=<bound method ServiceMonitorLogger.log of <svc_monitor.logger.ServiceMonitorLogger object>>, generate_url=None, reset_config=False, credential=None) 85 (self._UUID_KEYSPACE_NAME not in self._rw_keyspaces)): 86 self._ro_keyspaces.update(self._UUID_KEYSPACE) 87 self._cassandra_init(server_list) 88 self._cache_uuid_to_fq_name = {} 89 self._obj_uuid_cf = self._cf_dict[self._OBJ_UUID_CF_NAME] self = <svc_monitor.db.ServiceMonitorDB object> self._cassandra_init = <bound method ServiceMonitorDB._cassandra_init of <svc_monitor.db.ServiceMonitorDB object>> server_list = [] /usr/lib/python2.7/dist-packages/cfgm_common/vnc_cassandra.py in _cassandra_init(self=<svc_monitor.db.ServiceMonitorDB object>, server_list=[]) 298 Mutator.send = self._handle_exceptions(Mutator.send) 299 300 self.sys_mgr = self._cassandra_system_manager() 301 self.existing_keyspaces = self.sys_mgr.list_keyspaces() 302 for ks,cf_list in self._rw_keyspaces.items(): self = <svc_monitor.db.ServiceMonitorDB object> self.sys_mgr undefined self._cassandra_system_manager = <bound method ServiceMonitorDB._cassandra_system...ager of <svc_monitor.db.ServiceMonitorDB object>> /usr/lib/python2.7/dist-packages/cfgm_common/vnc_cassandra.py in _cassandra_system_manager(self=<svc_monitor.db.ServiceMonitorDB object>) 324 # TODO do only for 325 # thrift.transport.TTransport.TTransportException 326 server_idx = (server_idx + 1) % self._num_dbnodes 327 time.sleep(3) 328 return sys_mgr server_idx = 0 self = <svc_monitor.db.ServiceMonitorDB object> self._num_dbnodes = 0 <type 'exceptions.ZeroDivisionError'>: integer division or modulo by zero __class__ = <type 'exceptions.ZeroDivisionError'> __delattr__ = <method-wrapper '__delattr__' of exceptions.ZeroDivisionError object> __dict__ = {} __doc__ = 'Second argument to a division or modulo operation was zero.' __format__ = <built-in method __format__ of exceptions.ZeroDivisionError object> __getattribute__ = <method-wrapper '__getattribute__' of exceptions.ZeroDivisionError object> __getitem__ = <method-wrapper '__getitem__' of exceptions.ZeroDivisionError object> __getslice__ = <method-wrapper '__getslice__' of exceptions.ZeroDivisionError object> __hash__ = <method-wrapper '__hash__' of exceptions.ZeroDivisionError object> __init__ = <method-wrapper '__init__' of exceptions.ZeroDivisionError object> __new__ = <built-in method __new__ of type object> __reduce__ = <built-in method __reduce__ of exceptions.ZeroDivisionError object> __reduce_ex__ = <built-in method __reduce_ex__ of exceptions.ZeroDivisionError object> __repr__ = <method-wrapper '__repr__' of exceptions.ZeroDivisionError object> __setattr__ = <method-wrapper '__setattr__' of exceptions.ZeroDivisionError object> __setstate__ = <built-in method __setstate__ of exceptions.ZeroDivisionError object> __sizeof__ = <built-in method __sizeof__ of exceptions.ZeroDivisionError object> __str__ = <method-wrapper '__str__' of exceptions.ZeroDivisionError object> __subclasshook__ = <built-in method __subclasshook__ of type object> __unicode__ = <built-in method __unicode__ of exceptions.ZeroDivisionError object> args = ('integer division or modulo by zero',) message = 'integer division or modulo by zero' The above is a description of an error in a Python program. Here is the original traceback: Traceback (most recent call last): File "/usr/bin/contrail-svc-monitor", line 9, in <module> load_entry_point('svc-monitor==0.1dev', 'console_scripts', 'contrail-svc-monitor')() File "/usr/lib/python2.7/dist-packages/svc_monitor/svc_monitor.py", line 887, in server_main main() File "/usr/lib/python2.7/dist-packages/svc_monitor/svc_monitor.py", line 881, in main run_svc_monitor, args) File "/usr/lib/python2.7/dist-packages/cfgm_common/zkclient.py", line 335, in master_election self._election.run(func, *args, **kwargs) File "/usr/lib/python2.7/dist-packages/kazoo/recipe/election.py", line 53, in run func(*args, **kwargs) File "/usr/lib/python2.7/dist-packages/svc_monitor/svc_monitor.py", line 838, in run_svc_monitor monitor = SvcMonitor(args) File "/usr/lib/python2.7/dist-packages/svc_monitor/svc_monitor.py", line 88, in __init__ self._cassandra = ServiceMonitorDB(self._args, self.logger) File "/usr/lib/python2.7/dist-packages/svc_monitor/db.py", line 43, in __init__ credential=cred) File "/usr/lib/python2.7/dist-packages/cfgm_common/vnc_cassandra.py", line 87, in __init__ self._cassandra_init(server_list) File "/usr/lib/python2.7/dist-packages/cfgm_common/vnc_cassandra.py", line 300, in _cassandra_init self.sys_mgr = self._cassandra_system_manager() File "/usr/lib/python2.7/dist-packages/cfgm_common/vnc_cassandra.py", line 326, in _cassandra_system_manager server_idx = (server_idx + 1) % self._num_dbnodes ZeroDivisionError: integer division or modulo by zero =============== END ================ Has anyone an idea what the problem could be? We use contrail 3.0.2 deployed with the canonical juju charms from Robert Ayres. Best regards Kim
_______________________________________________ Users mailing list Users@lists.opencontrail.org http://lists.opencontrail.org/mailman/listinfo/users_lists.opencontrail.org