Reputation: 1806
I've been getting 500 errors recently on website. The error is ProgrammingError: permission denied for relation django_session
.
It happens at times with update_disable()
ajax function.
Here is the function
def update_disable(request, song_pk, dj_name=None, view=None, genre=None):
song = Song.objects.get(pk=song_pk)
song.votes = song.votes + 1
song.save()
dajax = Dajax()
dajax.assign('.vote', 'disabled', 'disabled')
if dj_name:
request.session[dj_name] = True
elif genre:
print genre
request.session[genre] = True
else:
if view=="month":
request.session['month_voted'] = True
else:
request.session['trending_voted'] = True
request.session.set_expiry(604800)
visitor = get_obj_or_none(Visitor, last_session_key=request.session._session_key)
if visitor:
voter = get_obj_or_none(Voter, visitor=visitor)
if voter:
voter.vote_count += 1
voter.save()
else:
voter = Voter(visitor=visitor)
voter.save()
return dajax.json()
I can't seem to understand what's throwing this error. Any idea?
Here is the entire traceback
Traceback (most recent call last):
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/handlers/base.py", line 201, in get_response
response = middleware_method(request, response)
File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/sessions/middleware.py", line 38, in process_response
request.session.save()
File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/sessions/backends/db.py", line 63, in save
obj.save(force_insert=must_create, using=using)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/base.py", line 545, in save
force_update=force_update, update_fields=update_fields)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/base.py", line 573, in save_base
updated = self._save_table(raw, cls, force_insert, force_update, using, update_fields)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/base.py", line 654, in _save_table
result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/base.py", line 687, in _do_insert
using=using, raw=raw)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/manager.py", line 232, in _insert
return insert_query(self.model, objs, fields, **kwargs)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/query.py", line 1511, in insert_query
return query.get_compiler(using=using).execute_sql(return_id)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 899, in execute_sql
cursor.execute(sql, params)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/util.py", line 53, in execute
return self.cursor.execute(sql, params)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/utils.py", line 99, in __exit__
six.reraise(dj_exc_type, dj_exc_value, traceback)
File "/app/.heroku/python/lib/python2.7/site-packages/django/db/backends/util.py", line 53, in execute
return self.cursor.execute(sql, params)
ProgrammingError: permission denied for relation django_session
<WSGIRequest
path:/dajaxice/hunt.update_disable/,
GET:<QueryDict: {}>,
POST:<QueryDict: {u'argv': [u'{"song_pk":"680","dj_name":"Tiesto"}']}>,
COOKIES:{'_ga': 'GA1.2.1299003573.1404006039',
'csrftoken': '**masked**'},
META:{'CONTENT_LENGTH': '67',
'CONTENT_TYPE': 'application/x-www-form-urlencoded',
u'CSRF_COOKIE': u'**masked**',
'HTTP_ACCEPT': '*/*',
'HTTP_ACCEPT_ENCODING': 'gzip,deflate,sdch',
'HTTP_ACCEPT_LANGUAGE': 'en-US,en;q=0.8',
'HTTP_CONNECTION': 'close',
'HTTP_COOKIE': 'csrftoken=**masked**; _ga=GA1.2.1299003573.1404006039',
'HTTP_HOST': 'www.edmhunters.com',
'HTTP_ORIGIN': 'http://www.edmhunters.com',
'HTTP_REFERER': 'http://www.edmhunters.com/top100/tiesto/',
'HTTP_USER_AGENT': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36',
'HTTP_X_CSRFTOKEN': '**masked**',
'HTTP_X_FORWARDED_FOR': '110.32.33.39',
'HTTP_X_FORWARDED_PORT': '80',
'HTTP_X_FORWARDED_PROTO': 'http',
'HTTP_X_REQUESTED_WITH': 'XMLHttpRequest',
'HTTP_X_REQUEST_ID': 'ebadfe5f-d375-460d-8bdf-8a879f8fb13b',
'HTTP_X_REQUEST_START': '1404006080594',
'PATH_INFO': u'/dajaxice/hunt.update_disable/',
'QUERY_STRING': '',
'RAW_URI': '/dajaxice/hunt.update_disable/',
'REMOTE_ADDR': '10.122.102.62',
'REMOTE_PORT': '34465',
'REQUEST_METHOD': 'POST',
'SCRIPT_NAME': u'',
'SERVER_NAME': 'www.edmhunters.com',
'SERVER_PORT': '80',
'SERVER_PROTOCOL': 'HTTP/1.1',
'SERVER_SOFTWARE': 'gunicorn/18.0',
'gunicorn.socket': <socket._socketobject object at 0x35882f0>,
'wsgi.errors': <open file '<stderr>', mode 'w' at 0x7fcd37a971e0>,
'wsgi.file_wrapper': <class gunicorn.http.wsgi.FileWrapper at 0x244e1f0>,
'wsgi.input': <gunicorn.http.body.Body object at 0x35bc550>,
'wsgi.multiprocess': False,
'wsgi.multithread': False,
'wsgi.run_once': False,
'wsgi.url_scheme': 'http',
'wsgi.version': (1, 0)}>
Upvotes: 4
Views: 5040
Reputation: 4083
If you're using Heroku, DJANGO, PostgreSQL
This Error is explaned by Heroku here
All of the methods heroku offers to resolve this issue require you to update your account. To avoid all this I want to show you how to fix this problem
1. INSTALL POSTGRESSQL ON YOUR LOCAL MACHINE Heroku devcenter tutorial
2. GET YOUR BATABASE INFORMATION
$ heroku pg:info -a your-app-name
=== DATABASE_URL
Plan: Hobby-dev
Status: Available
Connections: 6/20
PG Version: 11.12
Created: 2019-09-10 23:20 UTC
Data Size: 11.8 MB
Tables: 33
Rows: 1064/10000 (In compliance)
Fork/Follow: Unsupported
Rollback: Unsupported
Continuous Protection: Off
Add-on: postgresql-********
Note the last line (Add-on) we will use it
3. OPEN YOUR ONLINE PSQL COMMAND PROMPT
$ heroku pg:psql postgresql-******** --app your-app-name
Replace '********' by the content of your Add-on*
If all is well, you have arrived at the pqsl command prompt for your application
4. DELETE django_session TABLE
your-app-name::DATABASE=> DROP TABLE django_session;
5. CREATE A NEW django_session TABLE
your-app-name::DATABASE=> CREATE TABLE django_session (
session_key varchar(40),
session_data text,
expire_date timestamptz );
6. EXIT
your-app-name::DATABASE=> \q
Upvotes: 1
Reputation: 829
If you're using Heroku PostgreSQL as your database, it's possible you've reached the row limit. Verify it with the command line tool:
heroku pg:info -a <your_app>
=== HEROKU_POSTGRESQL_MAUVE_URL, DATABASE_URL
Plan: Hobby-dev
Status: Available
Connections: 0/20
PG Version: 10.6
Created: 2018-03-14 22:04 UTC
Data Size: 20.3 MB
Tables: 90
Rows: 13764/10000 (Write access revoked)
Fork/Follow: Unsupported
Rollback: Unsupported
Continuous Protection: Off
Billing App: xxxxxxxxx
Add-on: postgresql-silhouetted-xxx
The Rows:
row tells you that the write access has been revoked: (Write access revoked)
.
Upvotes: 12