[Bioc-devel] curious bug: maybe the R httpd help server interferes with XMLRPC?

Henrik Bengtsson hb at stat.berkeley.edu
Wed Oct 27 21:52:42 CEST 2010


On Wed, Oct 27, 2010 at 12:06 PM, Dan Tenenbaum <dtenenba at fhcrc.org> wrote:
> On Wed, Oct 27, 2010 at 11:57 AM, Paul Shannon
> <pshannon at systemsbiology.org>wrote:
>
>> A very odd bug was reported to me this morning.  Maybe somebody on this
>> list will have some insight?
>>
>> My hypothesis is far-fetched, but it seems to fit the evidence:  in some
>> rare circumstances, messages to or from the R httpd help server get mingled
>> in with the XMLRPC transmissions upon which RCytoscape depends.  The XMLRPC
>> package, or the XML package upon which it depends, understandably balks when
>> sent   <font> <br> and <p>
>>
>>
>
> Paul,
>
> If you set:
> options("help_type"="html")
> and then search for help for a function, like so:
> ?ls
> It will launch a page in a browser window and you can see what port the help
> server is on.
> When I do this, I get:
> http://127.0.0.1:19535/library/base/html/ls.html
>
> Then I quit R and do it again, and get:
> http://127.0.0.1:23172/library/base/html/ls.html
>
> So it appears that R chooses a new (random?) port each time.

Correct. This is in order to make it possible for multiple R sessions
to have their own help system running independently of the others.

There is an R options called 'help.ports' which allows you to specify
the set of ports you want it to randomize from.  If you specify a
single port number, you'll get a deterministic port, e.g.

options(help.ports=2120);

I use this, or more precisely, I set the port number to reflect the R
version running but adding the following to my ~\.Rprofile startup
script:

local({
  port <- sum(c(1e3,10)*as.double(R.Version()[c("major", "minor")]));
  options(help.ports=port);
});

(local({...}) is used in order not to clutter up/overwrite the global
environment with temporary variable 'port').

The option 'help.ports' is not document under help("options") but
under help("startDynamicHelp", package="tools").  I drop a note to
R-devel.

/Henrik

>
> It is possible that R could be trying to use the ports that RCytoscape wants
> to use.
>
> Can you ask the user to quit R and try again and see if the conflict recurs?
> Dan
>
>        [[alternative HTML version deleted]]
>
> _______________________________________________
> Bioc-devel at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/bioc-devel
>



More information about the Bioc-devel mailing list