Page MenuHomePhabricator

Bug: ORES thresholds API fails
Closed, InvalidPublic

Description

There are some glitches with the thresholds API, which cause it to fail when formatting the response.

https://ores-misc.wmflabs.org/v3/scores/enwiki?model_info=statistics.thresholds.true."maximum%20recall%20@%20precision>=0.995"

{
  "error": {
    "code": "internal server error",
    "message": "Traceback (most recent call last):\n  File \"/srv/ores/venv/lib/python3.4/site-packages/revscoring-2.0.2-py3.4.egg/revscoring/scoring/model_info.py\", line 148, in try_key\n    return d[key]\n  File \"/srv/ores/venv/lib/python3.4/site-packages/revscoring-2.0.2-py3.4.egg/revscoring/scoring/model_info.py\", line 24, in __getitem__\n    return self._data[key]\nKeyError: 'true'\n\nDuring handling of the above exception, another exception occurred:\n\nTraceback (most recent call last):\n  File \"./ores/wsgi/routes/v3/scores.py\", line 28, in process_score_request\n    score_response = scoring_system.score(score_request)\n  File \"./ores/scoring_systems/scoring_system.py\", line 42, in score\n    response = self._score(request)\n  File \"./ores/scoring_systems/celery_queue.py\", line 192, in _score\n    return super()._score(*args, **kwargs)\n  File \"./ores/scoring_systems/scoring_system.py\", line 61, in _score\n    self._build_model_info(request, response)\n  File \"./ores/scoring_systems/scoring_system.py\", line 122, in _build_model_info\n    context.format_model_info(model_name, request.model_info))\n  File \"./ores/scoring_context.py\", line 39, in format_model_info\n    return model_info.format(paths, formatting=\"json\")\n  File \"/srv/ores/venv/lib/python3.4/site-packages/revscoring-2.0.2-py3.4.egg/revscoring/scoring/model_info.py\", line 106, in format\n    return self.format_json(path_tree, **kwargs)\n  File \"/srv/ores/venv/lib/python3.4/site-packages/revscoring-2.0.2-py3.4.egg/revscoring/scoring/model_info.py\", line 130, in format_json\n    d[key] = key_val.format_json(sub_tree, **kwargs)\n  File \"/srv/ores/venv/lib/python3.4/site-packages/revscoring-2.0.2-py3.4.egg/revscoring/scoring/statistics/classification/classification.py\", line 155, in format_json\n    doc[key] = self[key].format_json(sub_tree, **kwargs)\n  File \"/srv/ores/venv/lib/python3.4/site-packages/revscoring-2.0.2-py3.4.egg/revscoring/scoring/model_info.py\", line 127, in format_json\n    key_val = try_key(key, self)\n  File \"/srv/ores/venv/lib/python3.4/site-packages/revscoring-2.0.2-py3.4.egg/revscoring/scoring/model_info.py\", line 151, in try_key\n    return d[key == 'true']\n  File \"/srv/ores/venv/lib/python3.4/site-packages/revscoring-2.0.2-py3.4.egg/revscoring/scoring/model_info.py\", line 24, in __getitem__\n    return self._data[key]\nKeyError: True\n"
  }
}

Event Timeline

I also run into consistent crashes when running the master code, trying simple requests like model_info=statistics.

I was missing the models parameter.