couchdb-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "ASF GitHub Bot (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (COUCHDB-2365) Failing multipart requests leave dangling couch_stream processes
Date Wed, 29 Oct 2014 23:22:34 GMT

    [ https://issues.apache.org/jira/browse/COUCHDB-2365?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14189265#comment-14189265
] 

ASF GitHub Bot commented on COUCHDB-2365:
-----------------------------------------

Github user asfgit closed the pull request at:

    https://github.com/apache/couchdb-couch/pull/11


> Failing multipart requests leave dangling couch_stream processes
> ----------------------------------------------------------------
>
>                 Key: COUCHDB-2365
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-2365
>             Project: CouchDB
>          Issue Type: Bug
>      Security Level: public(Regular issues) 
>          Components: Database Core
>    Affects Versions: 1.5.1, 1.6.0
>            Reporter: Mike Wallace
>            Priority: Minor
>             Fix For: 2.0.0
>
>
> Multipart requests spawn a couch_stream gen_server when couch_stream:open/2 is called
in couch_db:with_stream/3 [1]. Currently this gen_server will only be stopped when couch_db:with_stream/3
calls couch_stream:close/1 which happens after the callback Fun is executed [2]. If anything
goes wrong before closing the stream then the couch_stream gen_server will exit as long as
the process that opened the stream exits with a reason other than normal (since the processes
are linked). However, if the process which opened the stream exits with reason normal before
closing the stream then the process will live indefinitely.
> Ordinarily this is not particularly bothersome however if the volume of failing multipart
requests is high the resources consumed by these dangling processes can be significant (consuming
all available memory in the worst case).
> This can be reproduced by making failing multipart requests and observing the number
of processes with initial call couch_stream:init/1 e.g.: https://gist.github.com/mikewallace1979/baad43ecfc01506ba8c5
> [1] https://github.com/apache/couchdb-couch/blob/master/src/couch_db.erl#L1108-L1121
> [2] https://github.com/apache/couchdb-couch/blob/master/src/couch_db.erl#L1123-L1133



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Mime
View raw message