Cannot acquire a node AttributeError: This QueryDict instance is immutable

Bug #1482737 reported by Blake Rouse
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MAAS
Fix Released
Critical
Blake Rouse

Bug Description

This is currently breaking trunk and causing Juju to fail to acquire a node in CI.

2015-08-07 08:48:10 [maasserver] ERROR: ################################ Exception: This QueryDict instance is immutable ################################
2015-08-07 08:48:10 [maasserver] ERROR: Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 112, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib/python2.7/dist-packages/maasserver/api/support.py", line 53, in __call__
    response = upcall(request, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/django/views/decorators/vary.py", line 19, in inner_func
    response = func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/piston/resource.py", line 167, in __call__
    result = self.error_handler(e, request, meth, em_format)
  File "/usr/lib/python2.7/dist-packages/piston/resource.py", line 165, in __call__
    result = meth(request, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/maasserver/api/support.py", line 201, in dispatch
    return function(self, request, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/maasserver/api/nodes.py", line 1285, in acquire
    request, extract_params=True)
  File "/usr/lib/python2.7/dist-packages/maasserver/api/nodes.py", line 208, in get_storage_layout_params
    storage_layout = request.data.pop('storage_layout', None)
  File "/usr/lib/python2.7/dist-packages/django/http/request.py", line 364, in pop
    self._assert_mutable()
  File "/usr/lib/python2.7/dist-packages/django/http/request.py", line 322, in _assert_mutable
    raise AttributeError("This QueryDict instance is immutable")
AttributeError: This QueryDict instance is immutable

2015-08-07 08:48:11 [-] "127.0.0.1" - - [07/Aug/2015:12:48:10 +0000] "POST /MAAS/api/1.0/nodes/?op=acquire HTTP/1.1" 500 36 "-" "Go 1.1 package http"
2015-08-07 08:48:11 [maasserver] ERROR: ################################ Exception: This QueryDict instance is immutable ################################
2015-08-07 08:48:11 [maasserver] ERROR: Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 112, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/usr/lib/python2.7/dist-packages/maasserver/api/support.py", line 53, in __call__
    response = upcall(request, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/django/views/decorators/vary.py", line 19, in inner_func
    response = func(*args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/piston/resource.py", line 167, in __call__
    result = self.error_handler(e, request, meth, em_format)
  File "/usr/lib/python2.7/dist-packages/piston/resource.py", line 165, in __call__
    result = meth(request, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/maasserver/api/support.py", line 201, in dispatch
    return function(self, request, *args, **kwargs)
  File "/usr/lib/python2.7/dist-packages/maasserver/api/nodes.py", line 1285, in acquire
    request, extract_params=True)
  File "/usr/lib/python2.7/dist-packages/maasserver/api/nodes.py", line 208, in get_storage_layout_params
    storage_layout = request.data.pop('storage_layout', None)
  File "/usr/lib/python2.7/dist-packages/django/http/request.py", line 364, in pop
    self._assert_mutable()
  File "/usr/lib/python2.7/dist-packages/django/http/request.py", line 322, in _assert_mutable
    raise AttributeError("This QueryDict instance is immutable")
AttributeError: This QueryDict instance is immutable

Related branches

Changed in maas:
milestone: none → 1.9.0
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.