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

Paul Shannon pshannon at systemsbiology.org
Wed Oct 27 20:57:07 CEST 2010


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>

Key pieces of the user's bug report, running a thoroughly up-to-date R and bioc installation on Windows XP 64-bit, sp2, 12 GB Ram:

> library("RCytoscape")
> ?getGraph
  starting httpd help server ... done    # this might be significant.  I don't know what ports are used.

> ...  # create graphNEL, add nodes

> cw <- CytoscapeWindow ('vignette', graph=g)
   nodes have no label attribute -- adding default labels   # a normal warning from RCytoscape
   Entity 'nbsp' not defined                                # XMLRPC apparently sees ' '
   Entity 'nbsp' not defined
   Opening and ending tag mismatch: BR line 21 and font     # <br> <font>
   Opening and ending tag mismatch: BR line 20 and p        # <p>
   AttValue: " or ' expected
   Couldn't find end of Start Tag P line 25
   ...
   Premature end of data in tag body line 5
   Premature end of data in tag html line 1
   Error in convertToR(xmlParse(node, asText = TRUE)) :    # this line, and probably the preceeding lines, are  from the XMLRPC package
     error in evaluating the argument 'node' in selecting a method for function 'convertToR'

This looks for all the world like XML complaining about HTML.

I found this account of the httpd server (The R Journal Vol. 1/2, December 2009). 

   At a high level the goal of the server is to accept connections from browsers, convert each HTTP 
   request on a TCP/IP port into a call to an R function and deliver the result back to the browser.

   ... Instead, a general asynchronous server infrastructure had to be created which handles 
   multiple simultaneous connections and is yet able to synchronize them into synchronous 
   calls of the R evaluator. 

Does anyone have any insight into what might be going on here?   I've asked the gentleman who reported the bug to try again with no httpd help server running.

Thanks,

 - Paul



More information about the Bioc-devel mailing list