Re: [Patch v5 2/6] dump: when given output file name, write atomically
authorAustin Clements <amdragon@MIT.EDU>
Wed, 2 Apr 2014 02:07:13 +0000 (22:07 +2000)
committerW. Trevor King <wking@tremily.us>
Fri, 7 Nov 2014 18:01:08 +0000 (10:01 -0800)
21/a5272c874e64187549037145839ca80daa2c00 [new file with mode: 0644]

diff --git a/21/a5272c874e64187549037145839ca80daa2c00 b/21/a5272c874e64187549037145839ca80daa2c00
new file mode 100644 (file)
index 0000000..51eb703
--- /dev/null
@@ -0,0 +1,136 @@
+Return-Path: <amdragon@mit.edu>\r
+X-Original-To: notmuch@notmuchmail.org\r
+Delivered-To: notmuch@notmuchmail.org\r
+Received: from localhost (localhost [127.0.0.1])\r
+       by olra.theworths.org (Postfix) with ESMTP id 1C376431FBF\r
+       for <notmuch@notmuchmail.org>; Tue,  1 Apr 2014 19:07:30 -0700 (PDT)\r
+X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
+X-Spam-Flag: NO\r
+X-Spam-Score: -0.7\r
+X-Spam-Level: \r
+X-Spam-Status: No, score=-0.7 tagged_above=-999 required=5\r
+       tests=[RCVD_IN_DNSWL_LOW=-0.7] autolearn=disabled\r
+Received: from olra.theworths.org ([127.0.0.1])\r
+       by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
+       with ESMTP id BF9vIeC9DQZ5 for <notmuch@notmuchmail.org>;\r
+       Tue,  1 Apr 2014 19:07:26 -0700 (PDT)\r
+Received: from dmz-mailsec-scanner-7.mit.edu (dmz-mailsec-scanner-7.mit.edu\r
+       [18.7.68.36])\r
+       (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))\r
+       (No client certificate requested)\r
+       by olra.theworths.org (Postfix) with ESMTPS id C84C0431FBD\r
+       for <notmuch@notmuchmail.org>; Tue,  1 Apr 2014 19:07:25 -0700 (PDT)\r
+X-AuditID: 12074424-f79e26d000000c70-2c-533b70d9c94f\r
+Received: from mailhub-auth-3.mit.edu ( [18.9.21.43])\r
+       (using TLS with cipher AES256-SHA (256/256 bits))\r
+       (Client did not present a certificate)\r
+       by dmz-mailsec-scanner-7.mit.edu (Symantec Messaging Gateway) with SMTP\r
+       id 47.9F.03184.9D07B335; Tue,  1 Apr 2014 22:07:21 -0400 (EDT)\r
+Received: from outgoing.mit.edu (outgoing-auth-1.mit.edu [18.9.28.11])\r
+       by mailhub-auth-3.mit.edu (8.13.8/8.9.2) with ESMTP id s3227Kbu013089; \r
+       Tue, 1 Apr 2014 22:07:21 -0400\r
+Received: from [10.165.238.236] (154.sub-70-192-13.myvzw.com [70.192.13.154])\r
+       (authenticated bits=0)\r
+       (User authenticated as amdragon@ATHENA.MIT.EDU)\r
+       by outgoing.mit.edu (8.13.8/8.12.4) with ESMTP id s3227GLR015807\r
+       (version=TLSv1/SSLv3 cipher=RC4-MD5 bits=128 verify=NOT);\r
+       Tue, 1 Apr 2014 22:07:18 -0400\r
+Message-Id: <201404020207.s3227GLR015807@outgoing.mit.edu>\r
+Date: Tue, 01 Apr 2014 22:07:13 -0400\r
+Subject: Re: [Patch v5 2/6] dump: when given output file name, write\r
+ atomically\r
+From: Austin Clements <amdragon@MIT.EDU>\r
+To: David Bremner <david@tethera.net>\r
+MIME-Version: 1.0\r
+Content-Type: text/plain; charset=utf-8\r
+Content-Transfer-Encoding: base64\r
+X-Brightmail-Tracker:\r
+ H4sIAAAAAAAAA+NgFrrCIsWRmVeSWpSXmKPExsUixCmqrXuzwDrYYMMza4sbrd2MFtdvzmR2\r
+       YPJ4tuoWs8eWQ++ZA5iiuGxSUnMyy1KL9O0SuDI2n1jHUvBEpeLV6ya2BsYXyl2MHBwSAiYS\r
+       H54VdzFyApliEhfurWfrYuTiEBKYzSTR2fKKFcLZwCjx58k1KGc/k8TMXf1MIC28AlYSN1av\r
+       ZAOxWQRUJfY/bAazhQUCJR49OssIYrMJaEhs278czBYBqrm6bTJYDTOQ3bj2IjPEHEGJkzOf\r
+       sEDE1SX+zLvEDGErSkzpfsg+gZFvFpKyWUjKZiEpW8DIvIpRNiW3Sjc3MTOnODVZtzg5MS8v\r
+       tUjXXC83s0QvNaV0EyMo8NhdVHYwNh9SOsQowMGoxMN74LxVsBBrYllxZe4hRkkOJiVRXo5g\r
+       62AhvqT8lMqMxOKM+KLSnNTiQ4wSHMxKIrzffYFyvCmJlVWpRfkwKWkOFiVx3rfWQJME0hNL\r
+       UrNTUwtSi2CyMhwcShK8//OBGgWLUtNTK9Iyc0oQ0kwcnCDDeYCGcxeADC8uSMwtzkyHyJ9i\r
+       VJQS53UBSQiAJDJK8+B6YYnhFaM40CvCvOIgVTzApALX/QpoMBPI4HVWIINLEhFSUg2MKyU8\r
+       p7HYpBluFZIsnCjaPJX91UvfM7eTPAKq321ZwFpoXhpxz+bAZ5+jT9WcPU5tj/h+UyC/28F1\r
+       ystlx4xlxfV2CUxfH7tqp5rhfB2uFc8WMFdP/Sc66cyGyXMvdpcd+Ga51r5JxfMyd5ypY6xX\r
+       iVOVfr65OJdkigTzT9OkllovDeMD7PVKLMUZiYZazEXFiQDmis0x5wIAAA==\r
+Cc: notmuch <notmuch@notmuchmail.org>\r
+X-BeenThere: notmuch@notmuchmail.org\r
+X-Mailman-Version: 2.1.13\r
+Precedence: list\r
+List-Id: "Use and development of the notmuch mail system."\r
+       <notmuch.notmuchmail.org>\r
+List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
+List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
+List-Post: <mailto:notmuch@notmuchmail.org>\r
+List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
+List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
+       <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
+X-List-Received-Date: Wed, 02 Apr 2014 02:07:30 -0000\r
+\r
+KFBhcmRvbiB0aGUgbW9iaWxlIHJldmlldykKCk9uIEFwciAxLCAyMDE0IDk6MTYgUE0sIERhdmlk\r
+IEJyZW1uZXIgPGRhdmlkQHRldGhlcmEubmV0PiB3cm90ZToKPgo+IEl0IGlzIHVzZWZ1bCB0byBh\r
+YmxlIHRvIHRlbGwgd2hldGhlciBhIGR1bXAgY29tcGxldGVkIHN1Y2Nlc3NmdWxseSBpbiAKPiBz\r
+aXR1dGlvbnMgd2hlcmUgd2UgZG9uJ3QgaGF2ZSBhY2Nlc3MgdG8gdGhlIHJldHVybiBjb2RlLgoK\r
+IlNpdHVhdGlvbnMuIsKgIFRoaXMgY29tbWl0IG1lc3NhZ2UgZG9lc24ndCBzZWVtIHZlcnkgcmVs\r
+YXRlZCB0byBhdG9taWNpdHk/Cgo+IC0tLSAKPiBub3RtdWNoLWR1bXAuYyB8IDYxICsrKysrKysr\r
+KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0tLS0tLS0tLS0gCj4gMSBm\r
+aWxlIGNoYW5nZWQsIDQ4IGluc2VydGlvbnMoKyksIDEzIGRlbGV0aW9ucygtKSAKPgo+IGRpZmYg\r
+LS1naXQgYS9ub3RtdWNoLWR1bXAuYyBiL25vdG11Y2gtZHVtcC5jIAo+IGluZGV4IDI4MzQyYjcu\r
+LjA1ZWQ2YjQgMTAwNjQ0IAo+IC0tLSBhL25vdG11Y2gtZHVtcC5jIAo+ICsrKyBiL25vdG11Y2gt\r
+ZHVtcC5jIAo+IEBAIC0xMjksMzAgKzEyOSw2NSBAQCBub3RtdWNoX2RhdGFiYXNlX2R1bXAgKG5v\r
+dG11Y2hfZGF0YWJhc2VfdCAqbm90bXVjaCwgCj4geyAKPiDCoMKgwqDCoCBnekZpbGUgb3V0cHV0\r
+OyAKPiDCoMKgwqDCoCBjb25zdCBjaGFyICptb2RlID0gZ3ppcF9vdXRwdXQgPyAidzkiIDogIndU\r
+IjsgCj4gK8KgwqDCoCBjb25zdCBjaGFyICpuYW1lX2Zvcl9lcnJvciA9IG91dHB1dF9maWxlX25h\r
+bWUgPyBvdXRwdXRfZmlsZV9uYW1lIDogInN0ZG91dCI7IAo+Cj4gLcKgwqDCoCBpbnQgcmV0OyAK\r
+PiArwqDCoMKgIGNoYXIgKnRlbXBuYW1lID0gTlVMTDsgCj4gK8KgwqDCoCBpbnQgb3V0ZmQgPSAt\r
+MTsgCj4gKyAKPiArwqDCoMKgIGludCByZXQgPSAtMTsgCj4gKyAKPiArwqDCoMKgIGlmIChvdXRw\r
+dXRfZmlsZV9uYW1lKSB7IAo+ICsgdGVtcG5hbWUgPSB0YWxsb2NfYXNwcmludGYgKG5vdG11Y2gs\r
+ICIlcy5YWFhYWFgiLCBvdXRwdXRfZmlsZV9uYW1lKTsgCj4gKyBvdXRmZCA9IG1rc3RlbXAgKHRl\r
+bXBuYW1lKTsgCj4gK8KgwqDCoCB9IGVsc2UgeyAKPiArIG91dGZkID0gZmlsZW5vIChzdGRvdXQp\r
+OyAKPiArwqDCoMKgIH0gCj4KPiAtwqDCoMKgIGlmIChvdXRwdXRfZmlsZV9uYW1lKSAKPiAtIG91\r
+dHB1dCA9IGd6b3BlbiAob3V0cHV0X2ZpbGVfbmFtZSwgbW9kZSk7IAo+IC3CoMKgwqAgZWxzZSAK\r
+PiAtIG91dHB1dCA9IGd6ZG9wZW4gKGZpbGVubyAoc3Rkb3V0KSwgbW9kZSk7IAo+ICvCoMKgwqAg\r
+aWYgKG91dGZkIDwgMCkgeyAKPiArIGZwcmludGYgKHN0ZGVyciwgIkJhZCBvdXRwdXQgZmlsZSAl\r
+c1xuIiwgbmFtZV9mb3JfZXJyb3IpOyAKPiArIGdvdG8gRE9ORTsgCj4gK8KgwqDCoCB9IAo+ICsg\r
+Cj4gK8KgwqDCoCBvdXRwdXQgPSBnemRvcGVuIChvdXRmZCwgbW9kZSk7IAo+Cj4gwqDCoMKgwqAg\r
+aWYgKG91dHB1dCA9PSBOVUxMKSB7IAo+IGZwcmludGYgKHN0ZGVyciwgIkVycm9yIG9wZW5pbmcg\r
+JXMgZm9yIChnemlwKSB3cml0aW5nOiAlc1xuIiwgCj4gLSBvdXRwdXRfZmlsZV9uYW1lID8gb3V0\r
+cHV0X2ZpbGVfbmFtZSA6ICJzdGRvdXQiLCBzdHJlcnJvciAoZXJybm8pKTsgCj4gLSByZXR1cm4g\r
+RVhJVF9GQUlMVVJFOyAKPiArIG5hbWVfZm9yX2Vycm9yLCBzdHJlcnJvciAoZXJybm8pKTsgCj4g\r
+KyBnb3RvIERPTkU7IAo+IMKgwqDCoMKgIH0gCj4KPiDCoMKgwqDCoCByZXQgPSBkYXRhYmFzZV9k\r
+dW1wX2ZpbGUgKG5vdG11Y2gsIG91dHB1dCwgcXVlcnlfc3RyLCBvdXRwdXRfZm9ybWF0KTsgCj4g\r
+K8KgwqDCoCBpZiAocmV0KSBnb3RvIERPTkU7IAo+Cj4gLcKgwqDCoCBpZiAoZ3pmbHVzaCAob3V0\r
+cHV0LCBaX0ZJTklTSCkpIHsgCj4gLSBmcHJpbnRmIChzdGRlcnIsICJFcnJvciBmbHVzaGluZyBv\r
+dXRwdXQ6ICVzXG4iLCAKPiAtIGd6ZXJyb3IgKG91dHB1dCwgTlVMTCkpOyAKPiAtIHJldHVybiBF\r
+WElUX0ZBSUxVUkU7IAo+ICvCoMKgwqAgcmV0ID0gZ3pmbHVzaCAob3V0cHV0LCBaX0ZJTklTSCk7\r
+IAo+ICvCoMKgwqAgaWYgKHJldCkgeyAKPiArIGZwcmludGYgKHN0ZGVyciwgIkVycm9yIGZsdXNo\r
+aW5nIG91dHB1dDogJXNcbiIsIGd6ZXJyb3IgKG91dHB1dCwgTlVMTCkpOyAKPiArIGdvdG8gRE9O\r
+RTsgCj4gwqDCoMKgwqAgfSAKPgo+IC3CoMKgwqAgaWYgKG91dHB1dF9maWxlX25hbWUpIAo+IC0g\r
+Z3pjbG9zZV93IChvdXRwdXQpOyAKPiArwqDCoMKgIHJldCA9IGZkYXRhc3luYyAob3V0ZmQpOwoK\r
+VGhpcyBtYXkgZmFpbCBpZiBvdXRmZCBpc24ndCBhIHJlZ3VsYXIgZmlsZS7CoCBXZSBwcm9iYWJs\r
+eSBzaG91bGQgb25seSBkbyB0aGlzIGlmIG91dHB1dF9maWxlX25hbWUuwqAgT3Igd2UgY291bGQg\r
+aWdub3JlIEVJTlZBTCAoYnV0IHRoYXQgbWF5IG1hc2sgYnVncykuCgo+ICvCoMKgwqAgaWYgKHJl\r
+dCkgeyAKPiArIHBlcnJvciAoImZkYXRhc3luYyIpOwoKcGVycm9yJ3MgZmluZSBmb3IgcXVpY2sg\r
+aGFja3MsIGJ1dCBpdCB3b3VsZCBiZSBiZXR0ZXIgdG8gZ2l2ZSBhIHJlYWwgZXJyb3IgbWVzc2Fn\r
+ZSBoZXJlLgoKPiArIGdvdG8gRE9ORTsgCj4gK8KgwqDCoCB9IAo+ICsgCj4gK8KgwqDCoCBpZiAo\r
+b3V0cHV0X2ZpbGVfbmFtZSkgeyAKPiArIHJldCA9IGd6Y2xvc2VfdyAob3V0cHV0KTsgCj4gKyBp\r
+ZiAocmV0ICE9IFpfT0spIHsgCj4gKyDCoMKgwqAgcmV0ID0gRVhJVF9GQUlMVVJFOyAKPiArIMKg\r
+wqDCoCBnb3RvIERPTkU7IAo+ICsgfSAKPiArIAo+ICsgcmV0ID0gcmVuYW1lICh0ZW1wbmFtZSwg\r
+b3V0cHV0X2ZpbGVfbmFtZSk7IAo+ICsgaWYgKHJldCkgeyAKPiArIMKgwqDCoCBwZXJyb3IgKCJy\r
+ZW5hbWUiKTsgCj4gKyDCoMKgwqAgZ290byBET05FOyAKPiArIH0gCj4gKyAKPiArwqDCoMKgIH0g\r
+Cj4gKyBET05FOiAKPiArwqDCoMKgIGlmIChyZXQgIT0gRVhJVF9TVUNDRVNTICYmIG91dHB1dF9m\r
+aWxlX25hbWUpIAo+ICsgKHZvaWQpIHVubGluayAodGVtcG5hbWUpOwoKV2UgbmVlZCB0byBnemNs\r
+b3NlIG9uIHRoZSBlcnJvciBwYXRocyB0byBmcmVlIHpsaWIncyBpbnRlcm5hbCByZXNvdXJjZXMu\r
+wqAgVGhpcyBpcyBhIHByb2JsZW0gaWYgd2UgaGFuZGVkIHN0ZG91dCB0byBnemRvcGVuLsKgIFdl\r
+IHNob3VsZG4ndCB3cml0ZSBhbnkgbW9yZSB0byBzdGRvdXQgYW55d2F5IGluIHRoYXQgY2FzZSwg\r
+YnV0IG1heWJlIGl0IHdvdWxkIGJlIGJldHRlciB0byBkdXAgc3Rkb3V0PwoKPgo+IMKgwqDCoMKg\r
+IHJldHVybiByZXQ7IAo+IH0gCj4gLS0gCj4gMS45LjAgCj4KPiBfX19fX19fX19fX19fX19fX19f\r
+X19fX19fX19fX19fX19fX19fX19fX19fX19fXyAKPiBub3RtdWNoIG1haWxpbmcgbGlzdCAKPiBu\r
+b3RtdWNoQG5vdG11Y2htYWlsLm9yZyAKPiBodHRwOi8vbm90bXVjaG1haWwub3JnL21haWxtYW4v\r
+bGlzdGluZm8vbm90bXVjaCAK\r
+\r