can't enable ml2

Bug #1263637 reported by li,chen
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
neutron
Invalid
Undecided
Unassigned

Bug Description

Hi list,
I'm working under CentOS 6.4 + Havana:
openstack-neutron.noarch 2013.2.1-1.el6 @openstack-havana
openstack-neutron-linuxbridge.noarch 2013.2.1-1.el6 @openstack-havana
openstack-neutron-ml2.noarch 2013.2.1-1.el6 @openstack-havana
openstack-neutron-openvswitch.noarch 2013.2.1-1.el6 @openstack-havana
python-neutron.noarch 2013.2.1-1.el6 @openstack-havana
python-neutronclient.noarch 2.3.1-1.el6 @openstack-havana

Everything works when I was working under core_plugin = neutron.plugins.openvswitch.ovs_neutron_plugin.OVSNeutronPluginV2.

While after I set core_plugin = neutron.plugins.ml2.plugin.Ml2Plugin,
I can't start neutron-server.

The log in /var/log/neutron/server.log is :

2013-12-23 08:35:00.660 37948 INFO neutron.common.config [-] Logging enabled!
2013-12-23 08:35:00.661 37948 ERROR neutron.common.legacy [-] Skipping unknown group key: firewall_driver
2013-12-23 08:35:00.664 37948 INFO neutron.common.config [-] Config paste file: /etc/neutron/api-paste.ini
2013-12-23 08:35:00.693 37948 INFO neutron.manager [-] Loading Plugin: neutron.plugins.ml2.plugin.Ml2Plugin
2013-12-23 08:35:00.735 37948 INFO neutron.plugins.ml2.managers [-] Configured type driver names: ['local', 'flat', 'vlan', 'gre', 'vxlan']
2013-12-23 08:35:00.750 37948 INFO neutron.plugins.ml2.drivers.type_flat [-] Allowable flat physical_network names: []
2013-12-23 08:35:00.752 37948 INFO neutron.plugins.ml2.drivers.type_vlan [-] Network VLAN ranges: {}
2013-12-23 08:35:00.752 37948 INFO neutron.plugins.ml2.drivers.type_local [-] ML2 LocalTypeDriver initialization complete
2013-12-23 08:35:00.758 37948 INFO neutron.plugins.ml2.managers [-] Loaded type driver names: ['flat', 'vlan', 'local', 'gre', 'vxlan']
2013-12-23 08:35:00.758 37948 INFO neutron.plugins.ml2.managers [-] Registered types: ['flat', 'vlan', 'local', 'gre', 'vxlan']
2013-12-23 08:35:00.758 37948 INFO neutron.plugins.ml2.managers [-] Tenant network_types: ['local', 'flat', 'vlan', 'gre', 'vxlan']
2013-12-23 08:35:00.758 37948 INFO neutron.plugins.ml2.managers [-] Configured mechanism driver names: ['openvswitch', 'linuxbridge']
2013-12-23 08:35:00.759 37948 ERROR neutron.service [-] Unrecoverable error: please check log for details.
2013-12-23 08:35:00.759 37948 TRACE neutron.service Traceback (most recent call last):
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/neutron/service.py", line 99, in serve_wsgi
2013-12-23 08:35:00.759 37948 TRACE neutron.service service.start()
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/neutron/service.py", line 68, in start
2013-12-23 08:35:00.759 37948 TRACE neutron.service self.wsgi_app = _run_wsgi(self.app_name)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/neutron/service.py", line 112, in _run_wsgi
2013-12-23 08:35:00.759 37948 TRACE neutron.service app = config.load_paste_app(app_name)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/neutron/common/config.py", line 144, in load_paste_app
2013-12-23 08:35:00.759 37948 TRACE neutron.service app = deploy.loadapp("config:%s" % config_path, name=app_name)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 247, in loadapp
2013-12-23 08:35:00.759 37948 TRACE neutron.service return loadobj(APP, uri, name=name, **kw)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 272, in loadobj
2013-12-23 08:35:00.759 37948 TRACE neutron.service return context.create()
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 710, in create
2013-12-23 08:35:00.759 37948 TRACE neutron.service return self.object_type.invoke(self)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 144, in invoke
2013-12-23 08:35:00.759 37948 TRACE neutron.service **context.local_conf)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/util.py", line 59, in fix_call
2013-12-23 08:35:00.759 37948 TRACE neutron.service reraise(*exc_info)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/compat.py", line 22, in reraise
2013-12-23 08:35:00.759 37948 TRACE neutron.service exec('raise t, e, tb', dict(t=t, e=e, tb=tb))
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/util.py", line 56, in fix_call
2013-12-23 08:35:00.759 37948 TRACE neutron.service val = callable(*args, **kw)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/paste/urlmap.py", line 25, in urlmap_factory
2013-12-23 08:35:00.759 37948 TRACE neutron.service app = loader.get_app(app_name, global_conf=global_conf)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 350, in get_app
2013-12-23 08:35:00.759 37948 TRACE neutron.service name=name, global_conf=global_conf).create()
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 710, in create
2013-12-23 08:35:00.759 37948 TRACE neutron.service return self.object_type.invoke(self)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 144, in invoke
2013-12-23 08:35:00.759 37948 TRACE neutron.service **context.local_conf)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/util.py", line 59, in fix_call
2013-12-23 08:35:00.759 37948 TRACE neutron.service reraise(*exc_info)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/compat.py", line 22, in reraise
2013-12-23 08:35:00.759 37948 TRACE neutron.service exec('raise t, e, tb', dict(t=t, e=e, tb=tb))
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/util.py", line 56, in fix_call
2013-12-23 08:35:00.759 37948 TRACE neutron.service val = callable(*args, **kw)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/neutron/auth.py", line 59, in pipeline_factory
2013-12-23 08:35:00.759 37948 TRACE neutron.service app = loader.get_app(pipeline[-1])
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 350, in get_app
2013-12-23 08:35:00.759 37948 TRACE neutron.service name=name, global_conf=global_conf).create()
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 710, in create
2013-12-23 08:35:00.759 37948 TRACE neutron.service return self.object_type.invoke(self)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 146, in invoke
2013-12-23 08:35:00.759 37948 TRACE neutron.service return fix_call(context.object, context.global_conf, **context.local_conf)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/util.py", line 59, in fix_call
2013-12-23 08:35:00.759 37948 TRACE neutron.service reraise(*exc_info)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/compat.py", line 22, in reraise
2013-12-23 08:35:00.759 37948 TRACE neutron.service exec('raise t, e, tb', dict(t=t, e=e, tb=tb))
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/util.py", line 56, in fix_call
2013-12-23 08:35:00.759 37948 TRACE neutron.service val = callable(*args, **kw)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/neutron/api/v2/router.py", line 72, in factory
2013-12-23 08:35:00.759 37948 TRACE neutron.service return cls(**local_config)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/neutron/api/v2/router.py", line 76, in __init__
2013-12-23 08:35:00.759 37948 TRACE neutron.service plugin = manager.NeutronManager.get_plugin()
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/neutron/manager.py", line 206, in get_plugin
2013-12-23 08:35:00.759 37948 TRACE neutron.service return cls.get_instance().plugin
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/neutron/manager.py", line 201, in get_instance
2013-12-23 08:35:00.759 37948 TRACE neutron.service cls._create_instance()
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/neutron/openstack/common/lockutils.py", line 247, in inner
2013-12-23 08:35:00.759 37948 TRACE neutron.service retval = f(*args, **kwargs)
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/neutron/manager.py", line 195, in _create_instance
2013-12-23 08:35:00.759 37948 TRACE neutron.service cls._instance = cls()
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/neutron/manager.py", line 120, in __init__
2013-12-23 08:35:00.759 37948 TRACE neutron.service self.plugin = plugin_klass()
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/neutron/plugins/ml2/plugin.py", line 102, in __init__
2013-12-23 08:35:00.759 37948 TRACE neutron.service self.mechanism_manager = managers.MechanismManager()
2013-12-23 08:35:00.759 37948 TRACE neutron.service File "/usr/lib/python2.6/site-packages/neutron/plugins/ml2/managers.py", line 121, in __init__
2013-12-23 08:35:00.759 37948 TRACE neutron.service name_order=True)
2013-12-23 08:35:00.759 37948 TRACE neutron.service TypeError: __init__() got an unexpected keyword argument 'name_order'
2013-12-23 08:35:00.759 37948 TRACE neutron.service
2013-12-23 08:35:00.761 37948 CRITICAL neutron [-] __init__() got an unexpected keyword argument 'name_order'
2013-12-23 08:35:00.761 37948 TRACE neutron Traceback (most recent call last):
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/bin/neutron-server", line 10, in <module>
2013-12-23 08:35:00.761 37948 TRACE neutron sys.exit(main())
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/neutron/server/__init__.py", line 43, in main
2013-12-23 08:35:00.761 37948 TRACE neutron neutron_service = service.serve_wsgi(service.NeutronApiService)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/neutron/service.py", line 99, in serve_wsgi
2013-12-23 08:35:00.761 37948 TRACE neutron service.start()
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/neutron/service.py", line 68, in start
2013-12-23 08:35:00.761 37948 TRACE neutron self.wsgi_app = _run_wsgi(self.app_name)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/neutron/service.py", line 112, in _run_wsgi
2013-12-23 08:35:00.761 37948 TRACE neutron app = config.load_paste_app(app_name)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/neutron/common/config.py", line 144, in load_paste_app
2013-12-23 08:35:00.761 37948 TRACE neutron app = deploy.loadapp("config:%s" % config_path, name=app_name)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 247, in loadapp
2013-12-23 08:35:00.761 37948 TRACE neutron return loadobj(APP, uri, name=name, **kw)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 272, in loadobj
2013-12-23 08:35:00.761 37948 TRACE neutron return context.create()
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 710, in create
2013-12-23 08:35:00.761 37948 TRACE neutron return self.object_type.invoke(self)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 144, in invoke
2013-12-23 08:35:00.761 37948 TRACE neutron **context.local_conf)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/util.py", line 59, in fix_call
2013-12-23 08:35:00.761 37948 TRACE neutron reraise(*exc_info)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/compat.py", line 22, in reraise
2013-12-23 08:35:00.761 37948 TRACE neutron exec('raise t, e, tb', dict(t=t, e=e, tb=tb))
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/util.py", line 56, in fix_call
2013-12-23 08:35:00.761 37948 TRACE neutron val = callable(*args, **kw)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/paste/urlmap.py", line 25, in urlmap_factory
2013-12-23 08:35:00.761 37948 TRACE neutron app = loader.get_app(app_name, global_conf=global_conf)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 350, in get_app
2013-12-23 08:35:00.761 37948 TRACE neutron name=name, global_conf=global_conf).create()
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 710, in create
2013-12-23 08:35:00.761 37948 TRACE neutron return self.object_type.invoke(self)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 144, in invoke
2013-12-23 08:35:00.761 37948 TRACE neutron **context.local_conf)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/util.py", line 59, in fix_call
2013-12-23 08:35:00.761 37948 TRACE neutron reraise(*exc_info)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/compat.py", line 22, in reraise
2013-12-23 08:35:00.761 37948 TRACE neutron exec('raise t, e, tb', dict(t=t, e=e, tb=tb))
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/util.py", line 56, in fix_call
2013-12-23 08:35:00.761 37948 TRACE neutron val = callable(*args, **kw)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/neutron/auth.py", line 59, in pipeline_factory
2013-12-23 08:35:00.761 37948 TRACE neutron app = loader.get_app(pipeline[-1])
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 350, in get_app
2013-12-23 08:35:00.761 37948 TRACE neutron name=name, global_conf=global_conf).create()
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 710, in create
2013-12-23 08:35:00.761 37948 TRACE neutron return self.object_type.invoke(self)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/loadwsgi.py", line 146, in invoke
2013-12-23 08:35:00.761 37948 TRACE neutron return fix_call(context.object, context.global_conf, **context.local_conf)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/util.py", line 59, in fix_call
2013-12-23 08:35:00.761 37948 TRACE neutron reraise(*exc_info)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/compat.py", line 22, in reraise
2013-12-23 08:35:00.761 37948 TRACE neutron exec('raise t, e, tb', dict(t=t, e=e, tb=tb))
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/PasteDeploy-1.5.0-py2.6.egg/paste/deploy/util.py", line 56, in fix_call
2013-12-23 08:35:00.761 37948 TRACE neutron val = callable(*args, **kw)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/neutron/api/v2/router.py", line 72, in factory
2013-12-23 08:35:00.761 37948 TRACE neutron return cls(**local_config)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/neutron/api/v2/router.py", line 76, in __init__
2013-12-23 08:35:00.761 37948 TRACE neutron plugin = manager.NeutronManager.get_plugin()
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/neutron/manager.py", line 206, in get_plugin
2013-12-23 08:35:00.761 37948 TRACE neutron return cls.get_instance().plugin
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/neutron/manager.py", line 201, in get_instance
2013-12-23 08:35:00.761 37948 TRACE neutron cls._create_instance()
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/neutron/openstack/common/lockutils.py", line 247, in inner
2013-12-23 08:35:00.761 37948 TRACE neutron retval = f(*args, **kwargs)
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/neutron/manager.py", line 195, in _create_instance
2013-12-23 08:35:00.761 37948 TRACE neutron cls._instance = cls()
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/neutron/manager.py", line 120, in __init__
2013-12-23 08:35:00.761 37948 TRACE neutron self.plugin = plugin_klass()
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/neutron/plugins/ml2/plugin.py", line 102, in __init__
2013-12-23 08:35:00.761 37948 TRACE neutron self.mechanism_manager = managers.MechanismManager()
2013-12-23 08:35:00.761 37948 TRACE neutron File "/usr/lib/python2.6/site-packages/neutron/plugins/ml2/managers.py", line 121, in __init__
2013-12-23 08:35:00.761 37948 TRACE neutron name_order=True)
2013-12-23 08:35:00.761 37948 TRACE neutron TypeError: __init__() got an unexpected keyword argument 'name_order'
2013-12-23 08:35:00.761 37948 TRACE neutron
~

Anyone know why this happen ???

Thanks.
-chen

Revision history for this message
Aaron Rosen (arosen) wrote :

What stevedore version are you using? It should be: stevedore>=0.12 .

Revision history for this message
li,chen (chen-li) wrote :

Yes, looks like stevedore version is the issue.

Can I ask a little more about what is stevedore used for ??

Thanks.
-chen

Changed in neutron:
status: New → Invalid
Revision history for this message
Rich Bowen (rbowen) wrote :

There's more information on Stevedore here: http://doughellmann.com/2013/11/stevedore-0-13.html

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.