Edgewall Software
Modify

Opened 18 years ago

Closed 17 years ago

#5352 closed defect (wontfix)

ReSync failed after subversion code added with bad encoding in file path.

Reported by: tjd_10@… Owned by: Christian Boos
Priority: normal Milestone:
Component: version control Version: 0.10.3
Severity: normal Keywords: needinfo
Cc: Branch:
Release Notes:
API Changes:
Internal Changes:

Description (last modified by Christian Boos)

A user committed a folder with [] square brackets. This resulted in encoding errors in other clients and the following error in Trac:

Traceback (most recent call last):
  File "C:\Python24\lib\site-packages\trac\web\main.py", line 387, in dispatch_request
    dispatcher.dispatch(req)
  File "C:\Python24\lib\site-packages\trac\web\main.py", line 191, in dispatch
    chosen_handler = self._pre_process_request(req, chosen_handler)
  File "C:\Python24\lib\site-packages\trac\web\main.py", line 263, in _pre_process_request
    chosen_handler = f.pre_process_request(req, chosen_handler)
  File "C:\Python24\lib\site-packages\trac\versioncontrol\api.py", line 73, in pre_process_request
    self.get_repository(req.authname) # triggers a sync if applicable
  File "C:\Python24\lib\site-packages\trac\versioncontrol\api.py", line 101, in get_repository
    repos = self._connector.get_repository(rtype, rdir, authname)
  File "C:\Python24\lib\site-packages\trac\versioncontrol\svn_fs.py", line 260, in get_repository
    crepos = CachedRepository(self.env.get_db_cnx(), repos, None, self.log)
  File "C:\Python24\lib\site-packages\trac\versioncontrol\cache.py", line 34, in __init__
    self.sync()
  File "C:\Python24\lib\site-packages\trac\versioncontrol\cache.py", line 91, in sync
    for path,kind,action,base_path,base_rev in changeset.get_changes():
  File "C:\Python24\lib\site-packages\trac\versioncontrol\svn_fs.py", line 651, in get_changes
    repos.svn_repos_replay(root, e_ptr, e_baton, pool())
  File "C:\Python24\lib\site-packages\svn_python-1.4.2-py2.4-win32.egg\libsvn\repos.py", line 239, in svn_repos_replay
    return apply(_repos.svn_repos_replay, args)
SubversionException: ("Filesystem path 'Async-Processes [AKOR]/ViewAsync.asp' is neither a file nor a directory", 160013)

I renamed the directory and this solved the issue for any other applications. Running a resync did not solve the error in Trac.

Attachments (0)

Change History (3)

comment:1 by sid, 17 years ago

Did you ever find a way to resolve this?

comment:2 by Christian Boos, 17 years ago

Description: modified (diff)
Keywords: needinfo added

comment:3 by Christian Boos, 17 years ago

Resolution: wontfix
Status: newclosed

Trac doesn't do anything special with "[]" and there can't be encoding issues with those characters. The problem was more a Subversion issue, as the SubversionException stated:

Filesystem path 'Async-Processes [AKOR]/ViewAsync.asp' is neither a file nor a directory

When Trac does a resync, it goes through all the existing revisions, so doing a rename after the fact could not help.

Maybe using svndumpfilter to eliminate the buggy change would have worked, but there's nothing we could have done at the Trac level (well, besides introducing a Node.UNKNOWN type ;-) )

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain Christian Boos.
The resolution will be deleted. Next status will be 'reopened'.
to The owner will be changed from Christian Boos to the specified user.

Add Comment


E-mail address and name can be saved in the Preferences .
 
Note: See TracTickets for help on using tickets.