From 16bb529339e6cbd5b2c3b704a0e5eca7e9658a3e Mon Sep 17 00:00:00 2001
From: Zooko O'Whielacronx <zooko@zooko.com>
Date: Sun, 18 Jul 2010 13:32:25 -0700
Subject: [PATCH] tests, NEWS, CREDITS re: #1117 Give Brian and Kevan
 promotions, move release date in NEWS to the 18th, commit Brian's test for
 #1117. fixes #1117

---
 CREDITS                           |  4 ++--
 NEWS                              |  6 ++++--
 src/allmydata/test/test_upload.py | 22 ++++++++++++++++++++++
 3 files changed, 28 insertions(+), 4 deletions(-)

diff --git a/CREDITS b/CREDITS
index 53bc7aaf..b5f4a96b 100644
--- a/CREDITS
+++ b/CREDITS
@@ -22,7 +22,7 @@ N: Arc O Median
 D: bug reports
 
 N: Brian Warner
-D: code
+D: Tahoe-LAFS Hacker
 
 N: RobK
 D: code
@@ -86,7 +86,7 @@ D: patch Makefile to build .debs for Ubuntu Intrepid
 
 N: Kevan Carstensen
 E: kevan@isnotajoke.com
-D: servers of happiness, other improvements, code review, docs
+D: servers of happiness, other improvements, code review, docs, upload
 
 N: Marc Tooley
 W: http://rune.ca
diff --git a/NEWS b/NEWS
index 4c71e9a7..c1376879 100644
--- a/NEWS
+++ b/NEWS
@@ -1,20 +1,22 @@
 User visible changes in Tahoe-LAFS.  -*- outline; coding: utf-8 -*-
 
-* Release 1.7.1 (2010-07-17)
+* Release 1.7.1 (2010-07-18)
 
 ** Bugfixes and Improvements
 
+ - Fix bug in which servers could get into a state where they would
+   refuse to accept shares of a certain file (#1117)
  - Add init scripts for managing the gateway server on Debian/Ubuntu (#961)
  - Fix bug where server version number was always 0 on the welcome page (#1067)
  - Add new command-line command "tahoe unlink" as a synonym for "tahoe rm"
    (#776)
  - The FTP frontend now encrypts its temporary files, protecting their contents
    from an attacker who is able to read the disk. (#1083)
+ - Fix IP address detection on FreeBSD 7, 8, and 9 (#1098)
  - Fix minor layout issue in the Web User Interface with Internet Explorer
    (#1097)
  - Fix rarely-encountered incompatibility between Twisted logging utility and
    the new unicode support added in v1.7.0 (#1099)
- - Fix IP address detection on FreeBSD 7, 8, and 9 (#1098)
  - Forward-compatibility improvements for non-ASCII caps (#1051)
 
 ** Code improvements
diff --git a/src/allmydata/test/test_upload.py b/src/allmydata/test/test_upload.py
index 9dae7ec6..1fbd627c 100644
--- a/src/allmydata/test/test_upload.py
+++ b/src/allmydata/test/test_upload.py
@@ -857,6 +857,28 @@ class EncodingParameters(GridTestMixin, unittest.TestCase, SetDEPMixin,
             self.u.upload(DATA))
         return d
 
+    def test_aborted_shares(self):
+        self.basedir = "upload/EncodingParameters/aborted_shares"
+        self.set_up_grid(num_servers=4)
+        c = self.g.clients[0]
+        DATA = upload.Data(100* "kittens", convergence="")
+        # These parameters are unsatisfiable with only 4 servers, but should
+        # work with 5, as long as the original 4 are not stuck in the open
+        # BucketWriter state (open() but not
+        parms = {"k":2, "happy":5, "n":5, "max_segment_size": 1*MiB}
+        c.DEFAULT_ENCODING_PARAMETERS = parms
+        d = self.shouldFail(UploadUnhappinessError, "test_aborted_shares",
+                            "shares could be placed on only 4 "
+                            "server(s) such that any 2 of them have enough "
+                            "shares to recover the file, but we were asked "
+                            "to place shares on at least 5 such servers",
+                            c.upload, DATA)
+        # now add the 5th server
+        d.addCallback(lambda ign: self._add_server(4, False))
+        # and this time the upload ought to succeed
+        d.addCallback(lambda ign: c.upload(DATA))
+        return d
+
 
     def test_problem_layout_comment_52(self):
         def _basedir():
-- 
2.45.2