#26 resultsdb throws ImmutableTypeError
Closed: Fixed Opened by somebody.

When accessing almost all URLs in my own resultsdb instance I get the following:-

[_internal.py:87] 2014-09-26 16:14:27 INFO    127.0.0.1 - - [26/Sep/2014 16:14:27] "GET /api/v1.0/jobs HTTP/1.1" 500 -
Traceback (most recent call last):
  File "/home/somebody/dev/resultsdb/resultsdb/lib/python2.7/site-packages/flask/app.py", line 1836, in __call__
    return self.wsgi_app(environ, start_response)
  File "/home/somebody/dev/resultsdb/resultsdb/proxy.py", line 59, in __call__
    return self.app(environ, start_response)
  File "/home/somebody/dev/resultsdb/resultsdb/lib/python2.7/site-packages/flask/app.py", line 1820, in wsgi_app
    response = self.make_response(self.handle_exception(e))
  File "/home/somebody/dev/resultsdb/resultsdb/lib/python2.7/site-packages/flask/app.py", line 1403, in handle_exception
    reraise(exc_type, exc_value, tb)
  File "/home/somebody/dev/resultsdb/resultsdb/lib/python2.7/site-packages/flask/app.py", line 1817, in wsgi_app
    response = self.full_dispatch_request()
  File "/home/somebody/dev/resultsdb/resultsdb/lib/python2.7/site-packages/flask/app.py", line 1477, in full_dispatch_request
    rv = self.handle_user_exception(e)
  File "/home/somebody/dev/resultsdb/resultsdb/lib/python2.7/site-packages/flask/app.py", line 1381, in handle_user_exception
    reraise(exc_type, exc_value, tb)
  File "/home/somebody/dev/resultsdb/resultsdb/lib/python2.7/site-packages/flask/app.py", line 1475, in full_dispatch_request
    rv = self.dispatch_request()
  File "/home/somebody/dev/resultsdb/resultsdb/lib/python2.7/site-packages/flask/app.py", line 1461, in dispatch_request
    return self.view_functions[rule.endpoint](**req.view_args)
  File "/home/somebody/dev/resultsdb/resultsdb/controllers/api_v1.py", line 279, in get_jobs
    return jsonify(results)
  File "/home/somebody/dev/resultsdb/resultsdb/__init__.py", line 48, in jsonify_with_jsonp
    callback = flask.request.args.pop('callback')
  File "/home/somebody/dev/resultsdb/resultsdb/lib/python2.7/site-packages/werkzeug/datastructures.py", line 172, in pop
    is_immutable(self)
  File "/home/somebody/dev/resultsdb/resultsdb/lib/python2.7/site-packages/werkzeug/datastructures.py", line 28, in is_immutable
    raise TypeError('%r objects are immutable' % self.__class__.__name__)
TypeError: 'ImmutableMultiDict' objects are immutable

It originates from resultsdb.init.py:46

callback = flask.request.args.pop('callback')

args is an [[http://werkzeug.pocoo.org/docs/0.9/wrappers/#mutability-and-reusability-of-wrappers | immutable type ]], or by default it is at least. Perhaps I've missed a setting somewhere.

Anyway, changing that to a 'get' is easy enough, as well as commenting out the call further down that supposedly
deals with jquery caching.

Branch is devel and Flask version is 0.10.1


This ticket had assigned some Differential requests:
D236

I just submitted D236 which should address this.

This is related to #329.

Solved in D236

Metadata