Closed Bug 837811 Opened 13 years ago Closed 13 years ago

[stage] Adding a new language to a user's account results in a 500 error

Categories

(Participation Infrastructure :: Phonebook, defect)

defect
Not set
major

Tracking

(Not tracked)

VERIFIED FIXED
2013-02-07

People

(Reporter: mbrandt, Assigned: sancus)

References

()

Details

(Whiteboard: [regression])

This is reproducible on existing accounts and during new account creation. Stage only, not reproducible on production. Steps to reproduce: 0. Update an existing profile on stage or create a new account 1. add a new language to an existing account (I used cowboy and alien) 2. save the change Expected: Actual: A 500 error is generated Traceback (most recent call last): File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/core/handlers/base.py", line 111, in get_response response = callback(request, *callback_args, **callback_kwargs) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/views/decorators/cache.py", line 89, in _wrapped_view_func response = view_func(request, *args, **kwargs) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/contrib/auth/decorators.py", line 20, in _wrapped_view return view_func(request, *args, **kwargs) File "/data/www/mozillians.allizom.org/mozillians/apps/phonebook/views.py", line 99, in edit_profile profile_form.save() File "/data/www/mozillians.allizom.org/mozillians/apps/phonebook/forms.py", line 159, in save self.instance.set_membership(Language, self.cleaned_data['languages']) File "/data/www/mozillians.allizom.org/mozillians/apps/users/models.py", line 149, in set_membership group = model.objects.create(name=g) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/models/manager.py", line 137, in create return self.get_query_set().create(**kwargs) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/models/query.py", line 377, in create obj.save(force_insert=True, using=self.db) File "/data/www/mozillians.allizom.org/mozillians/apps/groups/models.py", line 45, in save super(GroupBase, self).save(*args, **kwargs) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/models/base.py", line 463, in save self.save_base(using=using, force_insert=force_insert, force_update=force_update) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/models/base.py", line 551, in save_base result = manager._insert([self], fields=fields, return_id=update_pk, using=using, raw=raw) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/models/manager.py", line 203, in _insert return insert_query(self.model, objs, fields, **kwargs) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/models/query.py", line 1576, in insert_query return query.get_compiler(using=using).execute_sql(return_id) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/models/sql/compiler.py", line 910, in execute_sql cursor.execute(sql, params) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/backends/mysql/base.py", line 114, in execute return self.cursor.execute(query, args) File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 173, in execute self.errorhandler(self, exc, value) File "/usr/lib64/python2.6/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue IntegrityError: (1062, "Duplicate entry 'cowboy' for key 'name'") POST:<QueryDict: {u'website': [u''], u'bio': [u''], u'username': [u'testmonkey'], u'groups': [u''], u'city': [u''], u'skills': [u'alien'], u'photo': [u''], u'region': [u''], u'languages': [u'cowboy'], u'allows_mozilla_sites': [u'True'], u'full_name': [u'matt'], u'country': [u''],
Summary: [stage] Adding a new a language to a user's account results in a 500 error → [stage] Adding a new language to a user's account results in a 500 error
Whiteboard: [regression]
Target Milestone: --- → 2013-02-07
This was fixed by MyISAM -> InnoDB on the affected tables.
Assignee: nobody → sancus
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → FIXED
Reopening: Adding 'cowboy' as a language results in this errror. Traceback (most recent call last): File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/core/handlers/base.py", line 111, in get_response response = callback(request, *callback_args, **callback_kwargs) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/views/decorators/cache.py", line 89, in _wrapped_view_func response = view_func(request, *args, **kwargs) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/contrib/auth/decorators.py", line 20, in _wrapped_view return view_func(request, *args, **kwargs) File "/data/www/mozillians.allizom.org/mozillians/apps/phonebook/views.py", line 99, in edit_profile profile_form.save() File "/data/www/mozillians.allizom.org/mozillians/apps/phonebook/forms.py", line 159, in save self.instance.set_membership(Language, self.cleaned_data['languages']) File "/data/www/mozillians.allizom.org/mozillians/apps/users/models.py", line 149, in set_membership group = model.objects.create(name=g) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/models/manager.py", line 137, in create return self.get_query_set().create(**kwargs) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/models/query.py", line 377, in create obj.save(force_insert=True, using=self.db) File "/data/www/mozillians.allizom.org/mozillians/apps/groups/models.py", line 45, in save super(GroupBase, self).save(*args, **kwargs) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/models/base.py", line 463, in save self.save_base(using=using, force_insert=force_insert, force_update=force_update) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/models/base.py", line 565, in save_base created=(not record_exists), raw=raw, using=using) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/dispatch/dispatcher.py", line 172, in send response = receiver(signal=self, sender=sender, **named) File "/data/www/mozillians.allizom.org/mozillians/apps/groups/models.py", line 134, in create_alias alias=instance) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/models/manager.py", line 134, in get_or_create return self.get_query_set().get_or_create(**kwargs) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/models/query.py", line 449, in get_or_create obj.save(force_insert=True, using=self.db) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/models/base.py", line 463, in save self.save_base(using=using, force_insert=force_insert, force_update=force_update) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/models/base.py", line 551, in save_base result = manager._insert([self], fields=fields, return_id=update_pk, using=using, raw=raw) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/models/manager.py", line 203, in _insert return insert_query(self.model, objs, fields, **kwargs) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/models/query.py", line 1576, in insert_query return query.get_compiler(using=using).execute_sql(return_id) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/models/sql/compiler.py", line 910, in execute_sql cursor.execute(sql, params) File "/data/www/mozillians.allizom.org/mozillians/vendor/src/django/django/db/backends/mysql/base.py", line 114, in execute return self.cursor.execute(query, args) File "/usr/lib64/python2.6/site-packages/MySQLdb/cursors.py", line 173, in execute self.errorhandler(self, exc, value) File "/usr/lib64/python2.6/site-packages/MySQLdb/connections.py", line 36, in defaulterrorhandler raise errorclass, errorvalue IntegrityError: (1452, 'Cannot add or update a child row: a foreign key constraint fails (`mozillians_stage`.`groups_languagealias`, CONSTRAINT `alias_id_refs_id_1052a804225f488a` FOREIGN KEY (`alias_id`) REFERENCES `groups_language` (`id`))')
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
Bumping back to resolved fixed - sancus needed to run the migration.
Status: REOPENED → RESOLVED
Closed: 13 years ago13 years ago
Resolution: --- → FIXED
QA verified fixed on stage - thank you everyone who took part in remedying this. As I understand the problem was the groups_language table was MyISAM which doesn't support foreign key constraints. The fix was simple - specify InnoDB instead. Cowboy is once again recognized as a proper language by the Mozilla community ;-)
Status: RESOLVED → VERIFIED
You need to log in before you can comment on or make changes to this bug.