[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