[R-sig-Debian] make check reg-tests-1b.R fails with Ubuntu R
Michael Rutter
mar36 at psu.edu
Wed Sep 14 16:47:07 CEST 2011
On 09/14/2011 10:18 AM, Andrew Piskorski wrote:
> Today I built R from source on a 32-bit Ubuntu 10.04.3 LTS box, and
> saw that the "make check" tests/reg-tests-1b.R failed. From the
> output at the end of my "tests/reg-tests-1b.Rout.fail" file, the
> problem is appearing in the "identical(z, x %*% t(y))" test code
> below.
>
> I then tried the stock R provided by the Ubuntu r-base-core binary
> package, and to my surprise, it failed the test in exactly the same
> way!
>
> So this is NOT solely a problem with my from-source build (I merely
> happened to notice it first that way). It probably indicates some
> sort of system-wide bug or misconfiguration, at least on my machine,
> perhaps on others' too.
>
> Could someone please advise me: What is the significance of this test
> from reg-tests-1b.R failing, and what should I do to further track it
> down and fix it?
>
> Thanks! Much more detail is below.
>
> ------------------------------------------------------------
>
> # Here's the excerpt from the "make check" output where I first
> # noticed the problem:
>
> running regression tests ...
> make[3]: Entering directory `/net/brain/home/local-x86_32-ubuntu/nobackup/co-R/R-2-12-branch/Build-x86_32/tests'
> running code in '../../tests/reg-tests-1.R' ... OK
> running code in '../../tests/reg-tests-1b.R' ...make[3]: *** [reg-tests-1b.Rout] Error 1
> make[3]: Leaving directory `/net/brain/home/local-x86_32-ubuntu/nobackup/co-R/R-2-12-branch/Build-x86_32/tests'
> make[2]: *** [test-Reg] Error 2
> make[2]: Leaving directory `/net/brain/home/local-x86_32-ubuntu/nobackup/co-R/R-2-12-branch/Build-x86_32/tests'
> make[1]: *** [test-all-basics] Error 1
> make[1]: Leaving directory `/net/brain/home/local-x86_32-ubuntu/nobackup/co-R/R-2-12-branch/Build-x86_32/tests'
> make: *** [check] Error 2
>
>
> # This is the Ubuntu machine where I found the error:
>
> andy at n88:~$ lsb_release -d
> Description: Ubuntu 10.04.3 LTS
> andy at n88:~$ uname -a
> Linux n88 2.6.32-33-generic #72-Ubuntu SMP Fri Jul 29 21:08:37 UTC 2011 i686 GNU/Linux
> andy at n88:~$ dpkg -l r-base-core | grep r-base
> ii r-base-core 2.10.1-2 GNU R core of statistical computation and graphics system
>
>
> # Stock Ubuntu-provided R has the same failure:
>
> andy at n88:~$ /usr/bin/R -q --vanilla
>> dtk.R.version()
> [1] "R 2.10.1, 2009-12-14, svn.rev 50720, i486-pc-linux-gnu"
>> x<- matrix(c(1, 0, NA, 1), 2, 2) ; y<- matrix(c(1, 0, 0, 2, 1, 0), 3, 2)
>> (z<- tcrossprod(x, y))
> [,1] [,2] [,3]
> [1,] NA NA 0
> [2,] 2 1 0
>> identical(z, x %*% t(y))
> [1] FALSE
>
>
> # R I just built from scratch, same failure as stock R:
>
> andy at n88:~$ /usr/local/pkg/R-2.12-branch-20110914/bin/R -q --vanilla
>> dtk.R.version()
> [1] "R 2.12.2 (Patched), 2011-03-18, svn.rev 57004, i686-pc-linux-gnu"
>> x<- matrix(c(1, 0, NA, 1), 2, 2) ; y<- matrix(c(1, 0, 0, 2, 1, 0), 3, 2)
>> (z<- tcrossprod(x, y))
> [,1] [,2] [,3]
> [1,] NA NA 0
> [2,] 2 1 0
>> identical(z, x %*% t(y))
> [1] FALSE
>
>
> # Apparently the correct output is supposed to look like this:
>
> andy at dax:~$ /usr/bin/R -q --vanilla
>> x<- matrix(c(1, 0, NA, 1), 2, 2) ; y<- matrix(c(1, 0, 0, 2, 1, 0), 3, 2)
>> (z<- tcrossprod(x, y))
> [,1] [,2] [,3]
> [1,] NA NA NA
> [2,] 2 1 0
>> identical(z, x %*% t(y))
> [1] TRUE
>
> # Note that the correct output above was run on a different machine,
> # which happens to be x86-64:
>
> andy at dax:~$ lsb_release -d
> Description: Ubuntu 10.04.3 LTS
> andy at dax:~$ uname -a
> Linux dax 2.6.32.29+drm33.13-custom #1 SMP Fri Apr 8 13:42:18 EDT 2011 x86_64 GNU/Linux
>
>
> # Function I used to print out the version number info above:
> dtk.R.version<- function() {
> patched.str<- version$status
> if (patched.str != "")
> patched.str<- paste(" (" ,patched.str ,")" ,sep="")
> paste(paste(version$language ," "
> ,paste(version[c("major","minor")] ,collapse=".")
> ,patched.str ,sep="")
> ,paste(version[c("year","month","day")] ,collapse="-")
> ,paste("svn.rev" ,version$"svn rev")
> ,version$platform
> ,sep=", " ,collapse=" ")
> }
On my i386 machine:
~/D/R> lsb_release -d
Description: Ubuntu 10.04.3 LTS
I get the following:
> dtk.R.version()
[1] "R 2.13.1, 2011-07-08, svn.rev 56322, i486-pc-linux-gnu"
> x <- matrix(c(1, 0, NA, 1), 2, 2)
> y <- matrix(c(1, 0, 0, 2, 1, 0), 3, 2)
> (z <- tcrossprod(x, y))
> identical(z, x %*% t(y))
[,1] [,2] [,3]
[1,] NA NA NA
[2,] 2 1 0
[1] TRUE
This is using the R available on CRAN. I can think of two possible causes:
1. It is an error that was found prior to 2.13.1 and has been fixed.
2. You have installed a non-standard, math-related library on your
machine that is causing the error. A LAPACK library or the Revolution
computing libraries available in Ubuntu are examples.
To test, I downgraded my R back to 2.10.1-2, the version from Ubuntu,
not from CRAN. Here are my results:
> x <- matrix(c(1, 0, NA, 1), 2, 2)
> y <- matrix(c(1, 0, 0, 2, 1, 0), 3, 2)
> (z <- tcrossprod(x, y))
[,1] [,2] [,3]
[1,] NA NA NA
[2,] 2 1 0
> identical(z, x %*% t(y))
[1] TRUE
> dtk.R.version()
[1] "R 2.10.1, 2009-12-14, svn.rev 50720, i486-pc-linux-gnu"
This leads me to believe cause number 2 is the likely culprit.
Michael
--
Dr. Michael A. Rutter
School of Science
Penn State Erie, The Behrend College
Station Road
Erie, PA 16563
http://math.bd.psu.edu/faculty/rutter
More information about the R-SIG-Debian
mailing list