You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by "Paul Carey (JIRA)" <ji...@apache.org> on 2008/12/20 17:39:44 UTC

[jira] Created: (COUCHDB-180) Too many view files may be held open, rendering CouchDB unusable

Too many view files may be held open, rendering CouchDB unusable
----------------------------------------------------------------

                 Key: COUCHDB-180
                 URL: https://issues.apache.org/jira/browse/COUCHDB-180
             Project: CouchDB
          Issue Type: Bug
          Components: JavaScript View Server
    Affects Versions: 0.9
         Environment: OS X 10.5.5
            Reporter: Paul Carey
         Attachments: test_for_open_files.js

On trunk (rev 728285), CouchDB will hold onto view files for a certain request pattern. 

Once a threshold of open files has been exceeded, all requests to CouchDB will result in {error,emfile}.

The attached test case runs through the following sequence n times.

delete db
create db
create doc
query non existant view
create view
query view

On my machine a value of about 250 for n is enough for the threshold to be exceeded. Regardless, running lsof clearly shows CouchDB holding multiple refs to the same view file.

 

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (COUCHDB-180) Too many view files may be held open, rendering CouchDB unusable

Posted by "Paul Joseph Davis (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/COUCHDB-180?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Paul Joseph Davis updated COUCHDB-180:
--------------------------------------

    Attachment: COUCHDB-180.patch

In this particular case the error is stemming from the fact that the gen_server in couch_view_group.erl was not closing it's view file descriptor contained in the Group. Looking around I noticed that there are a couple places where we're not closing the file descriptor properly so I just put the call to close in terminate/2.

I don't actually think this is the correct patch to apply because I'm pretty sure there are corner cases in temp views that could cause breakage. (Specifcally, one temp view hitting a reset condition and then causing the entire file to be closed even out from underneath other temp views.)

The proper answer to this I think will be to make sure that all view files are opened in the ref_counted mode which also means that couch_view will require work to deref all it's temp view file handles etc. Damien mentioned at one point that the fd even for permanent views should be opened by couch_view. This could work but a few of the reset functions will need to be switched from an outright delete to a truncate so as to not confuse couch_view.

Anyone have other ideas?

> Too many view files may be held open, rendering CouchDB unusable
> ----------------------------------------------------------------
>
>                 Key: COUCHDB-180
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-180
>             Project: CouchDB
>          Issue Type: Bug
>          Components: JavaScript View Server
>    Affects Versions: 0.9
>         Environment: OS X 10.5.5
>            Reporter: Paul Carey
>         Attachments: COUCHDB-180.patch, test_for_open_files.js
>
>
> On trunk (rev 728285), CouchDB will hold onto view files for a certain request pattern. 
> Once a threshold of open files has been exceeded, all requests to CouchDB will result in {error,emfile}.
> The attached test case runs through the following sequence n times.
> delete db
> create db
> create doc
> query non existant view
> create view
> query view
> On my machine a value of about 250 for n is enough for the threshold to be exceeded. Regardless, running lsof clearly shows CouchDB holding multiple refs to the same view file.
>  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Updated: (COUCHDB-180) Too many view files may be held open, rendering CouchDB unusable

Posted by "Paul Carey (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/COUCHDB-180?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Paul Carey updated COUCHDB-180:
-------------------------------

    Attachment: test_for_open_files.js

> Too many view files may be held open, rendering CouchDB unusable
> ----------------------------------------------------------------
>
>                 Key: COUCHDB-180
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-180
>             Project: CouchDB
>          Issue Type: Bug
>          Components: JavaScript View Server
>    Affects Versions: 0.9
>         Environment: OS X 10.5.5
>            Reporter: Paul Carey
>         Attachments: test_for_open_files.js
>
>
> On trunk (rev 728285), CouchDB will hold onto view files for a certain request pattern. 
> Once a threshold of open files has been exceeded, all requests to CouchDB will result in {error,emfile}.
> The attached test case runs through the following sequence n times.
> delete db
> create db
> create doc
> query non existant view
> create view
> query view
> On my machine a value of about 250 for n is enough for the threshold to be exceeded. Regardless, running lsof clearly shows CouchDB holding multiple refs to the same view file.
>  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Closed: (COUCHDB-180) Too many view files may be held open, rendering CouchDB unusable

Posted by "Damien Katz (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/COUCHDB-180?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Damien Katz closed COUCHDB-180.
-------------------------------

       Resolution: Fixed
    Fix Version/s: 0.9

> Too many view files may be held open, rendering CouchDB unusable
> ----------------------------------------------------------------
>
>                 Key: COUCHDB-180
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-180
>             Project: CouchDB
>          Issue Type: Bug
>          Components: JavaScript View Server
>    Affects Versions: 0.9
>         Environment: OS X 10.5.5
>            Reporter: Paul Carey
>             Fix For: 0.9
>
>         Attachments: COUCHDB-180.patch, test_for_open_files.js
>
>
> On trunk (rev 728285), CouchDB will hold onto view files for a certain request pattern. 
> Once a threshold of open files has been exceeded, all requests to CouchDB will result in {error,emfile}.
> The attached test case runs through the following sequence n times.
> delete db
> create db
> create doc
> query non existant view
> create view
> query view
> On my machine a value of about 250 for n is enough for the threshold to be exceeded. Regardless, running lsof clearly shows CouchDB holding multiple refs to the same view file.
>  

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.