`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. >
