[RQt-devel] recent smoke update

Deepayan Sarkar deepayan.sarkar at gmail.com
Sun Jan 17 09:00:48 CET 2010


On Sat, Jan 16, 2010 at 8:27 AM, Michael Lawrence
<lawrence.michael at gene.com> wrote:
>
>
> On Sat, Jan 16, 2010 at 7:33 AM, Deepayan Sarkar <deepayan.sarkar at gmail.com>
> wrote:
>>
>> Hi (mostly MIchael),
>>
>> r206 (2010-01-14, Update to latest smoke) caused a regression in my
>> setup because these lines were removed (they had been added following
>> Justin's suggestion because I need the -fPIC flag):
>>
>> ----
>> if( CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" )
>>  set_target_properties(smokeqt PROPERTIES COMPILE_FLAGS "-fPIC")
>> endif( CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" )
>> ----
>>
>> Not a big deal, I just added them back, but I was wondering if there's
>> anything we might do to prevent repeat occurrences. Was the file
>> copied verbatim from the new smoke release?
>>
>
> Yes, those files are copied verbatim with the sync. We need to get these
> changes into upstream. But the uptake seems pretty slow. There is this fix,
> as well as the fixes for OS X. We probably need to create our own branch of
> the kdebindings stuff or at least maintain a set of patches. The latter is
> probably a better idea.

Yes, maintaining patches is fairly common practice, although I'm not
sure how it's actually done in practice.

Anyway, have either of you noticed more instability than there used to
be? It's not very reproducible, but something always seems to go wrong
after a while. In one case, the result of calling Qt$QPen() was
reported as being of class "QGraphicsItem" (and there were some of
those around), which may give a hint about what might be happening.

Here's a small attempt at reproducing the bug (it's an infinite loop,
so be ready to interrupt if nothing goes wrong). Notice how sometimes
there is a segfault, and other times an error.

--------
dsarkar at sphulinga:tmp$ cat qbug.R
library(qtbase)
i <- 1L
while (TRUE) {
    i <- i + 1L
    if ((i %% 100) == 0) message(i)
    pen <- try(Qt$QPen(Qt$QColor(10L, 20L, 10L)), silent = TRUE)
    if (is(pen, "try-error"))
    {
        message(i, ":", as.character(pen))
        break
    }
}

dsarkar at sphulinga:tmp$ R-devel --vanilla --slave < qbug.R
100
200
300
400

 *** caught segfault ***
address (nil), cause 'unknown'
aborting ...
Segmentation fault
dsarkar at sphulinga:tmp$ R-devel --vanilla --slave < qbug.R
100
200
300
400

 *** caught segfault ***
address (nil), cause 'unknown'
aborting ...
Segmentation fault
dsarkar at sphulinga:tmp$ R-devel --vanilla --slave < qbug.R
100
200
300
400

 *** caught segfault ***
address (nil), cause 'unknown'
aborting ...
Segmentation fault
dsarkar at sphulinga:tmp$ R-devel --vanilla --slave < qbug.R
2:Error in assign(enum, structure(enums[enum], class = "QtEnum"), env) :
  attempt to use zero-length variable name

dsarkar at sphulinga:tmp$ R-devel --vanilla --slave < qbug.R
100
200
300
400

 *** caught segfault ***
address (nil), cause 'unknown'
aborting ...
Segmentation fault
dsarkar at sphulinga:tmp$ R-devel --vanilla --slave < qbug.R
2:Error in assign(enum, structure(enums[enum], class = "QtEnum"), env) :
  attempt to use zero-length variable name

dsarkar at sphulinga:tmp$ R-devel --vanilla --slave < qbug.R
100
200
300
400

 *** caught segfault ***
address (nil), cause 'unknown'
aborting ...
Segmentation fault

--------

-Deepayan


More information about the Qtinterfaces-devel mailing list