From osklyar at maninvestments.com  Fri Mar 27 17:54:37 2009
From: osklyar at maninvestments.com (Sklyar, Oleg (London))
Date: Fri, 27 Mar 2009 16:54:37 -0000
Subject: [Rd] consistent segfaults in ROracle with one of the databases
Message-ID: <1A68FCB28DE72F4BA3B967E6506CCE43047DF7B1@mildnpexmb01.maninvestments.ad.man.com>

Dear list.

Has anybody had any issues with ROracle, namely consistently leading to
a segmentation fault? One of our oracle databases seems to have certain
issues at the moment (do not know what exactly though) and if that one
is queried ROracle definitely fails with a segmentation fault. Any
ideas? Here is the trace and below is also a type of query that crashes
it:

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

Traceback:
 1: .Call("RS_Ora_exec", ps = as(ps, "integer"), data = data,
data.classes = df.classes,     buf.size = as.integer(ora.buf.size),
PACKAGE = .OraPkgName)
 2: oraExecStatement(ps, ora.buf.size = as(ora.buf.size, "integer"))
 3: doTryCatch(return(expr), name, parentenv, handler)
 4: tryCatchOne(expr, names, parentenv, handlers[[1L]])
 5: tryCatchList(expr, classes, parentenv, handlers)
 6: 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"))})
 7: try({    ps <- oraPrepareStatement(con, statement, bind = NULL)
rs <- oraExecStatement(ps, ora.buf.size = as(ora.buf.size,
"integer"))})
 8: oraExecDirect(con, statement, ...)
 9: oraQuickSQL(conn, statement, ...)
10: dbGetQuery(dotsConnection(), qry)

--
This is the type of query (template) that crashes it, I know this is not
too helpful as you cannot run it, but maybe someone spots a certain
pattern in it:

SELECT TIMESTAMP, VALUE, VM FROM
    (WITH ev AS
        (SELECT audit_key_new key, audit_date dt, audit_batch_nbr,
audit_date
            FROM dots_audit.audit_event
            WHERE table_name='VALUE_PROPERTY_MAP'),
    jfsm AS
        (SELECT audit_key, fund_id, fund_mult
            FROM dots_audit.value_property_map WHERE property_id='%s'
         UNION SELECT audit_key, value_id, value_mult
            FROM dots.value_property_map WHERE property_id='%s')
    SELECT DISTINCT
        ev.dt - to_date('01011970','ddmmyyyy') TIMESTAMP,
        jfsm.value_id VALUE,
        jfsm.value_mult VM,
        RANK() OVER (PARTITION BY audit_batch_nbr, value_id ORDER BY dt
DESC) r
        FROM jfsm, ev WHERE audit_key=ev.key)
    WHERE r=1 ORDER BY TIMESTAMP DESC 

--
> library(ROracle)
Loading required package: DBI
> sessionInfo()
R version 2.9.0 Under development (unstable) (2009-02-02 r47821) 
x86_64-unknown-linux-gnu 

locale:
LC_CTYPE=en_GB;LC_NUMERIC=C;LC_TIME=en_GB;LC_COLLATE=C;LC_MONETARY=C;LC_
MESSAGES=en_GB;LC_PAPER=en_GB;LC_NAME=C;LC_ADDRESS=C;LC_TELEPHONE=C;LC_M
EASUREMENT=en_GB;LC_IDENTIFICATION=C

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


other attached packages:
[1] ROracle_0.5-9 DBI_0.2-4    

--

Dr Oleg Sklyar
Research Technologist
AHL / Man Investments Ltd
+44 (0)20 7144 3107
osklyar at maninvestments.com

**********************************************************************
Please consider the environment before printing this email or its attachments.
The contents of this email are for the named addressees ...{{dropped:19}}



[Rd] consistent segfaults in ROracle with one of the databases
Sklyar, Oleg (London