`couchdb -s` should probably report the URL

On 25 Jun 2010, at 16:08, Benoit Chesneau (JIRA) wrote:

> 
>     [ 
> https://issues.apache.org/jira/browse/COUCHDB-393?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
>  ]
> 
> Benoit Chesneau updated COUCHDB-393:
> ------------------------------------
> 
>    Attachment: couch_uri.patch
> 
> Here is the patch. It take couch.uri path from the configuration file . by 
> default it's in %localstatelibdir%/couch.uri .
> 
> It save the uti http://IP:PORT/ on one line when couchdb start. If it's ok 
> for you I will be happy to commit it today.
> 
>> Cannot discover currently running http port if ini file specifies port 0
>> ------------------------------------------------------------------------
>> 
>>                Key: COUCHDB-393
>>                URL: https://issues.apache.org/jira/browse/COUCHDB-393
>>            Project: CouchDB
>>         Issue Type: Improvement
>>         Components: HTTP Interface
>>   Affects Versions: 0.9
>>        Environment: Ubuntu 9.04
>>           Reporter: Stuart Langridge
>>           Assignee: Noah Slater
>>           Priority: Blocker
>>            Fix For: 0.12
>> 
>>        Attachments: couch_uri.patch, couchctl.patch
>> 
>> 
>> It is currently not possible, if the ini file specifies port 0 as the http 
>> port (so that the OS chooses a random port) to discover which port the OS 
>> actually chose.
>> It would be nice if the currently running port was made available in the 
>> statusline output (couchdb -s), but a log statement would be adequate; some 
>> way that an external script can discover which port a running CouchDB is 
>> listening on.
>> Edited discussion from #couchdb:
>> <bitdiddle> aquarius: well at a glance it appears couch_http passes the 0 to 
>> mochiweb_http which passes it to the mochiweb_socket_server, which passes it 
>> to gen_tcp, an erlang module that lets the underlying OS assign it. 
>> mochiweb_socket_server then grabs that port and stores it. It has a get 
>> method to retrieve properties but that needs to be exposed to mochiweb_http 
>> so it would take a little work to do it. It's probably a JIRA ticket, unless 
>> someone else sees a quicker approach
>> <davisp> bitdiddle: you got that far and didn't find it?
>> <aquarius> davisp: is there a better way to find the port?
>> <davisp> oh, is that not the bind port?
>> I was just thinking a log statement
>> <aquarius> davisp: the problem is if you specify 0 as the bind port (so the 
>> OS chooses a port), how do you find out what was chosen?
>> <davisp> aquarius: you have to look at the port returned by the socket
>> aquarius: in other words, CouchDB was never written to do that
>> <davisp> AFAIK
>> <bitdiddle> davisp: I found it, just needs some work to expose it
>> <davisp> aquarius: and by do that, I mean, we never put in a statement to 
>> log that
>> <bitdiddle> mochiweb_http is the module that needs to bubble it up
>> <aquarius> davisp: I don't really mind whether it's a log statement or it's 
>> exposed to couchdb -s (the latter seems tidier to me, but whichever), I just 
>> want to be able to start couch on port 0 and then later find out which port 
>> got chosen :)
>> <davisp> aquarius: for the time being you can use something like netstat or 
>> lsof, but we'll get a log statement in there or something
> 
> -- 
> This message is automatically generated by JIRA.
> -
> You can reply to this email to add a comment to the issue online.
> 

Reply via email to