Return-Path: Delivered-To: apmail-couchdb-commits-archive@www.apache.org Received: (qmail 85192 invoked from network); 26 Aug 2010 21:41:05 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 26 Aug 2010 21:41:05 -0000 Received: (qmail 63703 invoked by uid 500); 26 Aug 2010 21:41:05 -0000 Delivered-To: apmail-couchdb-commits-archive@couchdb.apache.org Received: (qmail 63620 invoked by uid 500); 26 Aug 2010 21:41:04 -0000 Mailing-List: contact commits-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@couchdb.apache.org Delivered-To: mailing list commits@couchdb.apache.org Received: (qmail 63610 invoked by uid 99); 26 Aug 2010 21:41:04 -0000 Received: from Unknown (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 Aug 2010 21:41:04 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 26 Aug 2010 21:40:46 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id E2553238890A; Thu, 26 Aug 2010 21:39:27 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Subject: svn commit: r989943 - in /couchdb/site/htdocs/notice: 1.0.1.html 1.0.1.txt Date: Thu, 26 Aug 2010 21:39:27 -0000 To: commits@couchdb.apache.org From: jan@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20100826213927.E2553238890A@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: jan Date: Thu Aug 26 21:39:27 2010 New Revision: 989943 URL: http://svn.apache.org/viewvc?rev=989943&view=rev Log: clean up wording Modified: couchdb/site/htdocs/notice/1.0.1.html couchdb/site/htdocs/notice/1.0.1.txt Modified: couchdb/site/htdocs/notice/1.0.1.html URL: http://svn.apache.org/viewvc/couchdb/site/htdocs/notice/1.0.1.html?rev=989943&r1=989942&r2=989943&view=diff ============================================================================== --- couchdb/site/htdocs/notice/1.0.1.html (original) +++ couchdb/site/htdocs/notice/1.0.1.html Thu Aug 26 21:39:27 2010 @@ -80,27 +80,19 @@ limitations under the License.

-

A REPAIR TOOL IS NOW AVAILABLE

+

A 1.0.0 RECOVERY TOOL IS NOW AVAILABLE

-

Download the CouchDB 1.0.0 Repair Tool if you want to recover your data.

+

Download the CouchDB 1.0.0 Repair Tool to recover data.

-

Warning

+

Notes on a Nasty Bug

-

If you are using CouchDB 1.0.0 and have the default setting for ‘delayed_commits’ (true) then you are affected by this data loss bug. You should read this page very carefully and apply the remedy as soon as practicable.

+

Developers should be using 1.0.1 release only at this point; not the 1.0.0 version. Read on to find out why.

-

This bug does not affect earlier releases of CouchDB.

+

On the weekend of August 7th–8th, 2010 we discovered and fixed a bug in CouchDB 1.0.0. The problem was subtle (cancelling a timer, without deleting the reference to it) but the ramifications were not: there was potential data loss for users of 1.0.0. The 1.0.1 release contains a permanent fix, and is available now on the download page.

-

Even if you have lost data due to this bug it is possible that it can be recovered. If you can, archive a copy of the database that has lost data, if not, at least do not compact your databases as the repair tool will not be effective if you do so. Please subscribe to the user@ or dev@ mailing list to get notified when the tool will be available.

- -

Post mortem for a nasty bug

- -

Over the weekend of August 7th–8th, 2010 we discovered and fixed a nasty bug in CouchDB 1.0.0. The problem was subtle (cancelling a timer, without deleting the reference to it) but the ramifications are not: once the bad code path is triggered, subsequent writes to the database are never committed. This means there is potential data-loss for users of 1.0.0.

- -

Luckily, triggering the bad code path doesn’t happen to everyone, and there is a hot fix that can prevent data loss (as long as it is applied before the server is restarted or crashes.)

- -

The 1.0.1 release will contain a permanent fix, and is expected this week. For now, this article will explain how to achieve data-safety on CouchDB 1.0.0. We will also look at the bug itself, how it happened, and what we are doing to prevent something similar happening again.

+

We are proud how quickly the CouchDB community recovered from this bug and went the extra mile to make sure everyone’s data was safe. It is clear we have a group of developers who care enough about all users’ data that it aggressively pursued an “edge case” bug so no one would be caught off guard. Further, the team worked for the next week to create a repair tool to recover access to data which was affected by the bug. As a result, no users lost data permanently. Kudos!

The Remedy

Modified: couchdb/site/htdocs/notice/1.0.1.txt URL: http://svn.apache.org/viewvc/couchdb/site/htdocs/notice/1.0.1.txt?rev=989943&r1=989942&r2=989943&view=diff ============================================================================== --- couchdb/site/htdocs/notice/1.0.1.txt (original) +++ couchdb/site/htdocs/notice/1.0.1.txt Thu Aug 26 21:39:27 2010 @@ -5,27 +5,19 @@ Sort-Index: 061
-**A REPAIR TOOL IS NOW AVAILABLE** +**A 1.0.0 RECOVERY TOOL IS NOW AVAILABLE** -Download the [CouchDB 1.0.0 Repair Tool](http://wiki.couchone.com/page/repair-tool#/) if you want to recover your data. +Download the [CouchDB 1.0.0 Repair Tool](http://wiki.couchone.com/page/repair-tool#/) to recover data.
-## Warning +## Notes on a Nasty Bug -If you are using CouchDB 1.0.0 and have the default setting for 'delayed_commits' (true) then you are affected by this data loss bug. You should read this page very carefully and apply the remedy as soon as practicable. +Developers should be using 1.0.1 release only at this point; not the 1.0.0 version. Read on to find out why. -This bug does not affect earlier releases of CouchDB. +On the weekend of August 7th–8th, 2010 we discovered and fixed a bug in CouchDB 1.0.0. The problem was subtle (cancelling a timer, without deleting the reference to it) but the ramifications were not: there was potential data loss for users of 1.0.0. The 1.0.1 release contains a permanent fix, and [is available now on the download page](../downloads.html). -Even if you have lost data due to this bug it is possible that it can be recovered. If you can, archive a copy of the database that has lost data, if not, at least do not compact your databases as the repair tool will not be effective if you do so. Please subscribe to the [user@ or dev@ mailing list](http://couchdb.apache.org/community/lists.html) to get notified when the tool will be available. - -## Post mortem for a nasty bug - -Over the weekend of August 7th–8th, 2010 we discovered and fixed a nasty bug in CouchDB 1.0.0. The problem was subtle (cancelling a timer, without deleting the reference to it) but the ramifications are not: **once the bad code path is triggered, subsequent writes to the database are never committed.** This means there is potential data-loss for users of 1.0.0. - -Luckily, triggering the bad code path doesn't happen to everyone, and there is a hot fix that can prevent data loss (as long as it is applied before the server is restarted or crashes.) - -The 1.0.1 release will contain a permanent fix, and is expected this week. For now, this article will explain how to achieve data-safety on CouchDB 1.0.0. We will also look at the bug itself, how it happened, and what we are doing to prevent something similar happening again. +We are proud how quickly the CouchDB community recovered from this bug and went the extra mile to make sure everyone's data was safe. It is clear we have a group of developers who care enough about all users' data that it aggressively pursued an "edge case" bug so no one would be caught off guard. Further, the team worked for the next week to create a repair tool to recover access to data which was affected by the bug. As a result, no users lost data permanently. Kudos! ## The Remedy