[ 
https://issues.apache.org/jira/browse/COUCHDB-2365?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Mike Wallace updated COUCHDB-2365:
----------------------------------
             Priority: Minor  (was: Major)
    Affects Version/s: 1.5.1
                       1.6.0
        Fix Version/s: 2.0.0

> 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)

Reply via email to