Rev 4843: Merge 2.0: in http://bazaar.launchpad.net/~lifeless/bzr/2.1

Robert Collins robertc at robertcollins.net
Fri May 21 02:55:49 BST 2010


At http://bazaar.launchpad.net/~lifeless/bzr/2.1

------------------------------------------------------------
revno: 4843 [merge]
revision-id: robertc at robertcollins.net-20100521015534-doqp3feswa650akv
parent: pqm at pqm.ubuntu.com-20100519235857-456mp2ssaqfxhh0h
parent: pqm at pqm.ubuntu.com-20100520223813-83z0q2ejj4a2ipq7
committer: Robert Collins <robertc at robertcollins.net>
branch nick: 2.1
timestamp: Fri 2010-05-21 13:55:34 +1200
message:
  Merge 2.0:
  
  * When passing a file to ``UTF8DirReader`` make sure to close the current
    directory file handle after the chdir fails. Otherwise when passing many
    filenames into a command line ``bzr status`` we would leak descriptors.
    (John Arbash Meinel, #583486)
modified:
  NEWS                           NEWS-20050323055033-4e00b5db738777ff
  bzrlib/_readdir_pyx.pyx        readdir.pyx-20060609152855-rm6v321vuaqyh9tu-1
=== modified file 'NEWS'
--- a/NEWS	2010-05-19 23:09:33 +0000
+++ b/NEWS	2010-05-21 01:55:34 +0000
@@ -36,6 +36,11 @@
 * Support Pyrex 0.9.9, required changing how we handle exceptionsin Pyrex.
   (John Arbash Meinel, #582656)
 
+* When passing a file to ``UTF8DirReader`` make sure to close the current
+  directory file handle after the chdir fails. Otherwise when passing many
+  filenames into a command line ``bzr status`` we would leak descriptors.
+  (John Arbash Meinel, #583486)
+
 Internals
 *********
 
@@ -457,16 +462,22 @@
 * Reduce peak memory by one copy of compressed text.
   (John Arbash Meinel, #566940)
 
+* Repositories accessed via a smart server now reject being stacked on a
+  repository in an incompatible format, as is the case when accessing them
+  via other methods.  This was causing fetches from those repositories via
+  a smart server (e.g. using ``bzr branch``) to receive invalid data.
+  (Andrew Bennetts, #562380)
+
 * Selftest with versions of subunit that support ``stopTestRun`` will no longer
   error. This error was caused by 2.0 not being updated when upstream
   python merged the end of run patch, which chose ``stopTestRun`` rather than
   ``done``. (Robert Collins, #571437)
 
-* Repositories accessed via a smart server now reject being stacked on a
-  repository in an incompatible format, as is the case when accessing them
-  via other methods.  This was causing fetches from those repositories via
-  a smart server (e.g. using ``bzr branch``) to receive invalid data.
-  (Andrew Bennetts, #562380)
+* When passing a file to ``UTF8DirReader`` make sure to close the current
+  directory file handle after the chdir fails. Otherwise when passing many
+  filenames into a command line ``bzr status`` we would leak descriptors.
+  (John Arbash Meinel, #583486)
+
 
 bzr 2.0.5
 #########

=== modified file 'bzrlib/_readdir_pyx.pyx'
--- a/bzrlib/_readdir_pyx.pyx	2010-02-17 17:11:16 +0000
+++ b/bzrlib/_readdir_pyx.pyx	2010-05-21 01:55:34 +0000
@@ -307,6 +307,9 @@
         if orig_dir_fd == -1:
             raise_os_error(errno, "open: ", ".")
         if -1 == chdir(path):
+            # Ignore the return value, because we are already raising an
+            # exception
+            close(orig_dir_fd)
             raise_os_error(errno, "chdir: ", path)
     else:
         orig_dir_fd = -1




More information about the bazaar-commits mailing list