[R] R crash with ATLAS precompiled Rblas.dll on Windows XP Core2 Duo

Law, Jason jason.law at BES.CI.PORTLAND.OR.US
Tue Jul 8 18:58:25 CEST 2008


I noticed a problem using R 2.7.1 on Windows XP SP2 with the precompiled
Atlas Rblas.dll.  Running the code below causes R to crash.  I started R
using Rgui --vanilla and am using the precompiled Atlas Rblas.dll from
cran.fhcrc.org dated 17-Jul-2007 05:04 for Core2 Duo.

The code that causes the crash:

x <- rnorm(100)
y <- rnorm(100)
z <- rnorm(100)
loess(z ~ x * y)

loess(z ~ x) does not cause a crash using the Atlas BLAS and neither does
running the above code with the Rblas.dll that came with R 2.7.1.  In
addition, the code runs fine using the Atlas BLAS under R 2.6.2.

The windows error information that is printed to the screen when R closes:

AppName: rgui.exe	 AppVer: 2.71.45970.0	 ModName: rblas.dll
ModVer: 2.51.42199.0	 Offset: 000501cc


sessionInfo returns:

R version 2.7.1 (2008-06-23) 
i386-pc-mingw32 

locale:
LC_COLLATE=English_United States.1252;LC_CTYPE=English_United
States.1252;LC_MONETARY=English_United
States.1252;LC_NUMERIC=C;LC_TIME=English_United States.1252

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base

I checked the R FAQ, R for Windows FAQ, and the README associated with the
Atlas BLAS on CRAN and couldn't find any information related to possible
crash causes.  I've used the ATLAS BLAS for about 6 months on this machine
(it's a new machine) with R 2.6.2.

Using debug(stats:::simpleLoess), I've found that the crash occurs on the
first iteration of the line:

z <- .C(R_loess_raw, as.double(y), as.double(x), 
                as.double(weights), as.double(robust), as.integer(D), 
                as.integer(N), as.double(span), as.integer(degree), 
                as.integer(nonparametric), as.integer(order.drop.sqr), 
                as.integer(sum.drop.sqr), as.double(span * cell), 
                as.character(surf.stat), fitted.values = double(N), 
                parameter = integer(7), a = integer(max.kd), 
                xi = double(max.kd), vert = double(2 * D), vval = double((D
+ 
                  1) * max.kd), diagonal = double(N), trL = double(1), 
                delta1 = double(1), delta2 = double(1), as.integer(surf.stat
== 
                  "interpolate/exact"))

After that, I'm kind of stuck in terms of tracking it down.

Thanks for any input,

Jason Law
City of Portland, OR



More information about the R-help mailing list