Internal Server Error when saving a cluster without Router IP

Bug #1441933 reported by Andres Rodriguez
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MAAS
Fix Released
Critical
Raphaël Badin
1.7
Fix Released
Critical
Raphaël Badin

Bug Description

When saving a cluster DHCP configuration without Router IP, Internal Server Error is shown in the WebUI:

==> /var/log/maas/regiond.log <==
2015-04-08 21:53:41 [-] 127.0.0.1 - - [09/Apr/2015:01:53:40 +0000] "GET /MAAS/rpc/ HTTP/1.1" 200 166 "-" "Twisted PageGetter"
2015-04-08 21:53:52 [maas] WARNING: Failed to create Network when adding/editing cluster interface maas-virbr0 with error [{'ip': [u'Network with this Ip already exists.'], 'name': [u'Network with this Name already exists.']}]. This is OK if it already exists.
2015-04-08 21:53:52 [HTTPChannel,0,127.0.0.1] 500 Error - /MAAS/clusters/0a802d12-ad44-4b26-8f8d-9665b47a49ff/interfaces/virbr0/edit/
 Traceback (most recent call last):
   File "/usr/lib/python2.7/dist-packages/twisted/web/wsgi.py", line 315, in run
     appIterator = self.application(self.environ, self.startResponse)
   File "/usr/lib/python2.7/dist-packages/django/core/handlers/wsgi.py", line 206, in __call__
     response = self.get_response(request)
   File "/usr/lib/python2.7/dist-packages/maasserver/utils/views.py", line 181, in get_response
     response = get_response(request)
   File "/usr/lib/python2.7/dist-packages/maasserver/utils/views.py", line 170, in get_response
     request, get_resolver(None), sys.exc_info())
 --- <exception caught here> ---
   File "/usr/lib/python2.7/dist-packages/maasserver/utils/views.py", line 155, in get_response
     return django_get_response(request)
   File "/usr/lib/python2.7/dist-packages/maasserver/utils/orm.py", line 331, in __exit__
     self.fire()
   File "/usr/lib/python2.7/dist-packages/provisioningserver/utils/twisted.py", line 151, in wrapper
     return func(*args, **kwargs)
   File "/usr/lib/python2.7/dist-packages/maasserver/utils/async.py", line 180, in fire
     self._fire_in_reactor(hook).wait()
   File "/usr/lib/python2.7/dist-packages/crochet/_eventloop.py", line 219, in wait
     result.raiseException()
   File "<string>", line 2, in raiseException

 exceptions.AttributeError: 'NoneType' object has no attribute 'encode'

Related branches

Revision history for this message
Andres Rodriguez (andreserl) wrote :

This is also present in 1.7 and was seen in a production environment both 1.8.0b1 and 1.7.3

Changed in maas:
milestone: none → 1.8.0
no longer affects: maas/1.8
Changed in maas:
importance: Undecided → Critical
status: New → Triaged
assignee: nobody → Andres Rodriguez (andreserl)
assignee: Andres Rodriguez (andreserl) → Raphaël Badin (rvb)
status: Triaged → New
Revision history for this message
Andres Rodriguez (andreserl) wrote :

Also, It seems that at least in 1.8, it seems that even though the internal server error occurred, the setting was still saved.

This might eb the traceback in 1.7http://paste.ubuntu.com/10776002/

Revision history for this message
Raphaël Badin (rvb) wrote :

Here is a full stacktrace: http://paste.ubuntu.com/10781115/

(I just hacked /usr/lib/python2.7/dist-packages/crochet/_eventloop.py to call result.printTraceback() —that's right, that's the kind of thing you have to do to get Twisted to give you a (vaguely) meaningful stacktrace).

Raphaël Badin (rvb)
Changed in maas:
status: New → Triaged
Raphaël Badin (rvb)
Changed in maas:
status: Triaged → Fix Committed
Changed in maas:
status: Fix Committed → Fix Released
Revision history for this message
Andres Rodriguez (andreserl) wrote :

This bug has been reported and fixed on upstream MAAS. However, provided that the bug was listed on the debian changelog, this appears as needing verification for pending SRU [1]. This bug did not affect current MAAS in Ubuntu, hence setting this to verification-done to unblock pending SRU.

[1]:http://people.canonical.com/~ubuntu-archive/pending-sru.html

tags: added: verification-done
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.