Skip to content

Gitlab collect_gitlab_merge_request_events duplicate key value violates unique constraint "pr_events_repo_id_event_src_id_unique" #384

@MoralCode

Description

@MoralCode

https://gitlab.com/redhat/centos-stream/rpms/kernel

Stack Trace
Traceback (most recent call last):
  File "/collectoss/.venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
    self.dialect.do_execute(
  File "/collectoss/.venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 922, in do_execute
    cursor.execute(statement, parameters)
psycopg2.errors.UniqueViolation: duplicate key value violates unique constraint "pr_events_repo_id_event_src_id_unique"
DETAIL:  Key (repo_id, issue_event_src_id)=(100332, 494645198) already exists.


The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/collectoss/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 453, in trace_task
    R = retval = fun(*args, **kwargs)
                 ^^^^^^^^^^^^^^^^^^^^
  File "/collectoss/.venv/lib/python3.11/site-packages/celery/app/trace.py", line 736, in __protected_call__
    return self.run(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/collectoss/collectoss/tasks/gitlab/events_task.py", line 69, in collect_gitlab_merge_request_events
    process_mr_events(events, f"{owner}/{repo}: Gitlab MR Events task", repo_id, logger, session)
  File "/collectoss/collectoss/tasks/gitlab/events_task.py", line 206, in process_mr_events
    bulk_insert_dicts(logger, mr_event_dicts, PullRequestEvent, mr_event_natural_keys)
  File "/collectoss/collectoss/application/db/lib.py", line 389, in bulk_insert_dicts
    raise e
  File "/collectoss/collectoss/application/db/lib.py", line 371, in bulk_insert_dicts
    connection.execute(stmnt)
  File "/collectoss/.venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1416, in execute
    return meth(
           ^^^^^
  File "/collectoss/.venv/lib/python3.11/site-packages/sqlalchemy/sql/elements.py", line 516, in _execute_on_connection
    return connection._execute_clauseelement(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/collectoss/.venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1639, in _execute_clauseelement
    ret = self._execute_context(
          ^^^^^^^^^^^^^^^^^^^^^^
  File "/collectoss/.venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1848, in _execute_context
    return self._exec_single_context(
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/collectoss/.venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1988, in _exec_single_context
    self._handle_dbapi_exception(
  File "/collectoss/.venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 2343, in _handle_dbapi_exception
    raise sqlalchemy_exception.with_traceback(exc_info[2]) from e
  File "/collectoss/.venv/lib/python3.11/site-packages/sqlalchemy/engine/base.py", line 1969, in _exec_single_context
    self.dialect.do_execute(
  File "/collectoss/.venv/lib/python3.11/site-packages/sqlalchemy/engine/default.py", line 922, in do_execute
    cursor.execute(statement, parameters)
sqlalchemy.exc.IntegrityError: (psycopg2.errors.UniqueViolation) duplicate key value violates unique constraint "pr_events_repo_id_event_src_id_unique"
DETAIL:  Key (repo_id, issue_event_src_id)=(100332, 494645198) already exists.

[SQL: INSERT INTO data.pull_request_events (pr_event_id, pull_request_id, repo_id, cntrb_id, action, action_commit_hash, created_at, issue_event_src_id, node_id, node_url, platform_id, tool_source, tool_version, data_source) VALUES (nextval('data.pull_request_events_pr_event_id_seq'), %(pull_request_id_m0)s, %(repo_id_m0)s, %(cntrb_id_m0)s::UUID, %(action_m0)s, %(action_commit_hash_m0)s, %(created_at_m0)s, %(issue_event_src_id_m0)s, %(node_id_m0)s, %(node_url_m0)s, %(platform_id_m0)s, %(tool_source_m0)s, %(tool_version_m0)s, %(data_source_m0)s) ON CONFLICT (platform_id, node_id) DO UPDATE SET pull_request_id = coalesce(excluded.pull_request_id, data.pull_request_events.pull_request_id), repo_id = coalesce(excluded.repo_id, data.pull_request_events.repo_id), cntrb_id = coalesce(excluded.cntrb_id, data.pull_request_events.cntrb_id), action = coalesce(excluded.action, data.pull_request_events.action), action_commit_hash = coalesce(excluded.action_commit_hash, data.pull_request_events.action_commit_hash), created_at = coalesce(excluded.created_at, data.pull_request_events.created_at), issue_event_src_id = coalesce(excluded.issue_event_src_id, data.pull_request_events.issue_event_src_id), node_id = coalesce(excluded.node_id, data.pull_request_events.node_id), node_url = coalesce(excluded.node_url, data.pull_request_events.node_url), platform_id = coalesce(excluded.platform_id, data.pull_request_events.platform_id), tool_source = coalesce(excluded.tool_source, data.pull_request_events.tool_source), tool_version = coalesce(excluded.tool_version, data.pull_request_events.tool_version), data_source = coalesce(excluded.data_source, data.pull_request_events.data_source)]
[parameters: {'pull_request_id_m0': 529756551, 'repo_id_m0': 100332, 'cntrb_id_m0': None, 'action_m0': 'accepted', 'action_commit_hash_m0': None, 'created_at_m0': '2026-06-11T14:07:31.767Z', 'issue_event_src_id_m0': 494645198, 'node_id_m0': None, 'node_url_m0': None, 'platform_id_m0': 2, 'tool_source_m0': 'Gitlab mr events task', 'tool_version_m0': '2.0', 'data_source_m0': 'Gitlab API'}]
(Background on this error at: https://sqlalche.me/e/20/gkpj)

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions