deleting a node sometimes fails with omshell error

Bug #1285244 reported by Tycho Andersen
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
MAAS
Fix Released
Critical
Julian Edwards

Bug Description

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

Related branches

Revision history for this message
Tycho Andersen (tycho-s) wrote :

│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 ExternalProcessError.
                      │10:54:19 jtv | Passes it a command in the wrong format, and doesn't realise that ExternalProcessError 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?

Changed in maas:
status: New → Triaged
importance: Undecided → Critical
milestone: none → 14.04
Changed in maas:
assignee: nobody → Julian Edwards (julian-edwards)
status: Triaged → In Progress
Changed in maas:
status: In Progress → Fix Committed
Changed in maas:
status: Fix Committed → Fix Released
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.