Ticket #3862 (closed defect: worksforme)
Subversion 1.4.0 error: Final line in revision file longer than 64 characters
| Reported by: | trevor@… | Owned by: | cboos |
|---|---|---|---|
| Priority: | normal | Milestone: | |
| Component: | version control | Version: | 0.10 |
| Severity: | major | Keywords: | svn140 solaris |
| Cc: |
Description (last modified by cboos) (diff)
Attempting to upgrade Subversion 1.3.2 to version 1.4.0 has broken my Trac system on Solaris 10. When browsing source for any Trac instance the following error is thrown:
Traceback (most recent call last):
File "/opt/local/lib/python2.4/site-packages/trac/web/main.py", line 335, in dispatch_request
dispatcher.dispatch(req)
File "/opt/local/lib/python2.4/site-packages/trac/web/main.py", line 220, in dispatch
resp = chosen_handler.process_request(req)
File "/opt/local/lib/python2.4/site-packages/trac/versioncontrol/web_ui/browser.py", line 100, in process_request
rev_or_latest = rev or repos.youngest_rev
File "/opt/local/lib/python2.4/site-packages/trac/versioncontrol/api.py", line 144, in <lambda>
youngest_rev = property(lambda x: x.get_youngest_rev())
File "/opt/local/lib/python2.4/site-packages/trac/versioncontrol/cache.py", line 123, in get_youngest_rev
return self.repos.youngest_rev
File "/opt/local/lib/python2.4/site-packages/trac/versioncontrol/api.py", line 144, in <lambda>
youngest_rev = property(lambda x: x.get_youngest_rev())
File "/opt/local/lib/python2.4/site-packages/trac/versioncontrol/svn_fs.py", line 383, in get_youngest_rev
for path, rev in self._history('', 0, self.youngest, limit=1):
File "/opt/local/lib/python2.4/site-packages/trac/versioncontrol/svn_fs.py", line 89, in _get_history
start, end, 1, pool())
File "/usr/local/lib/svn-python/libsvn/repos.py", line 291, in svn_repos_history2
return apply(_repos.svn_repos_history2, args)
SubversionException: ('Final line in revision file longer than 64 characters', 160004)
In the Subversion source file libsvn_fs_fs/fs_fs.c function get_root_changes_offset(), if the line:
return svn_error_createf(SVN_ERR_FS_CORRUPT, NULL,
_("Final line in revision file longer than 64 "
"characters"));
is replaced with:
return svn_error_createf(SVN_ERR_FS_CORRUPT, NULL,
_(buf));
The error changes to:
Traceback (most recent call last):
File "/opt/local/lib/python2.4/site-packages/trac/web/main.py", line 335, in dispatch_request
dispatcher.dispatch(req)
File "/opt/local/lib/python2.4/site-packages/trac/web/main.py", line 220, in dispatch
resp = chosen_handler.process_request(req)
File "/opt/local/lib/python2.4/site-packages/trac/versioncontrol/web_ui/browser.py", line 100, in process_request
rev_or_latest = rev or repos.youngest_rev
File "/opt/local/lib/python2.4/site-packages/trac/versioncontrol/api.py", line 144, in <lambda>
youngest_rev = property(lambda x: x.get_youngest_rev())
File "/opt/local/lib/python2.4/site-packages/trac/versioncontrol/cache.py", line 123, in get_youngest_rev
return self.repos.youngest_rev
File "/opt/local/lib/python2.4/site-packages/trac/versioncontrol/api.py", line 144, in <lambda>
youngest_rev = property(lambda x: x.get_youngest_rev())
File "/opt/local/lib/python2.4/site-packages/trac/versioncontrol/svn_fs.py", line 383, in get_youngest_rev
for path, rev in self._history('', 0, self.youngest, limit=1):
File "/opt/local/lib/python2.4/site-packages/trac/versioncontrol/svn_fs.py", line 89, in _get_history
start, end, 1, pool())
File "/usr/local/lib/svn-python/libsvn/repos.py", line 291, in svn_repos_history2
return apply(_repos.svn_repos_history2, args)
SubversionException: ('\n', 160004)
If the error check is commented out completely this is thrown instead:
Traceback (most recent call last):
File "/opt/local/lib/python2.4/site-packages/trac/web/main.py", line 356, in dispatch_request
dispatcher.dispatch(req)
File "/opt/local/lib/python2.4/site-packages/trac/web/main.py", line 224, in dispatch
resp = chosen_handler.process_request(req)
File "/opt/local/lib/python2.4/site-packages/trac/versioncontrol/web_ui/browser.py", line 100, in process_request
rev_or_latest = rev or repos.youngest_rev
File "/opt/local/lib/python2.4/site-packages/trac/versioncontrol/api.py", line 144, in <lambda>
youngest_rev = property(lambda x: x.get_youngest_rev())
File "/opt/local/lib/python2.4/site-packages/trac/versioncontrol/cache.py", line 123, in get_youngest_rev
return self.repos.youngest_rev
File "/opt/local/lib/python2.4/site-packages/trac/versioncontrol/api.py", line 144, in <lambda>
youngest_rev = property(lambda x: x.get_youngest_rev())
File "/opt/local/lib/python2.4/site-packages/trac/versioncontrol/svn_fs.py", line 383, in get_youngest_rev
for path, rev in self._history('', 0, self.youngest, limit=1):
File "/opt/local/lib/python2.4/site-packages/trac/versioncontrol/svn_fs.py", line 89, in _get_history
start, end, 1, pool())
File "/usr/local/lib/svn-python/libsvn/repos.py", line 291, in svn_repos_history2
return apply(_repos.svn_repos_history2, args)
SubversionException: ('Found malformed header in revision file', 160004)
Is this an error with Subversion instead of Trac? Subversion seems to be working just fine otherwise. I can only generate the error via Trac - unless perhaps someone has some tricks to try.
Thanks for your help,
Trevor Wennblom


