Edgewall Software

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: david.baran@… 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?

Change History (0)

Note: See TracTickets for help on using tickets.