Can't start Neutron service when max VNI value is defined in ml2_conf.ini file
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
| neutron |
Medium
|
Unassigned |
Bug Description
The VNI value is 24bits, i.e. <1 – 16777215>
When I defined the max value in the ml2_conf.ini file:
[ml2_type_vxlan]
vni_ranges = 1001:16777215
Neutron service fails to start.
2015-02-28 17:11:33.793 CRITICAL neutron [-] MemoryError
2015-02-28 17:11:33.793 TRACE neutron Traceback (most recent call last):
2015-02-28 17:11:33.793 TRACE neutron File "/usr/local/
2015-02-28 17:11:33.793 TRACE neutron load_entry_
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron neutron_api = service.
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron LOG.exception(
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron six.reraise(
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron service.start()
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron self.wsgi_app = _run_wsgi(
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron app = config.
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron app = deploy.
2015-02-28 17:11:33.793 TRACE neutron File "/usr/local/
2015-02-28 17:11:33.793 TRACE neutron return loadobj(APP, uri, name=name, **kw)
2015-02-28 17:11:33.793 TRACE neutron File "/usr/local/
2015-02-28 17:11:33.793 TRACE neutron return context.create()
2015-02-28 17:11:33.793 TRACE neutron File "/usr/local/
2015-02-28 17:11:33.793 TRACE neutron return self.object_
2015-02-28 17:11:33.793 TRACE neutron File "/usr/local/
2015-02-28 17:11:33.793 TRACE neutron **context.
2015-02-28 17:11:33.793 TRACE neutron File "/usr/local/
2015-02-28 17:11:33.793 TRACE neutron val = callable(*args, **kw)
2015-02-28 17:11:33.793 TRACE neutron File "/usr/local/
2015-02-28 17:11:33.793 TRACE neutron app = loader.
2015-02-28 17:11:33.793 TRACE neutron File "/usr/local/
2015-02-28 17:11:33.793 TRACE neutron name=name, global_
2015-02-28 17:11:33.793 TRACE neutron File "/usr/local/
2015-02-28 17:11:33.793 TRACE neutron return self.object_
2015-02-28 17:11:33.793 TRACE neutron File "/usr/local/
2015-02-28 17:11:33.793 TRACE neutron **context.
2015-02-28 17:11:33.793 TRACE neutron File "/usr/local/
2015-02-28 17:11:33.793 TRACE neutron val = callable(*args, **kw)
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron app = loader.
2015-02-28 17:11:33.793 TRACE neutron File "/usr/local/
2015-02-28 17:11:33.793 TRACE neutron name=name, global_
2015-02-28 17:11:33.793 TRACE neutron File "/usr/local/
2015-02-28 17:11:33.793 TRACE neutron return self.object_
2015-02-28 17:11:33.793 TRACE neutron File "/usr/local/
2015-02-28 17:11:33.793 TRACE neutron return fix_call(
2015-02-28 17:11:33.793 TRACE neutron File "/usr/local/
2015-02-28 17:11:33.793 TRACE neutron val = callable(*args, **kw)
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron return cls(**local_config)
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron plugin = manager.
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron return weakref.
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron cls._create_
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron return f(*args, **kwargs)
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron cls._instance = cls()
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron plugin_provider)
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron return plugin_class()
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron self.type_
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron driver.
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron self._initializ
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron self.sync_
2015-02-28 17:11:33.793 TRACE neutron File "/opt/stack/
2015-02-28 17:11:33.793 TRACE neutron vxlan_vnis |= set(moves.
2015-02-28 17:11:33.793 TRACE neutron MemoryError
2015-02-28 17:11:33.793 TRACE neutron
affects: | python-neutronclient → neutron |
Changed in neutron: | |
assignee: | nobody → Romil Gupta (romilg) |
Changed in neutron: | |
importance: | Undecided → Medium |
status: | New → Confirmed |
tags: | added: ml2 |
Kevin Benton (kevinbenton) wrote : | #1 |
Changed in neutron: | |
assignee: | Romil Gupta (romilg) → Sreekumar S (sreesiv) |
Fix proposed to branch: master
Review: https:/
Changed in neutron: | |
status: | Confirmed → In Progress |
Change abandoned by Sreekumar S (<email address hidden>) on branch: master
Review: https:/
Reason: There are many other factors to be considered to make this scale out to millions. Abandoning.
Sreekumar S (sreesiv) wrote : | #4 |
As Kevin suggested above the fix is not trivial and there are many other issues to be considered along the way to make it scale to millions of networks. A lone fix like the one abandoned above is not going to make much difference. Anyone planning to pick up scale issues, should consider all the scale factors and other issues mentioned in the PS review for the above patch.
Changed in neutron: | |
assignee: | Sreekumar S (sreesiv) → nobody |
Changed in neutron: | |
status: | In Progress → Confirmed |
Unless the fix is trivial, don't put a lot of work into this bug. There are many other scaling issues we will run into before neutron can handle millions of networks.