Defect #14576
fetch_changesets on git push can fail
Status: | New | Start date: | ||
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | - | % Done: | 0% | |
Category: | SCM | |||
Target version: | - | |||
Resolution: | Affected version: | 2.3.2 |
Description
We have a little git hook that calls "rake redmine:fetch_changesets" at each successful push in our git server.
All functioned well for a few months, then we got the error message listed below.
The particular push that triggered the error is not different in any particular way. It is a merge and it touched an above average number of files, but such commits we did have before in this repo.
There is no visible adverse effect in the Repository page.
remote: rake aborted! remote: Mysql::Error: Duplicate entry '22-b93e98954d4f843238035a9f73e053c2da122604' for key 'changesets_repos_rev': INSERT INTO `changesets` (`comments`, `commit_date`, `committed_on`, `committer`, `repository_id`, `revision`, `scmid`, `user_id`) VALUES (?, ?, ?, ?, ?, ?, ?, ?) remote: /pmi/bibgit/webpages/redmine/app/models/repository/git.rb:222:in `save_revision' remote: /pmi/bibgit/webpages/redmine/app/models/repository/git.rb:211:in `save_revisions' remote: /pmi/bibgit/webpages/redmine/app/models/repository/git.rb:208:in `save_revisions' remote: /pmi/bibgit/webpages/redmine/app/models/repository/git.rb:207:in `each' remote: /pmi/bibgit/webpages/redmine/app/models/repository/git.rb:207:in `save_revisions' remote: /pmi/bibgit/webpages/redmine/app/models/repository/git.rb:154:in `fetch_changesets' remote: /pmi/bibgit/webpages/redmine/app/models/repository.rb:333:in `fetch_changesets' remote: /pmi/bibgit/webpages/redmine/app/models/repository.rb:331:in `fetch_changesets' remote: /pmi/bibgit/webpages/redmine/app/models/repository.rb:330:in `each' remote: /pmi/bibgit/webpages/redmine/app/models/repository.rb:330:in `fetch_changesets' remote: /pmi/bibgit/webpages/redmine/lib/tasks/redmine.rake:47 remote: Tasks: TOP => redmine:fetch_changesets remote: (See full trace by running task with --trace)