bzr-svn gets confused and crashes with certain rearrangements of branch parent dirs

Bug #701752 reported by Max Bowsher
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Bazaar Subversion Plugin
Fix Released
High
Jelmer Vernooij

Bug Description

Debugging the import of divmod nevow, I found a crash, and concocted a reproducer. I'm attaching a svn dumpfile.

maxb@chimaera:/tmp$ svnadmin create tmprepo
maxb@chimaera:/tmp$ svnadmin load --quiet tmprepo < ~/repro.dump
maxb@chimaera:/tmp$ bzr branch tmprepo/trunk/myproj
bzr: ERROR: sorry, '..' not allowed in path

0.378 Traceback (most recent call last):
  File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/commands.py", line 923, in exception_to_return_code
    return the_callable(*args, **kwargs)
  File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/commands.py", line 1123, in run_bzr
    ret = run(*run_argv)
  File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/commands.py", line 691, in run_argv_aliases
    return self.run(**all_cmd_args)
  File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/commands.py", line 710, in run
    return self._operation.run_simple(*args, **kwargs)
  File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/cleanup.py", line 135, in run_simple
    self.cleanups, self.func, *args, **kwargs)
  File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/cleanup.py", line 165, in _do_with_cleanups
    result = func(*args, **kwargs)
  File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/builtins.py", line 1227, in run
    source_branch=br_from)
  File "/home/maxb/.bazaar/plugins/svn/remote.py", line 138, in sprout
    return super(SvnRemoteAccess, self).sprout(*args, **kwargs)
  File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/controldir.py", line 374, in sprout
    create_tree_if_local=create_tree_if_local)
  File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/cleanup.py", line 131, in run
    self.cleanups, self.func, self, *args, **kwargs)
  File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/cleanup.py", line 165, in _do_with_cleanups
    result = func(*args, **kwargs)
  File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/controldir.py", line 426, in _sprout
    result_repo.fetch(source_repository, fetch_spec=fetch_spec)
  File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/repository.py", line 1745, in fetch
    find_ghosts=find_ghosts, fetch_spec=fetch_spec)
  File "/home/maxb/.bazaar/plugins/svn/fetch.py", line 1565, in fetch
    pack_hint = self._fetch_revisions(needed, pb)
  File "/home/maxb/.bazaar/plugins/svn/fetch.py", line 1492, in _fetch_revisions
    use_replay=self._use_replay)
  File "/home/maxb/.bazaar/plugins/svn/fetch.py", line 1462, in _fetch_revisions_nochunks
    parent_revmeta)
  File "/home/maxb/.bazaar/plugins/svn/fetch.py", line 1404, in _fetch_revision_switch
    report_inventory_contents(reporter, parent_revnum, start_empty)
  File "/home/maxb/.bazaar/plugins/svn/errors.py", line 144, in convert
    return unbound(*args, **kwargs)
  File "/home/maxb/.bazaar/plugins/svn/fetch.py", line 1142, in report_inventory_contents
    reporter.finish()
  File "/home/maxb/.bazaar/plugins/svn/fetch.py", line 328, in open_root
    return self._open_root(base_revnum)
  File "/home/maxb/.bazaar/plugins/svn/fetch.py", line 874, in _open_root
    None, u"", base_revnum)
  File "/home/maxb/.bazaar/plugins/svn/fetch.py", line 765, in get_svn_base_ie_open
    file_id = self.svn_base_tree.path2id(svn_base_path)
  File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/decorators.py", line 140, in read_locked
    result = unbound(self, *args, **kwargs)
  File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/tree.py", line 558, in path2id
    return self._inventory.path2id(path)
  File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/inventory.py", line 2079, in path2id
    names = osutils.splitpath(relpath)
  File "/home/maxb/wc/bzr/bzr/bzr.dev/bzrlib/osutils.py", line 918, in splitpath
    raise errors.BzrError("sorry, %r not allowed in path" % f)
BzrError: sorry, '..' not allowed in path

Tags: rodeo2011

Related branches

Revision history for this message
Max Bowsher (maxb) wrote :
Revision history for this message
Jelmer Vernooij (jelmer) wrote : Re: [Bug 701752] [NEW] bzr-svn gets confused and crashes with certain rearrangements of branch parent dirs

  status triaged
  importance medium

Changed in bzr-svn:
importance: Undecided → Medium
status: New → Triaged
Jelmer Vernooij (jelmer)
Changed in bzr-svn:
importance: Medium → High
assignee: nobody → Jelmer Vernooij (jelmer)
Jelmer Vernooij (jelmer)
Changed in bzr-svn:
status: Triaged → Fix Committed
milestone: none → 1.1.0
Jelmer Vernooij (jelmer)
tags: added: rodeo2011
Jelmer Vernooij (jelmer)
tags: added: verified
Jelmer Vernooij (jelmer)
tags: removed: verified
Jelmer Vernooij (jelmer)
Changed in bzr-svn:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Bug attachments

Remote bug watches

Bug watches keep track of this bug in other bug trackers.