Edgewall Software
Modify

Opened 14 years ago

Closed 14 years ago

Last modified 14 years ago

#525 closed defect (duplicate)

Relative path in Bitten causes svn assertion that crashes server (Apache/standalone tracd)

Reported by: allarddijk Owned by: osimons
Priority: major Milestone: 0.6
Component: Administration interface Version: 0.6b2
Keywords: Cc: trac@…
Operating System: Windows

Description (last modified by dfraser)

Actions to reproduce:

  1. Go to Trac Admin Builds.Configurations - Add Configuration
  2. You see 3 fields, fill the following information and submit:
    • name: myName
    • label: myLabel
    • Paths: .
  3. Apache service crashes (SVN module crashes according to Apache log)

Running on: Apache/2.2.9(Win32) SVN/1.5.2 mod_python/3.3.1 Python/2.5.2 mod_auth_sspi/1.0.4 DAV/2 Server. Trac 0.11.6

This is now upstream on trac as ticket 9626

Attachments (0)

Change History (9)

comment:1 Changed 14 years ago by trac@…

  • Cc trac@… added

It also kills the trac standalone process, if you use that instead of Apache.

This is the error, btw, that the reporter forgot to include:

python: subversion/libsvn_subr/path.c:115: svn_path_join: Assertion `svn_path_is_canonical(component, pool)' failed.

comment:2 Changed 14 years ago by osimons

  • Milestone changed from 0.6.1 to 0.6
  • Owner set to osimons

Rescheduling. Should be fixed.

comment:3 Changed 14 years ago by dfraser

  • Description modified (diff)
  • Summary changed from Bitten bites Apache to Relative path in Bitten causes svn assertion that crashes server (Apache/standalone tracd)

Cleaned up syntax and clarified summary

comment:4 Changed 14 years ago by dfraser

  • Description modified (diff)

The crash comes from the following place:

  /home/davidf/work/upstream/bitten-git/bitten/admin.py(240)_create_config()
-> warnings = self._update_config(req, config)
  /home/davidf/work/upstream/bitten-git/bitten/admin.py(288)_update_config()
-> node = repos.get_node(path, max_rev)
  /home/davidf/work/upstream/trac/trac/versioncontrol/cache.py(235)get_node()
-> return self.repos.get_node(path, rev)
  /home/davidf/work/upstream/trac/trac/versioncontrol/svn_fs.py(438)get_node()
-> return SubversionNode(path, rev, self, self.pool)
> /home/davidf/work/upstream/trac/trac/versioncontrol/svn_fs.py(672)__init__()
-> node_type = fs.check_path(self.root, self._scoped_path_utf8, pool)

At this point, self._scoped_path_utf8 is '.'

It seems insane to me that the fs.check_path crashes with an assertion error here.

We need to find out how trac guards against such things - I can't see anything in versioncontrol/api.py that would allow us to easily prevent this.

comment:5 Changed 14 years ago by dfraser

Lo,

{ echo 'GET /trac/browser/. HTTP/1.0' ; echo ; } | telnet localhost 8001

crashes trac with exactly the same assertion. Methinks this should be relegated to a trac bug since we're relying on their version control etc

NB trying this with Firefox or wget to the URL fails as it seems to internally reform it and remove the trailing . before passing it on

comment:6 Changed 14 years ago by osimons

Agree, raise it as a Trac bug.

comment:7 Changed 14 years ago by allarddijk

Thanks for investigation. Reported to Trac on this ticket : http://trac.edgewall.org/ticket/9626

Please close this ticket

comment:8 Changed 14 years ago by dfraser

  • Description modified (diff)
  • Resolution set to duplicate
  • Status changed from new to closed

Marking as duplicate (of the upstream bug http://trac.edgewall.org/ticket/9626)

comment:9 Changed 14 years ago by dfraser

For reference, http://trac.edgewall.org/ticket/9626 is now fixed

Add Comment

Modify Ticket

Change Properties
Set your email in Preferences
Action
as closed The owner will remain osimons.
The resolution will be deleted. Next status will be 'reopened'.
Author


E-mail address and user name can be saved in the Preferences.

 
Note: See TracTickets for help on using tickets.