bzr branch from svn+ssh fails on win32
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Bazaar |
Fix Released
|
Medium
|
Unassigned |
Bug Description
bzr branch bzr+ssh:
This is because libsvn creates ssh child process and renaming pack file fails with PermissionDenied. (see below)
Attached patch opens file with 'O_NOINHERIT' flag. The flag avoids child process inherits bzr's file handles.
2010-02-19 22:55:31 +0900
0.234 bazaar version: 2.1.0
0.234 bzr arguments: [u'branch', u'svn+ssh:
0.250 looking for plugins in C:/Documents and Settings/
0.531 looking for plugins in C:\usr\
0.531 Plugin name explorer already loaded
0.547 encoding stdout as sys.stdout encoding 'cp932'
4.638 bzr-svn: using Subversion 1.6.6 ()
4.872 potential branching layouts: [('root', 1)]
4.872 Guessed repository layout: RootLayout(), guess layout to use: RootLayout()
4.903 potential branching layouts: [('root', 1)]
4.903 Guessed repository layout: RootLayout(), guess layout to use: RootLayout()
4.997 creating repository in file://
8.557 Error suppressed by only_raises:
8.557 Traceback (most recent call last):
File "C:\usr\
return unbound(*args, **kwargs)
File "C:\usr\
self.
File "C:\usr\
self.
File "C:\usr\
self.
File "C:\usr\
operation.
File "C:\usr\
self.cleanups, self.func, *args, **kwargs)
File "C:\usr\
result = func(*args, **kwargs)
File "C:\usr\
self.
File "C:\usr\
del _file_streams[
KeyError: 'file:/
8.573 Traceback (most recent call last):
File "C:\usr\
return the_callable(*args, **kwargs)
File "C:\usr\
ret = run(*run_argv)
File "C:\usr\
return self.run_
File "C:\usr\
return self._operation
File "C:\usr\
self.cleanups, self.func, *args, **kwargs)
File "C:\usr\
result = func(*args, **kwargs)
File "C:\usr\
source_
File "C:/Documents and Settings/
return super(SvnRemote
File "C:\usr\
result_
File "C:\usr\
find_
File "C:/Documents and Settings/
pack_hint = self._fetch_
File "C:/Documents and Settings/
use_
File "C:/Documents and Settings/
hint = self.target.
File "C:\usr\
result = self._commit_
File "C:\usr\
hint = self._pack_
File "C:\usr\
self.
File "C:\usr\
self.
File "C:\usr\
self.
File "C:\usr\
raise errors.
PermissionDenied: Unprintable exception PermissionDenied: dict={'path': u'C:/temp/
Related branches
- Vincent Ladeuil: Approve
- Martin Packman (community): Approve
- Andrew Bennetts: Approve
-
Diff: 117 lines (+52/-7)3 files modifiedbzrlib/atomicfile.py (+1/-1)
bzrlib/osutils.py (+47/-2)
bzrlib/transport/local.py (+4/-4)
Changed in bzr: | |
status: | New → In Progress |
importance: | Undecided → Medium |
Changed in bzr: | |
milestone: | none → 2.0.5 |
Changed in bzr: | |
status: | In Progress → Fix Committed |
Wow, that's great to see this solved. There may be some dupes of this, and perhaps we should look for other places where O_NOINHERIT should be used.