linux_net fails to start dnsmasq as root
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
OpenStack Compute (nova) |
Fix Released
|
Low
|
Andrew Laski |
Bug Description
The command to start dnsmasq has some bash environment prefixes (FLAGFILE=, NETWORK_ID=) but the call to execute isn't marked with shell=True. So when "Make nova-rootwrap optional" got merged (Change-Id: I2cf5c743c6f4d6
2012-10-30 12:17:57 DEBUG nova.utils [req-7dc40cb3-
dnsmasq --strict-order --bind-interfaces --conf-file= --domain=novalocal --pid-file=
ept-interface=lo --dhcp-
t=/opt/
Traceback (most recent call last):
File "/usr/local/
timer()
File "/usr/local/
cb(*args, **kw)
File "/usr/local/
result = function(*args, **kwargs)
File "/opt/nova/
server.start()
File "/opt/nova/
self.
File "/opt/nova/
super(
File "/opt/nova/
self.
File "/opt/nova/
self.
File "/opt/nova/
restart_
File "/opt/nova/
retval = f(*args, **kwargs)
File "/opt/nova/
_execute(*cmd, run_as_root=True)
File "/opt/nova/
return utils.execute(*cmd, **kwargs)
File "/opt/nova/
shell=shell)
File "/usr/local/
subprocess_
File "/usr/lib/
errread, errwrite)
File "/usr/lib/
raise child_exception
OSError: [Errno 2] No such file or directory
It was a little hard to track down, because obviously running on the commandline works. It only happens on the boxes where I'm running services as root. And subprocess wasn't being really specific about what exactly it couldn't find :P
I looked for precedent adding shell=True to the call, but it seems the nova codebase prefers to explicitly set the environ with the env command.
Changed in nova: | |
assignee: | clayg (clay-gerrard) → Andrew Laski (alaski) |
Changed in nova: | |
milestone: | none → grizzly-1 |
status: | Fix Committed → Fix Released |
Changed in nova: | |
milestone: | grizzly-1 → 2013.1 |
Fix proposed to branch: master /review. openstack. org/15048
Review: https:/