Cannot start VM or add network filters when use_ipv6 is not set
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
New
|
Undecided
|
Unassigned |
Bug Description
With Nova bzr1034 on ubuntu LTS 10.04, starting instances fails when the flag use_ipv6 is false :
2011-04-29 14:51:57,873 INFO nova [-] called setup_basic_
2011-04-29 14:51:57,873 INFO nova [-] ensuring static filters
2011-04-29 14:51:57,968 ERROR nova.exception [-] Uncaught exception
(nova.exception): TRACE: Traceback (most recent call last):
(nova.exception): TRACE: File "/usr/lib/
(nova.exception): TRACE: return f(*args, **kw)
(nova.exception): TRACE: File "/usr/lib/
(nova.exception): TRACE: self.firewall_
(nova.exception): TRACE: File "/usr/lib/
(nova.exception): TRACE: self.add_
(nova.exception): TRACE: File "/usr/lib/
(nova.exception): TRACE: network_info)
(nova.exception): TRACE: File "/usr/lib/
(nova.exception): TRACE: return ipv4_rules, ipv6_rules
(nova.exception): TRACE: UnboundLocalError: local variable 'ipv6_rules' referenced before assignment
(nova.exception): TRACE:
2011-04-29 14:51:57,969 ERROR nova.compute.
(nova.compute.
(nova.compute.
(nova.compute.
(nova.compute.
(nova.compute.
(nova.compute.
(nova.compute.
I change the code to pass this error and start instances, but when I try to add filter rule, I get another error :
2011-04-29 16:06:05,134 DEBUG nova.utils [-] Attempting to grab semaphore "iptables" for method "do_refresh_
2011-04-29 16:06:05,134 DEBUG nova.utils [-] Attempting to grab file lock "iptables" for method "do_refresh_
2011-04-29 16:06:05,167 ERROR nova.exception [-] Uncaught exception
(nova.exception): TRACE: Traceback (most recent call last):
(nova.exception): TRACE: File "/usr/lib/
(nova.exception): TRACE: return f(*args, **kw)
(nova.exception): TRACE: File "/usr/lib/
(nova.exception): TRACE: return self.driver.
(nova.exception): TRACE: File "/usr/lib/
(nova.exception): TRACE: self.firewall_
(nova.exception): TRACE: File "/usr/lib/
(nova.exception): TRACE: self.do_
(nova.exception): TRACE: File "/usr/lib/
(nova.exception): TRACE: retval = f(*args, **kwargs)
(nova.exception): TRACE: File "/usr/lib/
(nova.exception): TRACE: self.add_
(nova.exception): TRACE: File "/usr/lib/
(nova.exception): TRACE: network_info)
(nova.exception): TRACE: File "/usr/lib/
(nova.exception): TRACE: ips_v4 = [ip['ip'] for (_n, mapping) in network_info
(nova.exception): TRACE: TypeError: 'NoneType' object is not iterable
(nova.exception): TRACE:
2011-04-29 16:06:05,168 ERROR nova [-] Exception during message handling
(nova): TRACE: Traceback (most recent call last):
(nova): TRACE: File "/usr/lib/
(nova): TRACE: rval = node_func(
(nova): TRACE: File "/usr/lib/
(nova): TRACE: raise Error(str(e))
(nova): TRACE: Error: 'NoneType' object is not iterable
(nova): TRACE:
Here the fix I made to start instances :
nova/virt/
2012,2013c2012,2014
< ips_v6 = [ip['ip'] for (_n, mapping) in network_info
< for ip in mapping['ip6s']]
---
> if FLAGS.use_ipv6:
> ips_v6 = [ip['ip'] for (_n, mapping) in network_info
> for ip in mapping['ip6s']]
2015,2016c2016,2019
< ipv6_rules = self._create_
< return ipv4_rules, ipv6_rules
---
> ipv6_rules = self._create_
> return ipv4_rules, ipv6_rules
>
> return ipv4_rules, None
Related branches
- Matt Dietz (community): Approve
- Vish Ishaya (community): Approve
- Ilya Alekseyev: Pending requested
-
Diff: 79 lines (+25/-7)2 files modifiednova/tests/test_virt.py (+11/-1)
nova/virt/libvirt_conn.py (+14/-6)
Same problem on Ubuntu Natty (11.04). I applied Edouard's suggested changes, restarted nova-compute (the changes did not seem to work without restarting) and can now start instances.