You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@couchdb.apache.org by "Robert Newson (JIRA)" <ji...@apache.org> on 2012/09/27 19:16:07 UTC

[jira] [Updated] (COUCHDB-1520) Replicator does not close Socket in pull from HTTPS source

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

Robert Newson updated COUCHDB-1520:
-----------------------------------

    Fix Version/s: 1.3
    
> Replicator does not close Socket in pull from HTTPS source
> ----------------------------------------------------------
>
>                 Key: COUCHDB-1520
>                 URL: https://issues.apache.org/jira/browse/COUCHDB-1520
>             Project: CouchDB
>          Issue Type: Bug
>          Components: Replication
>    Affects Versions: 1.2
>         Environment: Ubuntu 8.04, Erlang 14.b.4 64bit
>            Reporter: Simon Eisenmann
>            Priority: Critical
>              Labels: close, https, leak, replication, socket, ssl
>             Fix For: 1.3
>
>
> When replicating using pull replication from an HTTPS-CouchDB source, the client socket does not go away, but stays in CLOSE_WAIT forever, This will crash the whole CouchDB server, as it will run out of file descriptors.
> This did not happen with CouchDB 1.1.
> I experimented with changing the socket options for the replicator client, though no luck. The only change i saw  was then running with keepalive (which was the default), also the server side (pull peer) leaks a connection. Now i am running with socket_options = [{keepalive, false}, {send_timeout, 10000}, {send_timeout_close, true}]
>  which does not change a thing other than on the client side is leaking connections.
> To test this, you need the PID of the couchdb's beam process (ps aux |grep beam)
> Then you list all the open files of this PID with "lsof -p $PID"
> First you will see the pull connections beeing in ESTABLISHED state for a wile (even when the replication itself is long finished), Then at some point it switches to CLOSE_WAIT. The client side socket needs to be closed by the replicator to go away and release the resources (eg. file pointer).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira