[Rd] capabilities() and non-catchable messages

Henrik Bengtsson hb at maths.lth.se
Tue Jun 28 11:09:43 CEST 2005

Prof Brian Ripley wrote:
> Do you have DISPLAY set pointing to an X11 server you do not have 
> access to?  It seems so.  The solution is to set your X11 settings 
> properly.
> This is coming from Xlib (XOpenDisplay, I believe) and so is not an R 
> error or warning, and is not output on an R connection but on a  C file.

Another clear answer/hint!  The sysadms of the host system just got back 
to me and said that they set the DISPLAY on purpose in order to generate 
bitmap graphics in R using X11.  The thing was that during the few days 
when I was testing my plugin, the X11 server was unreachable due to DNS 
problems after a power failure. There is always a simple answer ;)



> On Mon, 20 Jun 2005, Henrik Bengtsson wrote:
>>Just for the record (not a request for fix) and an ad hoc workaround if
>>anyone needs it:
>>Running an R script as a plugin on a remote Suse Linux 8.2 with R v2.1.0
>>(2005-04-18), I have noticed that capabilities() generates (to standard
>>  Xlib: connection to "base:0.0" refused by server
>>  Xlib: Client is not authorized to connect to Server
>>which cannot be caught by tryCatch();
>>  tryCatch({
>>    print(capabilities());
>>  }, condition=function(c) {
>>    cat("Condition caught:\n");
>>    str(c);
>>  })
>>because it is not a 'condition' (error or warning).
>>Since source() calls capabilities("iconv") this messages always show up.
>>My R plugin loads custom code using source() and since the standard
>>error from the plugin is checked for messages, the host system
>>interprets this as if something problematic has occured.
>>The workaround that I use now is to redefine capabilities() temporarily
>>(since I do not need "iconv" support):
>> orgCapabilities <- base::capabilities;
>> basePos <- which(search() == "package:base"));
>> assign("capabilities", function(...) FALSE, pos=basePos);
>> source(<my file>)
>> basePos <- which(search() == "package:base"));
>> assign("capabilities", orgCapabilities, pos=basePos);
>> rm(orgCapabilities)
>>R-devel at r-project.org mailing list

More information about the R-devel mailing list