Closed Bug 1137430 Opened 9 years ago Closed 9 years ago

[heartbeat] FieldError: Cannot resolve keyword u'updated' into field

Categories

(Input Graveyard :: Code Quality, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: willkg, Assigned: willkg)

Details

(Whiteboard: u=gregg c=heartbeat p=1 s=input.2015q1)

Saw this error come in:

Internal Server Error: /en-US/analytics/hbdata
Traceback (most recent call last):
  File "/data/www/input.mozilla.org/input/vendor/src/django/django/core/handlers/base.py", line 111, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/data/www/input.mozilla.org/venv/lib/python2.7/site-packages/newrelic-2.38.0.31/newrelic/hooks/framework_django.py", line 497, in wrapper
    return wrapped(*args, **kwargs)
  File "/data/www/input.mozilla.org/input/fjord/base/utils.py", line 432, in _wrapped_view
    return fun(request, *args, **kwargs)
  File "/data/www/input.mozilla.org/input/vendor/src/django/django/contrib/auth/decorators.py", line 21, in _wrapped_view
    return view_func(request, *args, **kwargs)
  File "/data/www/input.mozilla.org/input/fjord/analytics/analyzer_views.py", line 111, in hb_data
    'showdata': showdata,
  File "/data/www/input.mozilla.org/input/vendor/src/django/django/shortcuts.py", line 50, in render
    return HttpResponse(loader.render_to_string(*args, **kwargs),
  File "/data/www/input.mozilla.org/input/vendor/src/django/django/template/loader.py", line 178, in render_to_string
    return t.render(context_instance)
  File "/data/www/input.mozilla.org/input/vendor/src/jingo/jingo/__init__.py", line 195, in render
    return super(Template, self).render(context_dict)
  File "/data/www/input.mozilla.org/venv/lib/python2.7/site-packages/newrelic-2.38.0.31/newrelic/api/function_trace.py", line 98, in dynamic_wrapper
    return wrapped(*args, **kwargs)
  File "/data/www/input.mozilla.org/venv/lib/python2.7/site-packages/jinja2/environment.py", line 891, in render
    return self.environment.handle_exception(exc_info, True)
  File "/data/www/input.mozilla.org/input/fjord/analytics/templates/analytics/analyzer/hb_data.html", line 50, in top-level template code
    {{ value }}
  File "/data/www/input.mozilla.org/input/fjord/analytics/templates/analytics/analyzer/dashboard.html", line 1, in top-level template code
    {% extends "analytics/dashboard_base.html" %}
  File "/data/www/input.mozilla.org/input/fjord/analytics/templates/analytics/dashboard_base.html", line 1, in top-level template code
    {% extends "base.html" %}
  File "/data/www/input.mozilla.org/input/fjord/base/templates/base.html", line 28, in top-level template code
    {% block body %}
  File "/data/www/input.mozilla.org/input/fjord/base/templates/base.html", line 80, in block "body"
    {% block content %}{% endblock %}
  File "/data/www/input.mozilla.org/input/fjord/analytics/templates/analytics/analyzer/hb_data.html", line 176, in block "content"
    {% for ans in answers %}
  File "/usr/lib64/python2.7/_abcoll.py", line 600, in __iter__
    v = self[i]
  File "/data/www/input.mozilla.org/input/vendor/src/django/django/core/paginator.py", line 125, in __getitem__
    self.object_list = list(self.object_list)
  File "/data/www/input.mozilla.org/input/vendor/src/django/django/db/models/query.py", line 141, in __iter__
    self._fetch_all()
  File "/data/www/input.mozilla.org/input/vendor/src/django/django/db/models/query.py", line 966, in _fetch_all
    self._result_cache = list(self.iterator())
  File "/data/www/input.mozilla.org/input/vendor/src/django/django/db/models/query.py", line 265, in iterator
    for row in compiler.results_iter():
  File "/data/www/input.mozilla.org/input/vendor/src/django/django/db/models/sql/compiler.py", line 700, in results_iter
    for rows in self.execute_sql(MULTI):
  File "/data/www/input.mozilla.org/input/vendor/src/django/django/db/models/sql/compiler.py", line 775, in execute_sql
    sql, params = self.as_sql()
  File "/data/www/input.mozilla.org/input/vendor/src/django/django/db/models/sql/compiler.py", line 101, in as_sql
    ordering, o_params, ordering_group_by = self.get_ordering()
  File "/data/www/input.mozilla.org/input/vendor/src/django/django/db/models/sql/compiler.py", line 429, in get_ordering
    self.query.get_meta(), default_order=asc):
  File "/data/www/input.mozilla.org/input/vendor/src/django/django/db/models/sql/compiler.py", line 465, in find_ordering_name
    field, targets, alias, joins, path, opts = self._setup_joins(pieces, opts, alias)
  File "/data/www/input.mozilla.org/input/vendor/src/django/django/db/models/sql/compiler.py", line 498, in _setup_joins
    pieces, opts, alias)
  File "/data/www/input.mozilla.org/input/vendor/src/django/django/db/models/sql/query.py", line 1463, in setup_joins
    names, opts, allow_many, fail_on_missing=True)
  File "/data/www/input.mozilla.org/input/vendor/src/django/django/db/models/sql/query.py", line 1427, in names_to_path
    self.raise_field_error(opts, name)
  File "/data/www/input.mozilla.org/input/vendor/src/django/django/db/models/sql/query.py", line 1433, in raise_field_error
    "Choices are: %s" % (name, ", ".join(available)))
FieldError: Cannot resolve keyword u'updated' into field. Choices are: addons, build_id, channel, experiment_version, extra, flow_began_ts, flow_engaged_ts, flow_id, flow_offered_ts, flow_voted_ts, id, is_test, locale, max_score, partner_id, person_id, platform, profile_age, profile_usage, question_id, question_text, response_version, score, survey_id, survey_id_id, updated_ts, variation_id, version

I'll test the sorting on that page--one of them is probably busted.
Grabbing it to work on now.
Assignee: nobody → willkg
Status: NEW → ASSIGNED
Whiteboard: u=gregg c=heartbeat p= s=input.2015q1 → u=gregg c=heartbeat p=1 s=input.2015q1
Fixed in https://github.com/mozilla/fjord/commit/2a91627185f14fc010144f31783de763ee5ba9aa

What's going on is that we weren't validating the sortby querystring values, so if you tweaked the url by hand and provided a value that wasn't a field on the model, then it threw this error.

Will push out on the next deploy.
Pushed this to prod just now. Verified it's fixed.
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Product: Input → Input Graveyard
You need to log in before you can comment on or make changes to this bug.