Apache CouchDB 1.0.0 suffers potential data loss bug - Update
The Apache CouchDB developers are warning of a bug in the open source NoSQL document database which can lead to data loss. The bug affects any user of CouchDB 1.0.0 who has the "delayed_commits" value set to true, which is the default setting. The "nasty bug" is described as "subtle" but once the bad code is executed, subsequent writes to the database are not committed to disk.
A hot fix is detailed in the warning that will prevent data loss, but this has to be applied "before the server is restarted or crashed". A new release of CouchDB, version 1.0.1, will be released this week which will permanently fix the problem.
In an analysis of the preceding events, the CouchDB developers have identified contributing factors to the appearance of this bug in version 1.0.0; these include the release procedure, code review and testing. The developers say they are taking step to resolve these issues.
Update: The developers have now released a repair tool for CouchDB 1.0.0 users who have been affected by the bug. The notes explain that CouchDB did not lose any data but did fail to write the pointers that it used to access the data; the repair tool reconstructs those pointers.