Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Minimal code to generate "#> Error in x$.self$finalize() : attempt to apply non-function" #218

Closed
charliejhadley opened this issue May 19, 2021 · 5 comments

Comments

@charliejhadley
Copy link

I think this is a minimal code sample to generate this currently mysterious (#165 (comment)) error:

Error in x$.self$finalize() : attempt to apply non-function

I'm able to generate this message on macOS, Windows and Linux:

Windows

library(terra)
#> terra version 1.2.10
# remotes::install_github("geocompr/geocompkg")
library(spDataLarge)
nz_elev <- rast(nz_elev)
plot(nz_elev)
# Error in (function (x)  : attempt to apply non-function
# Error in x$.self$finalize() : attempt to apply non-function
# Error in x$.self$finalize() : attempt to apply non-function
# Error in x$.self$finalize() : attempt to apply non-function
# Error in (function (x)  : attempt to apply non-function
sessionInfo()
#> R version 4.0.5 (2021-03-31)
#> Platform: x86_64-w64-mingw32/x64 (64-bit)
#> Running under: Windows 10 x64 (build 19042)
#> 
#> Matrix products: default
#> 
#> locale:
#> [1] LC_COLLATE=English_United Kingdom.1252 
#> [2] LC_CTYPE=English_United Kingdom.1252   
#> [3] LC_MONETARY=English_United Kingdom.1252
#> [4] LC_NUMERIC=C                           
#> [5] LC_TIME=English_United Kingdom.1252    
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] spDataLarge_0.5.1 terra_1.2-10     
#> 
#> loaded via a namespace (and not attached):
#>  [1] Rcpp_1.0.6        rstudioapi_0.13   xml2_1.3.2        knitr_1.33       
#>  [5] raster_3.4-10     magrittr_2.0.1    lattice_0.20-41   R6_2.5.0         
#>  [9] rlang_0.4.10      httr_1.4.2        stringr_1.4.0     highr_0.9        
#> [13] tools_4.0.5       grid_4.0.5        xfun_0.22         cli_2.5.0        
#> [17] withr_2.4.2       htmltools_0.5.1.1 yaml_2.2.1        digest_0.6.27    
#> [21] fs_1.5.0          ps_1.6.0          codetools_0.2-18  curl_4.3         
#> [25] mime_0.10         glue_1.4.2        evaluate_0.14     rmarkdown_2.8    
#> [29] sp_1.4-5          reprex_2.0.0      stringi_1.5.3     compiler_4.0.5

macOS

library(terra)
#> terra version 1.2.10
# remotes::install_github("geocompr/geocompkg")
library(spDataLarge)
nz_elev <- rast(nz_elev)
plot(nz_elev)
# Error in (function (x)  : attempt to apply non-function
# Error in x$.self$finalize() : attempt to apply non-function
# Error in x$.self$finalize() : attempt to apply non-function
# Error in x$.self$finalize() : attempt to apply non-function
# Error in (function (x)  : attempt to apply non-function
sessioninfo::session_info()
#> ─ Session info ───────────────────────────────────────────────────────────────
#>  setting  value                       
#>  version  R version 4.0.3 (2020-10-10)
#>  os       macOS Big Sur 10.16         
#>  system   x86_64, darwin17.0          
#>  ui       X11                         
#>  language (EN)                        
#>  collate  en_GB.UTF-8                 
#>  ctype    en_GB.UTF-8                 
#>  tz       Europe/London               
#>  date     2021-05-19                  
#> 
#> ─ Packages ───────────────────────────────────────────────────────────────────
#>  package     * version date       lib source        
#>  backports     1.2.1   2020-12-09 [1] CRAN (R 4.0.2)
#>  cli           2.5.0   2021-04-26 [1] CRAN (R 4.0.2)
#>  codetools     0.2-16  2018-12-24 [1] CRAN (R 4.0.3)
#>  crayon        1.4.1   2021-02-08 [1] CRAN (R 4.0.2)
#>  curl          4.3.1   2021-04-30 [1] CRAN (R 4.0.2)
#>  digest        0.6.27  2020-10-24 [1] CRAN (R 4.0.2)
#>  ellipsis      0.3.2   2021-04-29 [1] CRAN (R 4.0.2)
#>  evaluate      0.14    2019-05-28 [1] CRAN (R 4.0.1)
#>  fansi         0.4.2   2021-01-15 [1] CRAN (R 4.0.2)
#>  fs            1.5.0   2020-07-31 [1] CRAN (R 4.0.2)
#>  glue          1.4.2   2020-08-27 [1] CRAN (R 4.0.2)
#>  highr         0.8     2019-03-20 [1] CRAN (R 4.0.2)
#>  htmltools     0.5.1.1 2021-01-22 [1] CRAN (R 4.0.2)
#>  httr          1.4.2   2020-07-20 [1] CRAN (R 4.0.2)
#>  knitr         1.32    2021-04-14 [1] CRAN (R 4.0.3)
#>  lattice       0.20-41 2020-04-02 [1] CRAN (R 4.0.3)
#>  lifecycle     1.0.0   2021-02-15 [1] CRAN (R 4.0.2)
#>  magrittr      2.0.1   2020-11-17 [1] CRAN (R 4.0.2)
#>  mime          0.10    2021-02-13 [1] CRAN (R 4.0.3)
#>  pillar        1.6.0   2021-04-13 [1] CRAN (R 4.0.2)
#>  pkgconfig     2.0.3   2019-09-22 [1] CRAN (R 4.0.2)
#>  purrr         0.3.4   2020-04-17 [1] CRAN (R 4.0.2)
#>  R6            2.5.0   2020-10-28 [1] CRAN (R 4.0.2)
#>  raster        3.4-5   2020-11-14 [1] CRAN (R 4.0.2)
#>  Rcpp          1.0.6   2021-01-15 [1] CRAN (R 4.0.2)
#>  reprex        2.0.0   2021-04-02 [1] CRAN (R 4.0.2)
#>  rlang         0.4.11  2021-04-30 [1] CRAN (R 4.0.2)
#>  rmarkdown     2.7     2021-02-19 [1] CRAN (R 4.0.2)
#>  sessioninfo   1.1.1   2018-11-05 [1] CRAN (R 4.0.2)
#>  sp            1.4-5   2021-01-10 [1] CRAN (R 4.0.2)
#>  spDataLarge * 0.5.1   2021-05-17 [1] local         
#>  stringi       1.6.1   2021-05-10 [1] CRAN (R 4.0.2)
#>  stringr       1.4.0   2019-02-10 [1] CRAN (R 4.0.2)
#>  styler        1.4.1   2021-03-30 [1] CRAN (R 4.0.2)
#>  terra       * 1.2-10  2021-05-13 [1] CRAN (R 4.0.2)
#>  tibble        3.1.1   2021-04-18 [1] CRAN (R 4.0.2)
#>  utf8          1.2.1   2021-03-12 [1] CRAN (R 4.0.2)
#>  vctrs         0.3.8   2021-04-29 [1] CRAN (R 4.0.2)
#>  withr         2.4.2   2021-04-18 [1] CRAN (R 4.0.2)
#>  xfun          0.22    2021-03-11 [1] CRAN (R 4.0.2)
#>  xml2          1.3.2   2020-04-23 [1] CRAN (R 4.0.2)
#>  yaml          2.2.1   2020-02-01 [1] CRAN (R 4.0.2)
#> 
#> [1] /Library/Frameworks/R.framework/Versions/4.0/Resources/library

Ubuntu

library(terra)
#> terra version 1.2.10
# remotes::install_github("geocompr/geocompkg")
library(spDataLarge)
nz_elev <- rast(nz_elev)
plot(nz_elev)
# Error in (function (x)  : attempt to apply non-function
# Error in x$.self$finalize() : attempt to apply non-function
# Error in x$.self$finalize() : attempt to apply non-function
# Error in x$.self$finalize() : attempt to apply non-function
# Error in (function (x)  : attempt to apply non-function
sessionInfo()
#> R version 3.6.3 (2020-02-29)
#> Platform: x86_64-pc-linux-gnu (64-bit)
#> Running under: Ubuntu 20.04.1 LTS
#> 
#> Matrix products: default
#> BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.9.0
#> LAPACK: /usr/lib/x86_64-linux-gnu/lapack/liblapack.so.3.9.0
#> 
#> locale:
#>  [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C              
#>  [3] LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
#>  [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8   
#>  [7] LC_PAPER=en_US.UTF-8       LC_NAME=C                 
#>  [9] LC_ADDRESS=C               LC_TELEPHONE=C            
#> [11] LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#> [1] spDataLarge_0.5.1 terra_1.2-10     
#> 
#> loaded via a namespace (and not attached):
#>  [1] Rcpp_1.0.6        rstudioapi_0.13   xml2_1.3.2        knitr_1.33       
#>  [5] raster_3.4-10     magrittr_2.0.1    lattice_0.20-44   R6_2.5.0         
#>  [9] rlang_0.4.11      stringr_1.4.0     highr_0.9         httr_1.4.2       
#> [13] tools_3.6.3       grid_3.6.3        xfun_0.23         cli_2.5.0        
#> [17] withr_2.4.2       htmltools_0.5.1.1 yaml_2.2.1        digest_0.6.27    
#> [21] fs_1.5.0          codetools_0.2-16  curl_4.3.1        mime_0.10        
#> [25] glue_1.4.2        evaluate_0.14     rmarkdown_2.8     sp_1.4-5         
#> [29] reprex_2.0.0      stringi_1.6.2     compiler_3.6.3
@rhijmans
Copy link
Member

Thank you. Linking this to #30.

@kadyb
Copy link
Contributor

kadyb commented May 19, 2021

I tried to reproduce it on Windows 8.1 (8 GB) and Linux (64 GB) but it works fine for me. From my observations, this error is very random and executing the same code doesn't always return this error.

Probably the posted code can be simplified to the following form to not download 60 dependent packages:

library("terra")
download.file("https://github.com/Nowosad/spDataLarge/raw/master/data/nz_elev.rda",
              "nz_elev.rda", mode = "wb")
load("nz_elev.rda")
nz_elev = rast(nz_elev)
plot(nz_elev)
#> Error in x$.self$finalize() : attempt to apply non-function
#> Error in x$.self$finalize() : attempt to apply non-function
#> Error in x$.self$finalize() : attempt to apply non-function
#> Error in (function (x)  : attempt to apply non-function
#> Error in (function (x)  : attempt to apply non-function
#> Error in x$.self$finalize() : attempt to apply non-function
#> Error in (function (x)  : attempt to apply non-function

Edit: Reproduced after PC reboot.

@rhijmans
Copy link
Member

rhijmans commented May 19, 2021

I get the messages the first time I run this, in a new R session (no need to reboot the computer, for me). Here with a further refined approach.

library("terra")
library("raster")
#terra version 1.2.13
fnz <- "nz_elev.rda"
if (!file.exists(fnz)) {
 download.file("https://github.com/Nowosad/spDataLarge/raw/master/data/nz_elev.rda", fnz, mode = "wb")
}
load("nz_elev.rda")
nz <- rast(nz_elev)
plot(nz)
#Error in (function (x)  : attempt to apply non-function
#Error in x$.self$finalize() : attempt to apply non-function
#Error in x$.self$finalize() : attempt to apply non-function
#Error in x$.self$finalize() : attempt to apply non-function
#Error in (function (x)  : attempt to apply non-function

@ailich
Copy link
Contributor

ailich commented Jan 5, 2022

It may be worth sending out the minimal example to the Rcpp developers listserv. Perhaps someone on there may be able to provide some insight into why this occurs.

@rhijmans
Copy link
Member

It appears that this case has now been fixed; and hopefully most, if not all, other cases as well.
Please open a new issue if you find another case of these messages with terra >= 1.6-20

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants