Return-Path: Delivered-To: apmail-couchdb-commits-archive@www.apache.org Received: (qmail 92602 invoked from network); 8 Dec 2010 17:39:44 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 8 Dec 2010 17:39:44 -0000 Received: (qmail 28845 invoked by uid 500); 8 Dec 2010 17:39:44 -0000 Delivered-To: apmail-couchdb-commits-archive@couchdb.apache.org Received: (qmail 28811 invoked by uid 500); 8 Dec 2010 17:39:44 -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 28804 invoked by uid 99); 8 Dec 2010 17:39:44 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 08 Dec 2010 17:39:44 +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; Wed, 08 Dec 2010 17:39:41 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id A4FF223889B1; Wed, 8 Dec 2010 17:39:20 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1043540 - /couchdb/trunk/src/couchdb/couch_db_updater.erl Date: Wed, 08 Dec 2010 17:39:20 -0000 To: commits@couchdb.apache.org From: kocolosk@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20101208173920.A4FF223889B1@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: kocolosk Date: Wed Dec 8 17:39:20 2010 New Revision: 1043540 URL: http://svn.apache.org/viewvc?rev=1043540&view=rev Log: Fix compactor crash when .compact file is missing header Users affected by COUCHDB-968 can take advantage of this patch to force a compaction in retry mode and thus remove the duplicates. Simply create an empty dbname.couch.compact file in the database_dir before triggering the compaction for dbname. Modified: couchdb/trunk/src/couchdb/couch_db_updater.erl Modified: couchdb/trunk/src/couchdb/couch_db_updater.erl URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_db_updater.erl?rev=1043540&r1=1043539&r2=1043540&view=diff ============================================================================== --- couchdb/trunk/src/couchdb/couch_db_updater.erl (original) +++ couchdb/trunk/src/couchdb/couch_db_updater.erl Wed Dec 8 17:39:20 2010 @@ -848,7 +848,12 @@ start_copy_compact(#db{name=Name,filepat {ok, Fd} -> couch_task_status:add_task(<<"Database Compaction">>, <>, <<"Starting">>), Retry = true, - {ok, Header} = couch_file:read_header(Fd); + case couch_file:read_header(Fd) of + {ok, Header} -> + ok; + no_valid_header -> + ok = couch_file:write_header(Fd, Header=#db_header{}) + end; {error, enoent} -> couch_task_status:add_task(<<"Database Compaction">>, Name, <<"Starting">>), {ok, Fd} = couch_file:open(CompactFile, [create]),