Opened 10 years ago
Last modified 10 years ago
#11660 closed defect
Trac / Subversion out-of-sync and cannot resync due to IntegrityError — at Initial Version
Reported by: | Owned by: | ||
---|---|---|---|
Priority: | normal | Milestone: | 0.12.6 |
Component: | version control | Version: | 1.0 |
Severity: | critical | Keywords: | svn sync mysql needinfo |
Cc: | Branch: | ||
Release Notes: | |||
API Changes: | |||
Internal Changes: |
Description
Using Trac with Subversion, after a large commit set (141 files involved) Trac is out of sync. In log file, following line appeared:
2014-06-24 10:12:38,814 Trac[cache] WARNING: Revision 30759 already cached: IntegrityError(1062, "Duplicate entry '1-0000030759-trunk/tbskernel-parent/tbskernel-server/tbskernel-s' for key 'PRIMARY'")
resync from start failed with same error, and when trying to sync a specific revision, sync or resync commands failed:
Command used:
trac-admin /my-trac repository sync main 30560
Error message:
TypeError: %d format: a number is required, not unicode
In log file:
2014-06-25 09:10:40,407 Trac[env] INFO: -------------------------------- environment startup [Trac 1.0] -------------------------------- 2014-06-25 09:10:40,765 Trac[console] ERROR: Exception in trac-admin command: Traceback (most recent call last): File "/usr/local/lib/python2.7/dist-packages/Trac-1.0-py2.7.egg/trac/admin/console.py", line 108, in onecmd rv = cmd.Cmd.onecmd(self, line) or 0 File "/usr/lib/python2.7/cmd.py", line 220, in onecmd return self.default(line) File "/usr/local/lib/python2.7/dist-packages/Trac-1.0-py2.7.egg/trac/admin/console.py", line 284, in default return cmd_mgr.execute_command(*args) File "/usr/local/lib/python2.7/dist-packages/Trac-1.0-py2.7.egg/trac/admin/api.py", line 124, in execute_command return f(*fargs) File "/usr/local/lib/python2.7/dist-packages/Trac-1.0-py2.7.egg/trac/versioncontrol/admin.py", line 155, in _do_sync self._sync(reponame, rev, clean=False) File "/usr/local/lib/python2.7/dist-packages/Trac-1.0-py2.7.egg/trac/versioncontrol/admin.py", line 130, in _sync repos.sync_changeset(rev) File "/usr/local/lib/python2.7/dist-packages/Trac-1.0-py2.7.egg/trac/versioncontrol/cache.py", line 104, in sync_changeset self._insert_changeset(db, rev, cset) File "/usr/local/lib/python2.7/dist-packages/Trac-1.0-py2.7.egg/trac/versioncontrol/cache.py", line 267, in _insert_changeset srev = self.db_rev(rev) File "/usr/local/lib/python2.7/dist-packages/Trac-1.0-py2.7.egg/tracopt/versioncontrol/svn/svn_fs.py", line 243, in db_rev return '%010d' % rev TypeError: %d format: a number is required, not unicode
I checked my database collation, seems good:
mysql> connect trac Reading table information for completion of table and column names You can turn off this feature to get a quicker startup with -A Connection id: 2666 Current database: trac mysql> SHOW VARIABLES WHERE variable_name IN ('character_set_database', 'collation_database'); +------------------------+----------+ | Variable_name | Value | +------------------------+----------+ | character_set_database | utf8 | | collation_database | utf8_bin | +------------------------+----------+ 2 rows in set (0.00 sec)
How can I resync Trac with my subversion repository?
Note:
See TracTickets
for help on using tickets.