IntegrityError: duplicate key value violates unique constraint "maasserver_componenterror_component_key", (component)=(clusters) already exists

Bug #1443917 reported by Gavin Panella
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
MAAS
Fix Released
Critical
Raphaël Badin

Bug Description

Seen during QA today in the lab, in regiond.log.

2015-04-14 15:28:40 [HTTPChannel,43,127.0.0.1] 500 Error - /MAAS/metadata//2012-03-01/meta-data/local-hostname
        Traceback (most recent call last):
          File "/usr/lib/python2.7/dist-packages/django/core/handlers/wsgi.py", line 206, in __call__
            response = self.get_response(request)
          File "/usr/lib/python2.7/dist-packages/maasserver/utils/views.py", line 213, in get_response
            response = get_response(request)
          File "/usr/lib/python2.7/dist-packages/maasserver/utils/views.py", line 187, in get_response
            return django_get_response(request)
          File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 194, in get_response
            response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
        --- <exception caught here> ---
          File "/usr/lib/python2.7/dist-packages/django/core/handlers/base.py", line 88, in get_response
            response = middleware_method(request)
          File "/usr/lib/python2.7/dist-packages/maasserver/middleware.py", line 169, in process_request
            self._check_cluster_connectivity()
          File "/usr/lib/python2.7/dist-packages/maasserver/middleware.py", line 162, in _check_cluster_connectivity
            register_persistent_error(COMPONENT.CLUSTERS, message)
          File "/usr/lib/python2.7/dist-packages/maasserver/components.py", line 42, in register_persistent_error
            ComponentError.objects.create(component=component, error=error_message)
          File "/usr/lib/python2.7/dist-packages/django/db/models/manager.py", line 157, in create
            return self.get_queryset().create(**kwargs)
          File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 319, in create
            obj.save(force_insert=True, using=self.db)
          File "/usr/lib/python2.7/dist-packages/maasserver/models/cleansave.py", line 38, in save
            return super(CleanSave, self).save(*args, **kwargs)
          File "/usr/lib/python2.7/dist-packages/maasserver/models/timestampedmodel.py", line 55, in save
            return super(TimestampedModel, self).save(*args, **kwargs)
          File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 545, in save
            force_update=force_update, update_fields=update_fields)
          File "/usr/lib/python2.7/dist-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 "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 654, in _save_table
            result = self._do_insert(cls._base_manager, using, fields, update_pk, raw)
          File "/usr/lib/python2.7/dist-packages/django/db/models/base.py", line 687, in _do_insert
            using=using, raw=raw)
          File "/usr/lib/python2.7/dist-packages/django/db/models/manager.py", line 232, in _insert
            return insert_query(self.model, objs, fields, **kwargs)
          File "/usr/lib/python2.7/dist-packages/django/db/models/query.py", line 1511, in insert_query
            return query.get_compiler(using=using).execute_sql(return_id)
          File "/usr/lib/python2.7/dist-packages/django/db/models/sql/compiler.py", line 898, in execute_sql
            cursor.execute(sql, params)
          File "/usr/lib/python2.7/dist-packages/django/db/backends/util.py", line 53, in execute
            return self.cursor.execute(sql, params)
          File "/usr/lib/python2.7/dist-packages/django/db/utils.py", line 99, in __exit__
            six.reraise(dj_exc_type, dj_exc_value, traceback)
          File "/usr/lib/python2.7/dist-packages/django/db/backends/util.py", line 53, in execute
            return self.cursor.execute(sql, params)
        django.db.utils.IntegrityError: duplicate key value violates unique constraint "maasserver_componenterror_component_key"
        DETAIL: Key (component)=(clusters) already exists.

Related branches

Revision history for this message
Gavin Panella (allenap) wrote :

I suspect this is a symptom of temporarily reducing transaction isolation to READ COMMITTED.

Revision history for this message
Raphaël Badin (rvb) wrote :

Still seeing this in OIL today.

Changed in maas:
importance: Undecided → Critical
status: New → Triaged
Revision history for this message
Raphaël Badin (rvb) wrote :

A more recent stacktrace: http://paste.ubuntu.com/11281301/

Changed in maas:
milestone: none → 1.8.0
Raphaël Badin (rvb)
Changed in maas:
assignee: nobody → Raphaël Badin (rvb)
Changed in maas:
status: Triaged → Fix Committed
Changed in maas:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.