from celery.log:
[2014-02-26 18:41:42,307: ERROR/MainProcess] Task provisioningserver.tasks.remove_dhcp_host_map[56a75ce3-1307-4e40-8501-517848534b25] raised unexpected: ExternalProcessError() Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/celery/app/trace.py", line 218, in trace_task
R = retval = fun(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/celery/app/trace.py", line 398, in __protected_call__
return self.run(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/provisioningserver/tasks.py", line 317, in remove_dhcp_host_map
omshell.remove(ip_address)
File "/usr/lib/python2.7/dist-packages/provisioningserver/omshell.py", line 192, in remove
raise ExternalProcessError(returncode, "omshell", output)
ExternalProcessError: Command `o m s h e l l` returned non-zero exit status 0:
> > > obj: <null>
> obj: host
> obj: host
name = "10.0.100.106"
> obj: host
name = "10.0.100.106"
ip-address = 0a:00:64:6a
hardware-address = ec:a8:6b:fd:11:09
hardware-type = 00:00:00:01
> obj: <null>
>
Traceback (most recent call last):
File "/usr/lib/python2.7/dist-packages/celery/app/trace.py", line 218, in trace_task
R = retval = fun(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/celery/app/trace.py", line 398, in __protected_call__
return self.run(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/provisioningserver/tasks.py", line 317, in remove_dhcp_host_map
omshell.remove(ip_address)
File "/usr/lib/python2.7/dist-packages/provisioningserver/omshell.py", line 192, in remove
raise ExternalProcessError(returncode, "omshell", output)
ExternalProcessError
│10:52:09 jtv | Ahhh, the omshell one may be due simply to an extra newline at the end of the output!
│10:53: 05 jtv | Omshell.remove() expects to see "obj: <null>" as the last line.
│10:53: 09 jtv | If it doesn't get that, it fails.
│10:53: 17 jtv | That's how it can fail even though its return code is zero.
│10:53: 17 <-- | bladernr (<email address hidden>) has quit (Connection reset by peer)
│10:53: 35 tych0 | ah
│10:53: 43 jtv | The code totally abuses ExternalProcess Error.
│10:54: 19 jtv | Passes it a command in the wrong format, and doesn't realise that ExternalProcess Error assumes that the failure is indicated by a nonzero return code.
│10:55: 02 jtv | But more importantly, see that output? It looks to me as if it does end with an "obj: <null>" — it's just that a (near-)empty line follows.
│10:55: 16 jtv | Don't know where the ">" markers come from. May just be a presentation thing on the output...
│10:55: 47 jtv | I'm almost out of battery and almost out of Wednesday... could you mention this in your bug?