2016-02-17 2 views
13

die .Internal(La_rs(x,FALSE)) Aufruf innerhalb der eigen Funktion verwendet innerhalb fields:::Krig.engine.default verursacht meine R-Konsole [1] zum Absturz, nachdem es während einer ausgelöst wird großes Skript..Internal (La_rs (x, FALSE)) stürzt R nach langen (reproduzierbar) Skript auf Windows nur

Ich bin sicher, dass das die Linie ist, die die Detonation verursacht. jedoch die gleiche Linie nicht auf eine frische Sitzung Absturz mit:

x <- structure(c(0.00251355321405019, -0.000589785531216647, -0.000172411748626129, -0.000589785531217227, 0.000897505637785858, -0.000714600035538855, -0.000172411748626269, -0.000714600035538766, 0.0), .Dim = c(3L, 3L)) 
.Internal(La_rs(x,FALSE)) 

Sie diese Konsole Absturz mit den folgenden drei Zeilen wiedergeben kann (dauert ca. 10 Minuten):

# install.packages(c("MonetDB.R", "MonetDBLite" , "survey" , "SAScii" , "descr" , "downloader" , "digest" , "sas7bdat" , "R.utils" ,"survey","ggplot2","scales","mapproj","sqldf","maptools","raster","rgeos","stringr","plyr","mgcv","spatstat","rgeos") , repos=c("http://dev.monetdb.org/Assets/R/", "http://cran.rstudio.com/")) 
# path.to.7z <- "7za"  # macintosh/unix users need to specify 7z 
# setwd("C:/My Directory/") 
# warning: some large downloads 
downloader::source_url("https://raw.githubusercontent.com/davidbrae/swmap/8eecde1683efab65a7e27eb7c92e7967a98dc639/how%20to%20map%20the%20american%20community%20survey.R" , prompt = FALSE) 

leider das Beispiel isn weniger minimal, der Absturz verschwunden, wenn ich verschiedene Dinge entfernt ..

22.02.2016 edit: noch schlimmer, wenn ich ein Skript versuchen, den Absturz selbst auslösen, es stirbt nicht!

downloader::source_url("https://gist.githubusercontent.com/ajdamico/0c256ed3a77d77eecfd6/raw/ce0570effd37c6384f2e27f1b38335078adcb49d/La_rs_bughunt.R",echo=T,prompt=F) 

danke!

[1] R-Version 3.2.3 (2015.12.10) Plattform: x86_64-w64-mingw32/x64 (64-Bit)

, wenn ich das ganze Skript auf einmal ausführen, R ohne Abstürze Informationen in Rterm.exe. aber wenn ich das Skript in zwei Teile brechen, gibt R mir diesen Fehler:

> x 
       [,1]   [,2]   [,3] 
[1,] 0.0025135532 -0.0005897855 -0.0001724117 
[2,] -0.0005897855 0.0008975056 -0.0007146000 
[3,] -0.0001724117 -0.0007146000 0.0
> .Internal(La_rs(x,TRUE)) 
Error: 'a' must be a complex matrix 

ein bisschen mehr Debug-Info: Es sieht aus wie die .Internal() Funktion La_rs irgendwie zerstört wurde?

> debug::mtrace(.Internal(La_rs(x,TRUE))) 
Error in debug::mtrace(.Internal(La_rs(x, TRUE))) : 
    Dunno wot to do with .Internal(La_rs(x, TRUE)) 
> x 
       [,1]   [,2]   [,3] 
[1,] 0.0025135532 -0.0005897855 -0.0001724117 
[2,] -0.0005897855 0.0008975056 -0.0007146000 
[3,] -0.0001724117 -0.0007146000 0.0
> class(x) 
[1] "matrix" 
> .Internal(La_rs(x,FALSE)) 
Error: 'a' must be a complex matrix 
> .Internal(La_rs(x,TRUE)) 
Error: 'a' must be a complex matrix 
> .Internal(La_rs(1,TRUE)) 
Error: 'a' must be a complex matrix 
> .Internal(La_rs(matrix(1,2,3,4),TRUE)) 
Error: 'a' must be a complex matrix 

21. Februar 2016 Update: konnte ich diesen Fehler reproduzieren (ohne zu sterben R) auf einem zweiten Windows-Skript. Hier ist die permanente Verbindung

# install.packages(c('fields' , 'maps' , 'ggplot2' , 'raster' , 'sqldf' , 'rgeos' , 'rgdal' , 'sp' , 'digest' , 'ff' , 'descr' , 'SAScii' , 'stringr' , 'R.utils' , 'R.oo' , 'RCurl' , 'MonetDBLite' , 'MonetDB.R' , 'survey' , 'downloader') , repos=c("http://dev.monetdb.org/Assets/R/", "http://cran.rstudio.com/")) 
# setwd("S:/temp/PNAD") 
# warning: some large downloads 
downloader::source_url("https://raw.githubusercontent.com/davidbrae/swmap/4501e2c8927faaffa02c92d3e40d16beb44bca92/how%20to%20map%20the%20pesquisa%20nacional%20por%20amostra%20de%20domicilios.R" , echo = TRUE , prompt = FALSE) 

und hier ist was passiert an der Stelle des Fehlers. wieder La_rs erscheint beschädigt.

> for (i in 1:4){ 
+ 
+  this.krig.fit <- 
+    Krig(
+      cbind(x$x , x$y) , 
+      x[ , paste0('occcat' , i) ] , 
+      weights = x[ , paste0('weigh .... [TRUNCATED] 
Error in eigen(tempM, symmetric = TRUE) : 'a' must be a complex matrix 
In addition: There were 50 or more warnings (use warnings() to see the first 50) 
> traceback() 
8: eigen(tempM, symmetric = TRUE) 
7: Krig.engine.default(out, verbose = verbose) 
6: Krig(cbind(x$x, x$y), x[, paste0("occcat", i)], weights = x[, 
     paste0("weight", i)]) at filee101515cee#676 
5: eval(expr, envir, enclos) 
4: eval(ei, envir) 
3: withVisible(eval(ei, envir)) 
2: source(temp_file, ...) 
1: downloader::source_url("https://raw.githubusercontent.com/davidbrae/swmap/master/how%20to%20map%20the%20pesquisa%20nacional%20por%20amostra%20de%20domicilios.R", 
     echo = T, prompt = F) 
> sessionInfo() 
R version 3.2.3 (2015-12-10) 
Platform: x86_64-w64-mingw32/x64 (64-bit) 
Running under: Windows Server 2008 R2 x64 (build 7601) Service Pack 1 

locale: 
[1] LC_COLLATE=English_United States.1252 LC_CTYPE=English_United States.1252 
[3] LC_MONETARY=English_United States.1252 LC_NUMERIC=C       
[5] LC_TIME=English_United States.1252  

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

other attached packages: 
[1] fields_8.3-6  maps_3.1.0  spam_1.3-0  ggplot2_2.0.0  raster_2.5-2  
[6] sqldf_0.4-10  RSQLite_1.0.0  gsubfn_0.6-6  proto_0.3-10  rgeos_0.3-17  
[11] rgdal_1.1-3  sp_1.2-2   digest_0.6.9  ff_2.2-13   bit_1.1-12  
[16] descr_1.1.2  SAScii_1.0  stringr_1.0.0  R.utils_2.2.0  R.oo_1.19.0  
[21] R.methodsS3_1.7.0 RCurl_1.95-4.6 bitops_1.0-6  MonetDBLite_0.2.0 MonetDB.R_1.0.1 
[26] DBI_0.3.1   survey_3.30-3  downloader_0.4 

loaded via a namespace (and not attached): 
[1] Rcpp_0.12.3  plyr_1.8.3  tools_3.2.3  gtable_0.1.2  lattice_0.20-33 
[6] magrittr_1.5  scales_0.3.0  codetools_0.2-14 xtable_1.8-0  colorspace_1.2-6 
[11] stringi_1.0-1 munsell_0.4.2 chron_2.3-47  
> 

27. Februar 2016 edit: sehr ähnlicher Fehler, das Hinzufügen gc() in der Mitte dieses Skript verhindert, dass der Absturz

# account creation page 
# http://www.icpsr.umich.edu/rpxlogin?path=NACJD&request_uri=https%3a%2f%2fwww.icpsr.umich.edu%2ficpsrweb%2fNACJD%2f 
your.username <- '[email protected]' 
your.password <- 'some_password' 

setwd("C:/My Directory/NCVS_BUG/") 
library(downloader) 
source_url("https://gist.githubusercontent.com/ajdamico/4cd5f76aebbdaae5bc88/raw/1ae140e84aa82f1c12af297badad6d8c2c50f5a1/ncvs_bughunt.R" , echo = TRUE , prompt = FALSE) 
+0

Ich bekomme 'Fehler in paste0 (" \ "", Pfad.zu.7z, "\" x ", tf," -aoa -o \ "", tempdir(),: Objekt 'Pfad.zu. 7z "nicht gefunden" mit Ihrem Code. –

+0

@Pascal ahh tut mir leid, siehe bearbeiten für Mac/Unix-Benutzer –

+0

Beendet. Kein Fehler, soweit ich sehen kann. R Version 3.2.3 (2015-12-10) Plattform: x86_64-pc-linux-gnu (64-bit) läuft unter: Ubuntu 14.04.3 LTS –

Antwort

2

Wow, dass Fehler nur schwer zu reproduzieren. Die Anzahl der Schritte, die Sie für die Wiederholung benötigen, ist wahrscheinlich der Grund, warum Sie nicht viele Antworten erhalten haben.

Ich habe es endlich geschafft, alle heruntergeladenen Daten und Pakete zu repro zu bekommen, aber haben Ihren Code nicht (der ziemlich beteiligt ist), um zu dem Punkt zu kommen, an dem Sie es noch nicht ausdrücken.

Gemäß den comments I made, die Fehlermeldungen anzuzeigen, dass ist, dass lapack versucht, die komplexe Version der Funktionen auszuführen, die Sie verwenden (Fehler von this line geworfen), aber die Art der Eingangsgröße ist nicht eine Matrix, so Es löst den Fehler aus. Dies ist wahrscheinlich die Grundursache auf niedriger Ebene.

Die Frage, die Sie wahrscheinlich wirklich die Antwort auf, obwohl wollen, ist, warum passiert das?

Ich vermute, dass dies bedeutet, dass die Eingabedaten für einen Ihrer Schritte entweder leer oder 1 dimensional sind. Ich werde weiterhin versuchen zu reproduzieren, um diese Theorie zu beweisen.

+0

hi, danke, dass du dran bist - weißt du, was noch seltsamer ist? Ein Aufruf von gc() in der Mitte des Skripts verhindert den Fehler. https: // GitHub.com/davidbrae/swmap/commit/820af7eb554e1bdfbeb439daf92d0daa77b4e2f2 es ist ein sehr fragiler Fehler irgendwo, über Zeit habe ich einige Debug-Builds und lernte gdb .. –

+0

Ich frage mich, ob dies von Nutzen ist .. https://stat.ethz.ch/R -manual/R-devel/library/base/html/gctorture.html ..wenn die 'gc()' auf einen Fehler bei der Speicherzuordnung verweist? –

+0

Ich denke, es ist ein Speicherfehler, bei dem eine wirklich große Matrix unter dem Deckmantel bösartig konvertiert wird. Ich werde weiter jagen, weil es interessant ist. –