[vtk-developers] Help with TestQtDebugLeaksView test failure

Robert Maynard robert.maynard at kitware.com
Thu Apr 4 10:14:51 EDT 2013


Qt doesn't offer 64bit builds for VS, which is required to expose this bug.


On Thu, Apr 4, 2013 at 9:58 AM, Jean-Christophe Fillion-Robin <
jchris.fillionr at kitware.com> wrote:

> As a side note, if doing Release builds, you don't have to build Qt
> yourself. There are download of Qt 4.8.4 for VS2010.
> See http://qt-project.org/downloads
>
> Hth
> Jc
>
>
> On Thu, Apr 4, 2013 at 9:05 AM, Robert Maynard <robert.maynard at kitware.com
> > wrote:
>
>> It should be noted that my machine had compiled Qt 4.8.0 and had this
>> same problem. So the primary issue is VS2010 without SP1 installed looks to
>> have a bug when building Qt in Release mode with optimizations enabled.
>>
>> A Qt bug also goes more in depth with this problem:
>> https://bugreports.qt-project.org/browse/QTBUG-11445
>>
>>
>> On Wed, Apr 3, 2013 at 11:02 PM, Pat Marion <pat.marion at kitware.com>wrote:
>>
>>> 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
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>
>>
>> --
>> Robert Maynard
>>
>> _______________________________________________
>> Powered by www.kitware.com
>>
>> Visit other Kitware open-source projects at
>> http://www.kitware.com/opensource/opensource.html
>>
>> Follow this link to subscribe/unsubscribe:
>> http://www.vtk.org/mailman/listinfo/vtk-developers
>>
>>
>>
>
>
> --
> +1 919 869 8849
>



-- 
Robert Maynard
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/vtk-developers/attachments/20130404/ce315db0/attachment.html>


More information about the vtk-developers mailing list