From commits-return-6547-apmail-couchdb-commits-archive=couchdb.apache.org@couchdb.apache.org Thu Jun 16 10:54:06 2011 Return-Path: X-Original-To: apmail-couchdb-commits-archive@www.apache.org Delivered-To: apmail-couchdb-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 86A806BFC for ; Thu, 16 Jun 2011 10:54:06 +0000 (UTC) Received: (qmail 1057 invoked by uid 500); 16 Jun 2011 10:54:06 -0000 Delivered-To: apmail-couchdb-commits-archive@couchdb.apache.org Received: (qmail 1022 invoked by uid 500); 16 Jun 2011 10:54:06 -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 1015 invoked by uid 99); 16 Jun 2011 10:54:06 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 16 Jun 2011 10:54:06 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.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, 16 Jun 2011 10:54:04 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 3265A23889BB; Thu, 16 Jun 2011 10:53:43 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1136370 - /couchdb/trunk/src/couchdb/couch_server.erl Date: Thu, 16 Jun 2011 10:53:43 -0000 To: commits@couchdb.apache.org From: fdmanana@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20110616105343.3265A23889BB@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: fdmanana Date: Thu Jun 16 10:53:42 2011 New Revision: 1136370 URL: http://svn.apache.org/viewvc?rev=1136370&view=rev Log: Fix terminate function in couch_server couch_server was not doing a synchronous shutdown of all the open databases when terminating (due to an error or server restart) because the list comprehension was filtering the couch_dbs_by_name ets table entries with a wrong pattern. Patch by Andrey Somov. Thanks. Closes COUCHDB-1196. Modified: couchdb/trunk/src/couchdb/couch_server.erl Modified: couchdb/trunk/src/couchdb/couch_server.erl URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_server.erl?rev=1136370&r1=1136369&r2=1136370&view=diff ============================================================================== --- couchdb/trunk/src/couchdb/couch_server.erl (original) +++ couchdb/trunk/src/couchdb/couch_server.erl Thu Jun 16 10:53:42 2011 @@ -151,9 +151,11 @@ init([]) -> start_time=httpd_util:rfc1123_date()}}. terminate(_Reason, _Srv) -> - [couch_util:shutdown_sync(Pid) || {_, {Pid, _LruTime}} <- - ets:tab2list(couch_dbs_by_name)], - ok. + lists:foreach( + fun({_, {_, Pid, _}}) -> + couch_util:shutdown_sync(Pid) + end, + ets:tab2list(couch_dbs_by_name)). all_databases() -> {ok, #server{root_dir=Root}} = gen_server:call(couch_server, get_server),