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