Return-Path: X-Original-To: apmail-couchdb-user-archive@www.apache.org Delivered-To: apmail-couchdb-user-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id BDBCD21AB for ; Sat, 23 Apr 2011 13:39:21 +0000 (UTC) Received: (qmail 68267 invoked by uid 500); 23 Apr 2011 13:39:20 -0000 Delivered-To: apmail-couchdb-user-archive@couchdb.apache.org Received: (qmail 68241 invoked by uid 500); 23 Apr 2011 13:39:20 -0000 Mailing-List: contact user-help@couchdb.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: user@couchdb.apache.org Delivered-To: mailing list user@couchdb.apache.org Received: (qmail 68233 invoked by uid 99); 23 Apr 2011 13:39:19 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 23 Apr 2011 13:39:19 +0000 X-ASF-Spam-Status: No, hits=-0.7 required=5.0 tests=RCVD_IN_DNSWL_LOW,SPF_PASS X-Spam-Check-By: apache.org Received-SPF: pass (nike.apache.org: domain of jon@core-apps.com designates 209.85.161.52 as permitted sender) Received: from [209.85.161.52] (HELO mail-fx0-f52.google.com) (209.85.161.52) by apache.org (qpsmtpd/0.29) with ESMTP; Sat, 23 Apr 2011 13:39:13 +0000 Received: by fxm6 with SMTP id 6so1218030fxm.11 for ; Sat, 23 Apr 2011 06:38:53 -0700 (PDT) Received: by 10.223.14.207 with SMTP id h15mr1237519faa.50.1303565933073; Sat, 23 Apr 2011 06:38:53 -0700 (PDT) MIME-Version: 1.0 Received: by 10.223.116.199 with HTTP; Sat, 23 Apr 2011 06:38:32 -0700 (PDT) In-Reply-To: References: From: Jonathan Johnson Date: Sat, 23 Apr 2011 08:38:32 -0500 Message-ID: Subject: Re: all_dbs_active error, not sure how to "fix" To: user@couchdb.apache.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-Virus-Checked: Checked by ClamAV on apache.org Great, that does sound like a candidate for what I'm seeing. Thank you! -Jon On Fri, Apr 22, 2011 at 3:49 PM, Damien Katz wrote: > There is/was a bug where the view indexer kept open a reference to the db > file forever, which was a problem with compaction leaking file handles as > well. Don't have time to look to see what's the status of the bug and fix= , > but's likely the source of your problem. > > > -Damien > > > > On 4/22/11 7:45 AM, "Jonathan Johnson" wrote: > >>As I mentioned in my email, even after killing all of my server >>processes, couch doesn't give back the open databases. >> >>I am using Erlang 5.6.5 on 64-bit, so that could very well be the >>issue. How can I tell if I'm using the version that has the bug -- is >>it fixed in the current version of Erlang? I believe I'm using erlang >>installed from yum. >> >>Thanks for your help! >>-Jon >> >> >> >>On Fri, Apr 22, 2011 at 9:36 AM, Filipe David Manana >> wrote: >>> On Fri, Apr 22, 2011 at 3:30 PM, Jonathan Johnson >>>wrote: >>>> By doing that, it will increase the number of possible open files >>>> (although I admit I'm significantly lower than my current limit). My >>>> point is that I'm never actively connecting to 130 databases, so why >>>> is couch keeping them open? Shouldn't it recycle databases that hadn't >>>> been connected to recently? >>> >>> Yes it should. I dunno, perhaps your application or library is doing >>> database accesses behind the scenes. >>> Also, if you change your machine's clock while Couch is running, I >>> think it might prevent it from properly recycling databases. >>> Finally, if you're using Erlang OTP R14B02 on a 64 bits machine, >>> there's a bug in that particular release regarding insertion in >>> ordered ets tables, which might cause Couch to not do the recycling as >>> it should. >>> >>>> >>>> -Jon >>>> >>>> >>>> On Fri, Apr 22, 2011 at 9:05 AM, Filipe David Manana >>>> wrote: >>>>> Look at the "max_dbs_open" configuration parameter in the .ini files >>>>> and increase it to a higher value. >>>>> >>>>> On Fri, Apr 22, 2011 at 3:01 PM, Jonathan Johnson >>>>>wrote: >>>>>> I'm running couchdb 1.0.2 on CentOS 5.5. The databases are on an ext= 4 >>>>>> formatted drive. >>>>>> >>>>>> I have 209 databases, but they're never truly active at the same >>>>>>time. >>>>>> Our stack is written in ruby. The web layer switches between active >>>>>> databases depending on the url. However, we have 16 web processes, s= o >>>>>> in theory the maximum number of truly active databases is 16. >>>>>> >>>>>> We also have a daemon process that loops through a chunk of the >>>>>> databases periodically. However, it's one thread, and as such also >>>>>> only truly works with one database at a time. >>>>>> >>>>>> My understanding is that CouchRest doesn't keep HTTP connections >>>>>>alive >>>>>> for multiple requests, but I don't know that for sure. I have even >>>>>> gone as far as putting in manual garbage collection calls in my >>>>>>daemon >>>>>> to ensure that any stranded connection objects will be collected. >>>>>> >>>>>> With all of that, however, I eventually get into a state where I get >>>>>> the all_dbs_active error. It doesn't happen often -- last time was >>>>>> nearly 3 weeks ago. However, once it gets in the state, restarting >>>>>>all >>>>>> of my clients doesn't release the databases. The only way to recover >>>>>> is to restart couch. >>>>>> >>>>>> open_os_files was at 2308 before I restarted it this morning, which >>>>>>is >>>>>> less than the current limit set (4096). >>>>>> >>>>>> I guess I feel like this is an issue inside of couch because even if >>>>>>I >>>>>> quit all of my active server processes that connect to couch, couch >>>>>> never frees up the open databases. I can hit it one-off from my >>>>>> browser and still get the error, even though I'm the only active >>>>>> connection. >>>>>> >>>>>> Has anyone else seen this? Any ideas of what I can try to prevent >>>>>>this >>>>>> from happening? >>>>>> >>>>>> Thanks! >>>>>> -Jon >>>>>> >>>>> >>>>> >>>>> >>>>> -- >>>>> Filipe David Manana, >>>>> fdmanana@gmail.com, fdmanana@apache.org >>>>> >>>>> "Reasonable men adapt themselves to the world. >>>>> =A0Unreasonable men adapt the world to themselves. >>>>> =A0That's why all progress depends on unreasonable men." >>>>> >>>> >>> >>> >>> >>> -- >>> Filipe David Manana, >>> fdmanana@gmail.com, fdmanana@apache.org >>> >>> "Reasonable men adapt themselves to the world. >>> =A0Unreasonable men adapt the world to themselves. >>> =A0That's why all progress depends on unreasonable men." >>> > > >