Closed philaphil closed 7 years ago
I upgraded from postgres 8.4 to 9.5 and reinstalled the database now I am getting a new error on progress and increase_value calls
TypeError: 'NoneType' object has no attribute 'getitem' TypeError: 'NoneType' object does not support item assignment
here is a full stack trace
{ "achievements": {}, "achievement_errors": { "1": { "id": 1, "error": "Traceback (most recent call last):\n File \"/home/api/wwwge/env/lib/python2.7/site-packages/gengine/views.py\", line 92, in ea\n return Achievement.evaluate(user, achievement[\"id\"])\n File \"/home/api/wwwge/env/lib/python2.7/site-packages/gengine/models.py\", line 763, in evaluate\n return cache_achievement_eval.get_orcreate(\"%s%s\" % (user[\"id\"],achievement_id),generate)\n File \"/home/api/wwwge/env/lib/python2.7/site-packages/dogpile/cache/region.py\", line 657, in get_or_create\n async_creator) as value:\n File \"/home/api/wwwge/env/lib/python2.7/site-packages/dogpile/core/dogpile.py\", line 158, in enter\n return self._enter()\n File \"/home/api/wwwge/env/lib/python2.7/site-packages/dogpile/core/dogpile.py\", line 98, in _enter\n generated = self._enter_create(createdtime)\n File \"/home/api/wwwge/env/lib/python2.7/site-packages/dogpile/core/dogpile.py\", line 149, in _enter_create\n created = self.creator()\n File \"/home/api/wwwge/env/lib/python2.7/site-packages/dogpile/cache/region.py\", line 625, in gen_value\n created_value = creator()\n File \"/home/api/wwwge/env/lib/python2.7/site-packages/gengine/models.py\", line 690, in generate\n if not goal_eval[\"achieved\"]:\nTypeError: 'NoneType' object has no attribute 'getitem'\n" }, "2": { "id": 2, "error": "Traceback (most recent call last):\n File \"/home/api/wwwge/env/lib/python2.7/site-packages/gengine/views.py\", line 92, in ea\n return Achievement.evaluate(user, achievement[\"id\"])\n File \"/home/api/wwwge/env/lib/python2.7/site-packages/gengine/models.py\", line 763, in evaluate\n return cache_achievement_eval.get_orcreate(\"%s%s\" % (user[\"id\"],achievement_id),generate)\n File \"/home/api/wwwge/env/lib/python2.7/site-packages/dogpile/cache/region.py\", line 657, in get_or_create\n async_creator) as value:\n File \"/home/api/wwwge/env/lib/python2.7/site-packages/dogpile/core/dogpile.py\", line 158, in enter\n return self._enter()\n File \"/home/api/wwwge/env/lib/python2.7/site-packages/dogpile/core/dogpile.py\", line 98, in _enter\n generated = self._enter_create(createdtime)\n File \"/home/api/wwwge/env/lib/python2.7/site-packages/dogpile/core/dogpile.py\", line 149, in _enter_create\n created = self.creator()\n File \"/home/api/wwwge/env/lib/python2.7/site-packages/dogpile/cache/region.py\", line 625, in gen_value\n created_value = creator()\n File \"/home/api/wwwge/env/lib/python2.7/site-packages/gengine/models.py\", line 686, in generate\n goal_eval[\"leaderboard\"] = Goal.get_leaderboard(goal, user_ids)\nTypeError: 'NoneType' object does not support item assignment\n" } } }
It might be an error in your goal definition (We should implement some rule verification!). However, I'll look into it more detailed later.
@philaphil Sorry for the way too late response. Is this still an issue for you? We were mainly working on major rule language improvements during the last months and on stability of the whole engine. The current state is in the develop branch, but tests and docs updates are still todos for the upcoming release.
Closing this now. In case you still have problems, please open another issue.
I created a user id 10 and a variable gold and I am trying to add a value to it from the api and getting the following error
ProgrammingError: (psycopg2.ProgrammingError) function concat(unknown, character varying, unknown) does not exist LINE 3: WHERE goals.condition ILIKE concat(E'%"', variables.name, E'... ^ HINT: No function matches the given name and argument types. You might need to add explicit type casts. [SQL: 'SELECT goals.id, goals.name, goals.name_translation_id, goals.condition, goals.evaluation, goals.timespan, goals.group_by_key, goals.group_by_dateformat, goals.goal, goals.operator, goals.maxmin, goals.achievement_id, goals.priority, variables.id AS variable_id \nFROM goals, variables \nWHERE goals.condition ILIKE concat(%(param_1)s, variables.name, %(param_2)s) OR goals.condition ILIKE concat(%(param_3)s, variables.name, %(param_4)s)'] [parameters: {'param_4': "'%", 'param_1': '%"', 'param_3': "%'", 'param_2': '"%'}]