On 2013-12-19 16:11-0800 Alan W. Irwin wrote:

> On 2013-12-19 22:50-0000 Andrew Ross wrote:
>> Eventually I managed to get through almost all the tests though. The
>> only issue I encountered was a segfault with the C++ qt_example for the
>> nondyndriver case. Valgrind shows an invalid call to free / delete and
>> a memory access violation. The shared case is fine with valgrind so I
>> assume it is something about the static drivers.
>
>>
>> For the fully static case I do not get a segfault, but valgrind shows a
>> load or invalid reads in wx libraries ?!?
>>
>> Alan, do your tests reproduce this? I'll try a debug build to see if I
>> can get to the bottom of it.
>
> qt_example has had a severe memory management issue in the recent past
> (say over the last year or so)
> which I worked around by not permitting qt_example to be built for the
> static drivers case (e.g., for the PLplot-5.9.10 release).  But my
> recent build-system changes for the Qt4-related parts of the PLplot
> build solved that issue (as confirmed by valgrind) so I enabled
> qt_example again for the static drivers case.
>
> But in light of your seeing more symptoms, I will check that again
> with valgrind runs for my system version of Qt4 and also the epa_build
> version of Qt4 and get back to you with those results. Please keep in
> touch on what your further investigation finds as well. It's possible
> the qt_example memory management trouble only occurs for certain
> versions of Qt4.

Here is the build-tree result for the system version of Qt4 (i.e.,

-- Found Qt4: /usr/bin/qmake (found suitable version "4.8.2", minimum
required is "4.8.2") 
-- NP_QT_COMPILE_DEFINITIONS = QT_SVG_LIB;QT_GUI_LIB;QT_CORE_LIB
-- QT_COMPILE_DEFINITIONS = -DQT_SVG_LIB;-DQT_GUI_LIB;-DQT_CORE_LIB
-- NP_QT_INCLUDE_DIRECTORIES = 
/usr/include/qt4;/usr/include/qt4/QtSvg;/usr/include/qt4/QtGui;/usr/include/qt4/QtCore
-- QT_INCLUDE_DIRECTORIES = -isystem /usr/include/qt4;-isystem 
/usr/include/qt4/QtSvg;-isystem /usr/include/qt4/QtGui;-isystem 
/usr/include/qt4/QtCore
) for the -DENABLE_DYNDRIVERS=OFF case and after
running "make test_qt_example" to build all the dependencies of
qt_example:

==31199== Memcheck, a memory error detector
==31199== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==31199== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info
==31199== Command: examples/c++/qt_example
==31199== 
==31199== 
==31199== HEAP SUMMARY:
==31199==     in use at exit: 275,941 bytes in 2,457 blocks
==31199==   total heap usage: 44,202 allocs, 41,745 frees, 15,616,431 bytes 
allocated
==31199== 
==31199== LEAK SUMMARY:
==31199==    definitely lost: 3,888 bytes in 37 blocks
==31199==    indirectly lost: 11,082 bytes in 223 blocks
==31199==      possibly lost: 2,448 bytes in 7 blocks
==31199==    still reachable: 258,523 bytes in 2,190 blocks
==31199==         suppressed: 0 bytes in 0 blocks
==31199== Rerun with --leak-check=full to see details of leaked memory
==31199== 
==31199== For counts of detected and suppressed errors, rerun with: -v
==31199== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 12 from 8)

Here is the equivalent -DENABLE_DYNDRIVERS=OFF build-tree results for the 
epa_build version of Qt4 (which I
obtained by running "make build_qt4_lite" under epa_build
and simply changing the PATH prior to my ordinary PLplot build
so that qmake version was found (which sucks in the rest of that
version of Qt4).

-- Found Qt4: /home/wine/newstart/build_script/install-linux/bin/qmake (found 
suitable version "4.8.5", minimum required is "4.8.2") 
-- NP_QT_COMPILE_DEFINITIONS = QT_SVG_LIB;QT_GUI_LIB;QT_CORE_LIB
-- QT_COMPILE_DEFINITIONS = -DQT_SVG_LIB;-DQT_GUI_LIB;-DQT_CORE_LIB
-- NP_QT_INCLUDE_DIRECTORIES = 
/home/wine/newstart/build_script/install-linux/include;/home/wine/newstart/build_script/install-linux/include/QtSvg;/home/wine/newstart/build_script/install-linux/include/QtGui;/home/wine/newstart/build_script/install-linux/include/QtCore
-- QT_INCLUDE_DIRECTORIES = -isystem 
/home/wine/newstart/build_script/install-linux/include;-isystem 
/home/wine/newstart/build_script/install-linux/include/QtSvg;-isystem 
/home/wine/newstart/build_script/install-linux/include/QtGui;-isystem 
/home/wine/newstart/build_script/install-linux/include/QtCore

==5108== Memcheck, a memory error detector
==5108== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al.
==5108== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright
info
==5108== Command: examples/c++/qt_example
==5108== 
==5108== 
==5108== HEAP SUMMARY:
==5108==     in use at exit: 244,694 bytes in 2,230 blocks
==5108==   total heap usage: 42,734 allocs, 40,504 frees, 15,350,113
bytes allocated
==5108== 
==5108== LEAK SUMMARY:
==5108==    definitely lost: 1,000 bytes in 23 blocks
==5108==    indirectly lost: 5,518 bytes in 65 blocks
==5108==      possibly lost: 2,448 bytes in 7 blocks
==5108==    still reachable: 235,728 bytes in 2,135 blocks
==5108==         suppressed: 0 bytes in 0 blocks
==5108== Rerun with --leak-check=full to see details of leaked memory
==5108== 
==5108== For counts of detected and suppressed errors, rerun with: -v
==5108== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 6 from 6)

These valgrind results and the ones above show memory management is
fine (except for some leak issues) for both these cases on my platform
so I do not confirm the bad valgrind results for the
-DENABLE_DYNDRIVERS=OFF qt_example case you observe on your platform.

To investigate further whether it is the Qt4 version accessible on
your platform that is the cause of the qt_example memory management
issue on your platform, I suggest you might want to try the
build_qt4_lite target of epa_build yourself to see if you can match my
good results for that case.  (That "lite" Qt4 build only takes ~15
minutes on my computer and satisfies all of the ordinary PLplot build
needs according to my tests.)

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________

------------------------------------------------------------------------------
Rapidly troubleshoot problems before they affect your business. Most IT 
organizations don't have a clear picture of how application performance 
affects their revenue. With AppDynamics, you get 100% visibility into your 
Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics Pro!
http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to