[RQt-devel] New crash

Michael Lawrence lawrence.michael at gene.com
Wed Apr 7 20:46:22 CEST 2010


Yea I know about the unhandled Moc type stuff. Clearing those up is going to
be a pain, since the Smoke generator resolves typedefs (this is optional,
but we already rely on it) whereas Qt's metaobject compiler (MOC) uses the
typedef names.

On Wed, Apr 7, 2010 at 11:43 AM, Tengfei Yin <yintengfei at gmail.com> wrote:

> Hi Michael,
>
> Thanks, latest version works like a charm on canvas demo in qtpaint. No
> crash anymore.
> For qrepl(), I got the following message, anyway no crash anymore
>
> > library(qtutils)
> Loading required package: qtbase
> > foo=qrepl()
> Cannot handle Moc type 'qreal'
>
> debug(qrepl) gave me
>
> Browse[2]> n
> debug: ined1 <- qeditor(rsyntax = TRUE, richtext = TRUE)
> Browse[2]> n
> Cannot handle Moc type 'qreal'
>
> debug: ined1$setCurrentFont(font)
> Browse[2]> n
>
> Thanks
>
> Regards
>
> Tengfei
>
>
>
> On Wed, Apr 7, 2010 at 11:18 AM, Michael Lawrence <
> lawrence.michael at gene.com> wrote:
>
>>
>>
>> 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
>>>
>>>
>>
>
>
> --
> 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
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.r-forge.r-project.org/pipermail/qtinterfaces-devel/attachments/20100407/f176dfb6/attachment.htm 


More information about the Qtinterfaces-devel mailing list