[RQt-devel] recent smoke update

Deepayan Sarkar deepayan.sarkar at gmail.com
Sun Jan 17 19:24:14 CET 2010


On Sun, Jan 17, 2010 at 7:32 AM, Michael Lawrence
<lawrence.michael at gene.com> wrote:
> Unfortunately, I can't seem to reproduce the error, only the segfault. Btw,
> your test code is off by 1 (so the error is happening on the first
> iteration). It's also weird how the segfault is so predictable (it crashes
> somewhere between 400 and 500 on my machine too).

Yes, the segfault is quite predictable (although not quite 100%), and
happens much earlier if I include a gc() call. Here's a variation:

----Code:
library(qtbase)
i <- 1L
while (TRUE) {
    gc()
    pen <- Qt$QPen(Qt$QColor(10L, 20L, 10L))
    message(i, "\t", capture.output(print(pen))[1], "\t", class(pen)[1])
    i <- i + 1L
}
----Typical output:
1       <environment: 0x141e530>        QPen
2       <environment: 0x1f75788>        QColor
3       <environment: 0x1f758d8>        QPen
4       <environment: 0x1f75868>        QColor
5       <environment: 0x1f757f8>        QColor
6       <environment: 0x1f75868>        QColor
7       <environment: 0x1f757f8>        QColor

 *** caught segfault ***
address (nil), cause 'unknown'
aborting ...
Segmentation fault
----
Note the wrongly reported QColor. Taking the diff() of the pointer
addresses is interesting:

> diff(c(0x141e530, 0x1f75788, 0x1f758d8, 0x1f75868, 0x1f757f8, 0x1f75868, 0x1f757f8))
[1] 11891288      336     -112     -112      112     -112

The numbers 336 and 112 recur.

> Are you saying that this is a regression? I can't install the old version,
> because it's broken for Qt 4.6.

I had thought so, but it's not. I get similar behavior with an older version.

Somehow the QColor seems important. If I just use

pen <- Qt$QPen()

then things seem stabler (it doesn't segfault, though it sometimes
gives an error).

-Deepayan


More information about the Qtinterfaces-devel mailing list