I got the following after running succesfully through this loop 28 million
times... the loop opens text files in a directory and inserts line by line
into a database...

 *** caught segfault ***
address 0xc0000010, cause 'memory not mapped'

Traceback:
 1: .getGeneric(f, where, package)
 2: getGeneric("coerce", where = where)
 3: as(obj, "integer")
 4: mysqlConnectionInfo(dbObj, ...)
 5: dbGetInfo(conn, "rsId")
 6: dbGetInfo(conn, "rsId")
 7: dbListResults(con)
 8: dbListResults(con)
 9: mysqlQuickSQL(conn, statement, ...)
10: dbGetQuery(con, sql)
11: dbGetQuery(con, sql)
12: doTryCatch(return(expr), name, parentenv, handler)
13: tryCatchOne(expr, names, parentenv, handlers[[1L]])
14: tryCatchList(expr, classes, parentenv, handlers)
15: tryCatch(expr, error = function(e) {    call <- conditionCall(e)    if
(!is.null(call)) {        if (identical(call[[1L]],
quote(doTryCatch)))             call <- sys.call(-4L)        dcall <-
deparse(call)[1L]        prefix <- paste("Error in", dcall, ": ")
LONG <- 75L        msg <- conditionMessage(e)        sm <- strsplit(msg,
"\n")[[1L]]        if (14L + nchar(dcall, type = "w") + nchar(sm[1L], type =
"w") >             LONG)             prefix <- paste(prefix, "\n  ", sep =
"")    }    else prefix <- "Error : "    msg <- paste(prefix,
conditionMessage(e), "\n", sep = "")    .Internal(seterrmessage(msg[1L]))
if (!silent && identical(getOption("show.error.messages"),         TRUE))
{        cat(msg, file = stderr())
.Internal(printDeferredWarnings())    }    invisible(structure(msg, class =
"try-error"))})
16: try(dbGetQuery(con, sql))
17: eval.with.vis(expr, envir, enclos)
18: eval.with.vis(ei, envir)
19: source("~/SoothSayer/EODData/DBScripts/loadEODQuotes.r")

Possible actions:
1: abort (with core dump, if enabled)
2: normal R exit
3: exit R without saving workspace
4: exit R saving workspace
Selection:


The code is pretty simple...


library(RMySQL)
drv <- dbDriver("MySQL")
con <- dbConnect(drv, host="localhost", dbname="markets", user="root",
pass="embryoni3")
fileList <- list.files(pattern = "[[:upper:]]{2,}", all.files = FALSE,
full.names = FALSE, recursive = FALSE, ignore.case = FALSE)
for (x in 1:length(fileList)){
    string <- strsplit(fileList[x], "_", fixed = TRUE)
    string <- string[[1]][1]
    fileLines <- read.csv(fileList[x],header = FALSE,row.names = NULL )

    for ( j in 1:length(fileLines[,1])){
        sql <- paste("insert into endOfDayData
(date,market,symbol,open,high,low,close,volume) values ('",
fileLines[j,2],"','",string,"','",as.character(fileLines[j,1]),"','",fileLines[j,3],"','",fileLines[j,4],"','",fileLines[j
,5],"','",fileLines[j,6],"','",fileLines[j,7],"')",sep="")
        #print(sql)
        atmpt <- try(dbGetQuery(con,sql))
        options(show.error.messages = TRUE)
        if(inherits(atmpt, "try-error")){

        }

    }

}

dbDisconnect(con)

My understanding was that in general R liked to put a placekeeper like NA or
NULL in for non-existent elements of defined structures... so I was
surprised to see a seg fault... I'm having trouble interpretting the
error... any clues would be appreciated.

Nick

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to