fedora-infra / mirrormanager2

Rewrite of the MirrorManager application in Flask and SQLAlchemy
https://mirrormanager.fedoraproject.org
GNU General Public License v2.0
63 stars 46 forks source link

(IntegrityError) duplicate key value violates unique constraint "host_category_url_url_key" #317

Open Zlopez opened 1 year ago

Zlopez commented 1 year ago

We are getting this error from mirrormanager in Fedora Infra. Here is the full stack:

    (IntegrityError) duplicate key value violates unique constraint "host_category_url_url_key"
DETAIL:  Key (url)=(http://mirror.rise.ph/fedora-epel) already exists.
 'INSERT INTO host_category_url (host_category_id, url, private) VALUES (%(host_category_id)s, %(url)s, %(private)s) RETURNING host_category_url.id' {'url': u'http://mirror.rise.ph/fedora-epel', 'host_category_id': 9016, 'private': False}
Traceback (most recent call last):
  File "/usr/lib/python2.7/site-packages/mirrormanager2/app.py", line 1212, in host_category_url_new
    SESSION.flush()
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/scoping.py", line 150, in do
    return getattr(self.registry(), name)(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 1919, in flush
    self._flush(objects)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 2037, in _flush
    transaction.rollback(_capture_exception=True)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/langhelpers.py", line 60, in __exit__
    compat.reraise(exc_type, exc_value, exc_tb)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/session.py", line 2001, in _flush
    flush_context.execute()
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 372, in execute
    rec.execute(self)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/unitofwork.py", line 526, in execute
    uow
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 65, in save_obj
    mapper, table, insert)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/orm/persistence.py", line 602, in _emit_insert_statements
    execute(statement, params)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 729, in execute
    return meth(self, multiparams, params)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/sql/elements.py", line 322, in _execute_on_connection
    return connection._execute_clauseelement(self, multiparams, params)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 826, in _execute_clauseelement
    compiled_sql, distilled_params
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 958, in _execute_context
    context)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 1159, in _handle_dbapi_exception
    exc_info
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/util/compat.py", line 199, in raise_from_cause
    reraise(type(exception), exception, tb=exc_tb)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/base.py", line 951, in _execute_context
    context)
  File "/usr/lib64/python2.7/site-packages/sqlalchemy/engine/default.py", line 436, in do_execute
    cursor.execute(statement, parameters)
IntegrityError: (IntegrityError) duplicate key value violates unique constraint "host_category_url_url_key"
DETAIL:  Key (url)=(http://mirror.rise.ph/fedora-epel) already exists.
 'INSERT INTO host_category_url (host_category_id, url, private) VALUES (%(host_category_id)s, %(url)s, %(private)s) RETURNING host_category_url.id' {'url': u'http://mirror.rise.ph/fedora-epel', 'host_category_id': 9016, 'private': False}

It seems that this issue is just that somebody is trying to insert mirror that already exists, but it probably shouldn't end up with error like this.