Closed Bug 564354 Opened 15 years ago Closed 15 years ago

Crash: Duplicate entry when creating a django_user

Categories

(addons.mozilla.org Graveyard :: Public Pages, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED FIXED
5.10.2

People

(Reporter: jbalogh, Assigned: davedash)

Details

(Whiteboard: [z][crash][qa-])

Caching too hard? Traceback (most recent call last): File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/django/core/handlers/base.py", line 80, in get_response response = middleware_method(request) File "/data/amo_python/www/prod/zamboni/apps/cake/middleware.py", line 32, in process_request user = auth.authenticate(session=session) File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/django/contrib/auth/__init__.py", line 50, in authenticate user = backend.authenticate(**credentials) File "/data/amo_python/www/prod/zamboni/apps/cake/backends.py", line 43, in authenticate profile.create_django_user() File "/data/amo_python/www/prod/zamboni/apps/users/models.py", line 190, in create_django_user self.user.save() File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/django/db/models/base.py", line 434, in save self.save_base(using=using, force_insert=force_insert, force_update=force_update) File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/django/db/models/base.py", line 523, in save_base result = manager._insert(values, return_id=update_pk, using=using) File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/django/db/models/manager.py", line 195, in _insert return insert_query(self.model, values, **kwargs) File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/django/db/models/query.py", line 1432, in insert_query return query.get_compiler(using=using).execute_sql(return_id) File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 789, in execute_sql cursor = super(SQLInsertCompiler, self).execute_sql(None) File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 733, in execute_sql cursor.execute(sql, params) File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/django/db/backends/mysql/base.py", line 86, in execute return self.cursor.execute(query, args) File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/MySQLdb/cursors.py", line 173, in execute self.errorhandler(self, exc, value) File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue IntegrityError: (1062, "Duplicate entry '1826440' for key 1") Also: people still have download day cookies? COOKIES:{ 'dloadday': '68.96.230.100.1271461487741803', },
Whiteboard: [z] → [z][crash]
This is a stale cache or replication lag. We should invalidate the auth_user lookup when we create a Django user (it has to be done manually), but we'll still need code to handle replication lag. Or we can force this query to go to the master. Or we can do that facebook thing where they force people onto the master db for a little while after a write.
The master switch: I didn't know FB did that too... I knew Pownce was doing that. This might be a good redis thing: SET user:$id:use_master = True EXPIRE user:$id:use_master 60 but not sure if I like having to check REDIS each request.
I can force this particular query to go to master as a fallback - no need to hit master.
Assignee: nobody → dd
Status: NEW → RESOLVED
Closed: 15 years ago
Resolution: --- → FIXED
Whiteboard: [z][crash] → [z][crash][qa-]
Traceback (most recent call last): File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/django/core/handlers/base.py", line 80, in get_response response = middleware_method(request) File "/data/amo_python/www/prod/zamboni/apps/cake/middleware.py", line 32, in process_request user = auth.authenticate(session=session) File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/django/contrib/auth/__init__.py", line 50, in authenticate user = backend.authenticate(**credentials) File "/data/amo_python/www/prod/zamboni/apps/cake/backends.py", line 48, in authenticate profile.create_django_user() File "/data/amo_python/www/prod/zamboni/apps/users/models.py", line 190, in create_django_user self.user.save() File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/django/db/models/base.py", line 434, in save self.save_base(using=using, force_insert=force_insert, force_update=force_update) File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/django/db/models/base.py", line 523, in save_base result = manager._insert(values, return_id=update_pk, using=using) File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/django/db/models/manager.py", line 195, in _insert return insert_query(self.model, values, **kwargs) File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/django/db/models/query.py", line 1432, in insert_query return query.get_compiler(using=using).execute_sql(return_id) File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 789, in execute_sql cursor = super(SQLInsertCompiler, self).execute_sql(None) File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/django/db/models/sql/compiler.py", line 733, in execute_sql cursor.execute(sql, params) File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/django/db/backends/mysql/base.py", line 86, in execute return self.cursor.execute(query, args) File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/MySQLdb/cursors.py", line 173, in execute self.errorhandler(self, exc, value) File "/data/virtualenvs/zamboni/lib/python2.6/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue IntegrityError: (1062, "Duplicate entry '5305573' for key 1")
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Target Milestone: 5.10.1 → 5.10.2
Status: REOPENED → RESOLVED
Closed: 15 years ago15 years ago
Resolution: --- → FIXED
Product: addons.mozilla.org → addons.mozilla.org Graveyard
You need to log in before you can comment on or make changes to this bug.