[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: r-bioc-complexheatmap: Error: C stack usage in test suite



On 21 July 2020 at 21:49, Andreas Tille wrote:
| On Tue, Jul 21, 2020 at 11:51:05AM -0500, Dirk Eddelbuettel wrote:
| > | $ R --no-save < test-dendrogram.R
| > | ...
| > | > #  stack overflow problem
| > | > m = matrix(1, nrow = 1000, ncol = 10)
| > | > m[1, 2] = 2
| > | > dend = as.dendrogram(hclust(dist(m)))
| > | > grid.dendrogram(dend, test = T)
| > | Error: C stack usage  7969380 is too close to the limit
| > | Execution halted
| > 
| > You almost surely want the xvfb wrapper here as grid likely opens a device.
| 
| I've tried with xvfb and without - there is no difference.  All other
| tests are running nicely without xvfb.  I even tried the test on the
| Linux console where no X server is running on my local machine and there
| the error above did not happen.

Yes. It also generates a different (earlier) error when there is graphics
device to be had.  (That said, the same logic that made us wrap R CMD build
and INSTALL with xvfb-run makes me think we want it for tests.)

|  
| > | fails.  This is not the case if the resulting package is installed on a
| > | normal machine - but in the CI environment which is restricted this
| > | failure appears reproducibly.
| > | 
| > | Do you have any idea what might cause this issue?
| > 
| > An obvious error in the package is unconditional use in the test file of the
| > suggested package:
| > 
| > edd@rob:/tmp/downloaded_packages/ComplexHeatmap/tests$ R --no-save < test-dendrogram.R 
| > 
| > [... stuff omitted ...]
| > 
| > R> library(GetoptLong)
| > R> 
| > R> if(!exists("cut_dendrogram")) {
| > +       cut_dendrogram = ComplexHeatmap:::cut_dendrogram
| > + }
| > R> 
| > R> library(dendextend)
| > Error in library(dendextend) : there is no package called ‘dendextend’
| > Execution halted
| 
| This error does not occure since r-cran-dendextend is inside the Test-Depends
| and installed inside the minimum chroot.  So the problem is not connected
| to a lack of the dendextend package.

I think you misread/misunderstood what I wrote. I told the package author to
not test unconditionally for a conditional package. "One day" CRAN and
BioConductor will be more strict about that.

It's your call to install all suggested packages for regressions tests. I
consider that to be a mistake, but I made that case often enough in the past
to not any appetite now to repeat it.

Dirk

-- 
https://dirk.eddelbuettel.com | @eddelbuettel | edd@debian.org


Reply to: