mbr / flask-kvsession

A drop-in replacement for Flask's session handling using server-side sessions.
http://pythonhosted.org/Flask-KVSession/
MIT License
168 stars 53 forks source link

IntegrityError: (IntegrityError) duplicate key value violates unique constraint "sessions_pkey" #12

Closed d4h0 closed 11 years ago

d4h0 commented 11 years ago

Hi,

For some reasons I suddenly get the error blow this message. I get this error two times per request of a page of my site.

Do you have any idea what's going on or how I can debug this?

Thank you.

Best regards, Daniel

Traceback (most recent call last):
   File "/app/.heroku/python/lib/python2.7/site-packages/gunicorn/workers/sync.py", line 125, in handle_request
     respiter = self.wsgi(environ, resp.start_response)
  File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1701, in __call__
     return self.wsgi_app(environ, start_response)
   File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1689, in wsgi_app
     response = self.make_response(self.handle_exception(e))
   File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1687, in wsgi_app
    response = self.full_dispatch_request()
   File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1362, in full_dispatch_request
    response = self.process_response(response)
   File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 1566, in process_response
    self.save_session(ctx.session, response)
   File "/app/.heroku/python/lib/python2.7/site-packages/flask/app.py", line 804, in save_session
    return self.session_interface.save_session(self, session, response)
  File "/app/.heroku/python/lib/python2.7/site-packages/flaskext/kvsession.py", line 216, in save_session
     self.serialization_method.dumps(dict(session)))
  File "/app/.heroku/python/lib/python2.7/site-packages/simplekv/__init__.py", line 140, in put
     return self._put(key, data)
  File "/app/.heroku/python/lib/python2.7/site-packages/simplekv/db/sql.py", line 60, in _put
'value': data
   File "/app/.heroku/python/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 664, in execute
 params)
  File "/app/.heroku/python/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 764, in _execute_clauseelement
 compiled_sql, distilled_params
  File "/app/.heroku/python/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 878, in _execute_context
 context)
  File "/app/.heroku/python/lib/python2.7/site-packages/sqlalchemy/engine/base.py", line 871, in _execute_context
context)
   File "/app/.heroku/python/lib/python2.7/site-packages/sqlalchemy/engine/default.py", line 320, in do_execute
 cursor.execute(statement, parameters)
IntegrityError: (IntegrityError) duplicate key value violates unique constraint "sessions_pkey"
DETAIL:  Key (key)=(59f227dad1041450_5172e5ed) already exists.
 'INSERT INTO sessions (key, value) VALUES (%(key)s, %(value)s)' {'key': '59f227dad1041450_5172e5ed', 'value': <psycopg2._psycopg.Binary object at 0x2a4d878>}
mbr commented 11 years ago

Hey Daniel,

I've got some ideas - it's a bug in either KVSession oder simplekv (though probably the latter), unless you're doing something weird in your app.

Can you reduce this to a minimal example that still breaks? I'll debug that then.

Thanks.

d4h0 commented 11 years ago

Sorry, almost forgot about this.

I'll try to create a minimal example.