[RQt-devel] New crash
Michael Lawrence
lawrence.michael at gene.com
Wed Apr 7 18:18:52 CEST 2010
On Tue, Apr 6, 2010 at 10:30 PM, Tengfei Yin <yintengfei at gmail.com> wrote:
> Hi,
>
> I have the same crash here
> my system ubuntu 9.10 64 bit, qt 4.5
> my sessionInfo()
>
> > sessionInfo()
> R version 2.10.1 (2009-12-14)
> x86_64-pc-linux-gnu
>
> locale:
> [1] LC_CTYPE=zh_CN.UTF-8 LC_NUMERIC=C
> [3] LC_TIME=en_US.UTF-8 LC_COLLATE=en_US.UTF-8
> [5] LC_MONETARY=C 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
>
>
> I have another crash caused by call demo('canvas','qtpaint'), here is
> running message and the trace back version,
>
> > library(qtpaint)
> > demo('canvas','qtpaint')
>
>
> demo(canvas)
> ---- ~~~~~~
>
> Type <Return> to start :
>
> > ## tests/demonstrations for the interactive canvas
> >
> > library(qtpaint)
>
> > options(warn=2)
>
> > options(error=recover)
>
> > circle <- qglyphCircle()
>
> > n <- 1000
>
> > x <- rnorm(n, 50, 25)
>
> > y <- rnorm(n, 50, 25)
>
> > df <- data.frame(X = x, Y = y)
>
> > ##data(mtcars)
> > ##df <- mtcars[,c("mpg", "hp")]
> >
> > ##data(iris)
> > ##df <- iris
> > fill <- col2rgb(rgb(1, seq(0, 1, length=nrow(df)), 0, 0.5), TRUE)
>
> > ##fill <- col2rgb(rgb(1, 0, 0, 0.5), TRUE)
> > ##fill <- rep("red", nrow(df))
> > scatterplot <- function(item, painter) {
> + qstrokeColor(painter) <- NA
> + qfillColor(painter) <- fill
> + ##qantialias(painter) <- FALSE
> + ##qdrawText(painter, "x", df[,1], df[,2])
> + ##qdrawPoint(painter, df[,1], df[,2], stroke = fill)
> + qdrawGlyph(painter, circle, df[,1], df[,2], fill = fill)
> + }
>
> > labeled <- rep(FALSE, nrow(df))
>
> > labeler <- function(item, painter) {
> + mat <- qdeviceTransform(painter)
> + off <- qmap(mat, c(5, 5)) - qmap(mat, c(0, 0))
> + df <- df[labeled,]
> + qdrawText(painter, rownames(df), df[,1]+off[1], df[,2]+off[2], "left",
> + "bottom")
> + }
>
> > margin <- 5
>
> > adjust <- c(margin, -margin)
>
> > adjustPoint <- Qt$QPointF(margin, margin)
>
> > axes <- function(item, painter) {
> + qfont(painter) <- qfont(pointsize=12)
> + pos <- as.matrix(item$geometry) + adjust
> + qdrawText(painter, colnames(df)[1], pos[2], pos[4], "right", "bottom")
> + qdrawText(painter, colnames(df)[2], pos[1], pos[3], "left", "top")
> + }
>
> > pointAdder <- function(item, event) {
> + df <<- rbind(df, event$pos())
> + qupdate(scene)
> + }
>
> > pointIdentifier <- function(item, event) {
> + off <- 20
> + rect <- qrect(0, 0, off*2, off*2)
> + mat <- item$deviceTransform(event)$inverted()
> + rect <- mat$mapRect(rect)
> + pos <- event$pos()
> + rect$moveCenter(pos)
> + hits <- item$primitives(rect)
> + hitmat <- as.matrix(df[hits,])
> + posmat <- matrix(pos, ncol=2)
> + labeled <<- rep(FALSE, nrow(df))
> + labeled[hits][Biobase::matchpt(posmat, hitmat)[,1]] <<- TRUE
> + qupdate(labels)
> + }
>
> > boundsPainter <- function(item, painter) {
> + lims <- dim(item)
> + qstrokeColor(painter) <- "red"
> + qdrawRect(painter, lims[1,1], lims[1,2], lims[2,1], lims[2,2])
> + }
>
> > scene <- qscene()
> Error in qinvokeStatic(cl, basename, ...) :
> Unable to disambiguate method QGraphicsScene::QGraphicsScene
>
>
This bug was fixed yesterday in svn.
> #################another trace back version #############
>
> > gctorture(TRUE)
> > demo('canvas','qtpaint')
>
>
> demo(canvas)
> ---- ~~~~~~
>
> Type <Return> to start :
>
> > ## tests/demonstrations for the interactive canvas
> >
> > library(qtpaint)
>
> > options(warn=2)
>
> > options(error=recover)
>
> > circle <- qglyphCircle()
>
> *** caught segfault ***
> address (nil), cause 'unknown'
>
>
This seems to have the same cause as the bug reported by Deepayan. The "fix"
I made to Smoke last week to fix the bug reported by Deepayan in January (I
think we need numbers for these) was actually not a fix. It resulted in a
crash whenever a non-Smoke-derived object was deleted. I've found a new
work-around (inside qtbase this time), which fixes the old bug, without
causing this problem. Try the latest svn.
Michael
> Traceback:
> 1: glyph$addEllipse
> 2: qglyphCircle()
> 3: eval.with.vis(expr, envir, enclos)
> 4: eval.with.vis(ei, envir)
> 5: source(available, echo = echo, max.deparse.length = Inf, keep.source =
> TRUE)
> 6: demo("canvas", "qtpaint")
>
> Possible actions:
> 1: abort (with core dump, if enabled)
> 2: normal R exit
> 3: exit R without saving workspace
> 4: exit R saving workspace
>
>
> Regards
>
> Tengfei
>
>
>
>
>
> On Wed, Apr 7, 2010 at 12:11 AM, Deepayan Sarkar <
> deepayan.sarkar at gmail.com> wrote:
>
>> Hi,
>>
>> I haven't had a chance to investigate this closely, but I'm
>> consistently getting the following segfault. Can anyone reproduce?
>>
>> -Deepayan
>>
>>
>> > library(qtutils)
>> > foo <- qrepl()
>> Cannot handle Moc type 'qreal'
>>
>>
>> *** caught segfault ***
>> address 0x100000002, cause 'memory not mapped'
>>
>> Possible actions:
>> 1: abort (with core dump, if enabled)
>> 2: normal R exit
>> 3: exit R without saving workspace
>> 4: exit R saving workspace
>> _______________________________________________
>> Qtinterfaces-devel mailing list
>> Qtinterfaces-devel at lists.r-forge.r-project.org
>>
>> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/qtinterfaces-devel
>>
>
>
>
> --
> Tengfei Yin
> MCDB PhD student
> 1620 Howe Hall, 2274,
> Iowa State University
> Ames, IA,50011-2274
> Homepage: www.tengfei.name
> English Blog: www.tengfei.name/en
> Chinese Blog: www.tengfei.name/ch
>
> _______________________________________________
> Qtinterfaces-devel mailing list
> Qtinterfaces-devel at lists.r-forge.r-project.org
>
> https://lists.r-forge.r-project.org/cgi-bin/mailman/listinfo/qtinterfaces-devel
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.r-forge.r-project.org/pipermail/qtinterfaces-devel/attachments/20100407/dfa057d7/attachment.htm
More information about the Qtinterfaces-devel
mailing list