[vtk-developers] Help with TestQtDebugLeaksView test failure

Pat Marion pat.marion at kitware.com
Wed Apr 3 23:02:58 EDT 2013


I did some testing using a machine that Rob let me access, and I conclude
that this machine, and the amber10 dashboard machine, both have issues with
their Qt builds  (win64 vs10).  A trivial test program will crash if it
shows a QTableView, and I found a relevant Qt bug report:

"QListView, QTreeView and QTableView crash in x64 (64 bits) release mode
VS2010 (VC++2010), using Qt compiled with win32-msvc2010 platform."

https://bugreports.qt-project.org/browse/QTBUG-19175

A comment on the bug report suggests this a solution:  install Microsoft
Visual Studio 2010 SP1 and rebuild Qt


I think that this test, TestQtDebugLeaksView.cxx, is the only test running
on amber10 that creates and shows a Qt widget.  I found another VTK test,
TestVtkQtTableView.cxx, but it does not appear to be enabled anywhere.
Neither are the tests in GUISupport/Qt/Testing/Python (I think).

I think a good next step would be:

-switch vtk dashboard on amber10 to use
c:\dashboards\support\qt-4.8.1-x64\bin
-enable more Qt tests and see if any of them pass on amber10.  The current
Qt tests passing on amber10, such as TestQtTableModelAdapter, don't
actually create any widgets.
-install vs10 sp1 and rebuild Qt if that hasn't happened yet

Can someone with local access to amber10 volunteer to try this?

Pat


On Wed, Apr 3, 2013 at 12:15 PM, Pat Marion <pat.marion at kitware.com> wrote:

> An update- Rob Maynard is helping me investigate the issue.  We're able to
> reproduce the crash on another Windows machine, too.  It requires a release
> build to reproduce.  Sorry for the failing test on the dashboard, hopefully
> it won't be too much longer.
>
> Pat
>
>
> On Fri, Mar 29, 2013 at 2:20 AM, David Cole <dlrdave at aol.com> wrote:
>
>> So sounds like the easy thing to do is to use Qt 4.8.1 on this machine.
>> Do we need it to be Qt 4.7.4 for some reason?
>>
>>
>>
>>
>> -----Original Message-----
>> From: Pat Marion <pat.marion at kitware.com>
>> To: Bill Lorensen <bill.lorensen at gmail.com>
>> Cc: David Cole <dlrdave at aol.com>; VTK Developers <vtk-developers at vtk.org>;
>> David Gobbi <david.gobbi at gmail.com>; Robert Maynard <
>> robert.maynard at kitware.com>
>> Sent: Thu, Mar 28, 2013 11:13 am
>> Subject: Re: [vtk-developers] Help with TestQtDebugLeaksView test failure
>>
>>
>> I was able to login to amber10 and debug the issue further, but have not
>> resolved it yet.  Here's what I've found:
>>
>> - what Kyle originally reported seems to not be true.  The program will
>> segfault when called in the command line, you don't have to call it through
>> ctest to make it crash
>>
>> - if you prepend the path with c:\dashboards\support\qt-4.8.**1-x64\bin
>> then the program completes successfully without crashing.  It only crashes
>> when using qt-4.7.4 on the path.
>>
>> - it crashes on line 156 in vtkQtDebugLeaksView.cxx when making the Qt
>> library call QTableView::**resizeColumnsToContents().
>>
>> - this crash is eerily similar to one I have seen in the past in
>> QTableView on certain versions of Qt on Windows, and it's near impossible
>> to debug.  Sigh.
>>
>>
>> Rob, if you could use vs10 on amber10 to collect a debug backtrace for
>> this program, that would be helpful to verify that the crash is actually
>> inside the QtGui library.  I had trouble figuring out how to launch the
>> vtkGUISupportQtCxxTests.exe.**exe program from within vs10.  It
>> complained about a missing dll which means I wasn't setting the qt path
>> correctly for the vs10 debugging session.
>>
>> You can run the test and reproduce the crash with:
>>
>> cd C:\Dashboards\My Tests\VTK-vs10
>> PATH=c:\dashboards\support\qt-**4.7.4-x64\bin;%PATH%
>> bin\Release\**vtkGUISupportQtCxxTests.exe TestQtDebugLeaksView
>>
>> or
>>
>> ctest -V -C Release -R TestQtDebugLeaksView
>>
>>
>> If someone wants to push a commit that removes the one line that calls
>> resizeColumnsToContents() then that will avoid the crash on amber10 and
>> make the test pass.  Resizing the columns is not required, it's just for
>> appearances.  Or, another way to avoid the crash seems to be setting
>> amber10 to use the qt 4.8.1 install.  Or disable this test on amber10.
>> From what I can tell, the bug is in Qt's QTableView for Windows.  The bug
>> could be exposed by an incorrect usage of the QTableView on my part, but it
>> works on all other platforms, and also works with qt 4.8.1 on the same
>> machine.
>>
>> Sorry for the failing test and lack of clear resolution.  When this code
>> was originally added, the test passed on all dashboard machines, but I'm
>> not sure what the history is of the failure on amber10's vs10 dashboard.
>>
>> Pat
>>
>>
>> On Thu, Mar 28, 2013 at 3:37 PM, Pat Marion <pat.marion at kitware.com>
>> wrote:
>>
>> I'd be happy to help, but I don't have access to that machine.  I tried
>> vnc but it doesn't seem to have a vnc server running.  I could try remote
>> desktop if somebody says that's ok, but I don't want to log out the
>> dashboard session by accident.
>>
>> Pat
>>
>>
>>
>> On Thu, Mar 28, 2013 at 1:54 PM, Bill Lorensen <bill.lorensen at gmail.com>
>> wrote:
>>
>> Pat,
>>
>>
>> Maybe you can help. It is one of the few tests that are failing (after we
>> clear up newly introduced failures).
>>
>>
>> Bill
>>
>>
>>
>> On Wed, Mar 27, 2013 at 5:27 PM, Pat Marion <pat.marion at kitware.com>
>> wrote:
>>
>> Hi Kyle,
>>
>> Did you discover the issue?  I'm the original test author, but I'm not
>> sure about this crash.  Did you try what Dave suggested, set the PATH env
>> variable before running the process?  Perhaps there are mismatched Qt
>> library versions?  I have seen cases of crashes when a Windows service pack
>> update is installed but the Qt libs are not recompiled.
>>
>> Pat
>>
>>
>> On Fri, Mar 22, 2013 at 1:08 AM, David Cole <dlrdave at aol.com> wrote:
>>
>>
>>
>> Also, the script has this in it:
>>
>> # change path so paraview can find Qt
>> set(ENV{PATH} "C:/Python26\;C:/Dashboards/**Support/qt-4.7.4-x64/bin\;$**
>> ENV{PATH}”)
>>
>> Try doing that before running the test and see if that makes a difference.
>>
>>
>>
>>                 From: David Gobbi
>>                 Sent: March 21, 2013 10:55 AM
>>
>>                 To: Kyle Lutz
>>                         CC: VTK Developers
>>                 Subject: Re: [vtk-developers] Help with
>> TestQtDebugLeaksView test failure
>>
>>
>>
>>
>>
>>
>> On Thu, Mar 21, 2013 at 8:49 AM, Kyle Lutz <kyle.lutz at kitware.com> wrote:
>>
>>> On Thu, Mar 21, 2013 at 10:36 AM, David Cole <dlrdave at aol.com> wrote:
>>>
>>>> Run it through ctest, but add “-D ExperimentalTest” on the command
>>>>
>>> line and
>>
>>> see if that makes a difference...
>>>>
>>>
>>> No difference :-(
>>>
>>> Here's the full output:
>>>
>>> C:\Dashboards\My Tests\VTK-vs10>ctest -R TestQtDebugLeaks -C Release
>>>
>> -D Experime
>>
>>> ntalTest -V
>>> UpdateCTestConfiguration  from :C:/Dashboards/My
>>>
>> Tests/VTK-vs10/**DartConfiguratio
>>
>>> n.tcl
>>> Parse Config file:C:/Dashboards/My
>>>
>> Tests/VTK-vs10/**DartConfiguration.tcl
>>
>>>     Site: amber10.kitware
>>>     Build name: Win64-VS10
>>>   Add coverage exclude regular expressions.
>>>   Add coverage exclude: vtk.*TCLInit.cxx
>>>   Add coverage exclude: vtk[^\.]+(Java|Python|Tcl).cxx
>>>   Add coverage exclude: .*vtkOpenGLState.*
>>>   Add coverage exclude: .*Testing.Cxx.*cxx
>>>   Add coverage exclude: .*Testing.Cxx.*h
>>>   Add coverage exclude: .*moc_.*cxx
>>>   Add coverage exclude: .*/Utilities/.*
>>>   Add coverage exclude: .*/ThirdParty/.*
>>> UpdateCTestConfiguration  from :C:/Dashboards/My
>>>
>> Tests/VTK-vs10/**DartConfiguratio
>>
>>> n.tcl
>>> Parse Config file:C:/Dashboards/My
>>>
>> Tests/VTK-vs10/**DartConfiguration.tcl
>>
>>> Test project C:/Dashboards/My Tests/VTK-vs10
>>> Constructing a list of tests
>>> Done constructing a list of tests
>>> Checking test dependency graph...
>>> Checking test dependency graph end
>>> test 690
>>>      Start 690: vtkGUISupportQtCxx-**TestQtDebugLeaksView
>>>
>>> 690: Test command: "C:\Dashboards\My
>>>
>> Tests\VTK-vs10\bin\Release\**vtkGUISupportQtC
>>
>>> xxTests.exe" "TestQtDebugLeaksView" "-D" "c:/Dashboards/My
>>>
>> Tests/VTKData" "-T" "
>>
>>> C:/Dashboards/My Tests/VTK-vs10/Testing/**Temporary" "-V"
>>>
>> "Baseline/QVTK/TestQtDeb
>>
>>> ugLeaksView.png"
>>> 690: Test timeout computed to be: 240
>>> 690: Expect a warning message to be printed:
>>> 690: vtkQtDebugLeaksModel::**getObjects: bad class name: "vtkConeSource"
>>> 1/1 Test #690: vtkGUISupportQtCxx-**TestQtDebugLeaksView
>>>
>> ...***Exception: SegFault
>>
>>>    0.06 sec
>>>
>>> 0% tests passed, 1 tests failed out of 1
>>>
>>> Total Test time (real) =   1.29 sec
>>>
>>> The following tests FAILED:
>>>          690 - vtkGUISupportQtCxx-**TestQtDebugLeaksView (SEGFAULT)
>>> Errors while running CTest
>>>
>>
>> Can you insert a long "Sleep" near the beginning of the test, run the
>> test with ctest, and then attach a debugger to the process while it is
>> sleeping?
>>
>>  - David
>> ______________________________**_________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at http://www.kitware.com/**
>> opensource/opensource.html<http://www.kitware.com/opensource/opensource.html>
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/**listinfo/vtk-developers<http://www.vtk.org/mailman/listinfo/vtk-developers>
>>
>>
>>
>>
>>
>>
>> ______________________________**_________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at http://www.kitware.com/**
>> opensource/opensource.html<http://www.kitware.com/opensource/opensource.html>
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/**listinfo/vtk-developers<http://www.vtk.org/mailman/listinfo/vtk-developers>
>>
>>
>>
>>
>>
>>
>> ______________________________**_________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at http://www.kitware.com/**
>> opensource/opensource.html<http://www.kitware.com/opensource/opensource.html>
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/**listinfo/vtk-developers<http://www.vtk.org/mailman/listinfo/vtk-developers>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> --
>> Unpaid intern in BillsBasement at noware dot com
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20130404/53512d42/attachment.html>


More information about the vtk-developers mailing list