Hi Andrew: I just discovered another issue which may be release critical.
For the -DENABLE_DYNDRIVERS=OFF case (with everything else default so this issue occurs when qt_example is built against the system Qt4 libraries), the usual test_interactive target generated a glibc double free error message for examples/c++/qt_example. When I investigated further with valgrind, here were the results. ==9797== Memcheck, a memory error detector ==9797== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al. ==9797== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info ==9797== Command: examples/c++/qt_example ==9797== ==9797== Invalid free() / delete / delete[] / realloc() ==9797== at 0x4C279DC: operator delete(void*) (vg_replace_malloc.c:457) ==9797== by 0x6F28E64: __cxa_finalize (cxa_finalize.c:56) ==9797== by 0x644B352: ??? (in /home/software/plplot/HEAD/build_dir/src/libplplot.so.12.0.1) ==9797== by 0x400E4CB: _dl_fini (dl-fini.c:244) ==9797== by 0x6F28AE1: __run_exit_handlers (exit.c:78) ==9797== by 0x6F28B34: exit (exit.c:100) ==9797== by 0x6F10EB3: (below main) (libc-start.c:276) ==9797== Address 0x10ad0500 is 0 bytes inside a block of size 40 free'd ==9797== at 0x4C279DC: operator delete(void*) (vg_replace_malloc.c:457) ==9797== by 0x6F28E64: __cxa_finalize (cxa_finalize.c:56) ==9797== by 0x621D362: ??? (in /home/software/plplot/HEAD/build_dir/bindings/qt_gui/libplplotqt.so.1.0.0) ==9797== by 0x400E4CB: _dl_fini (dl-fini.c:244) ==9797== by 0x6F28AE1: __run_exit_handlers (exit.c:78) ==9797== by 0x6F28B34: exit (exit.c:100) ==9797== by 0x6F10EB3: (below main) (libc-start.c:276) ==9797== ==9797== Invalid read of size 1 ==9797== at 0x5ED0FCD: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.2) ==9797== by 0x6F28E64: __cxa_finalize (cxa_finalize.c:56) ==9797== by 0x644B352: ??? (in /home/software/plplot/HEAD/build_dir/src/libplplot.so.12.0.1) ==9797== by 0x400E4CB: _dl_fini (dl-fini.c:244) ==9797== by 0x6F28AE1: __run_exit_handlers (exit.c:78) ==9797== by 0x6F28B34: exit (exit.c:100) ==9797== by 0x6F10EB3: (below main) (libc-start.c:276) ==9797== Address 0x20 is not stack'd, malloc'd or (recently) free'd ==9797== ==9797== ==9797== Process terminating with default action of signal 11 (SIGSEGV) ==9797== Access not within mapped region at address 0x20 ==9797== at 0x5ED0FCD: QObject::~QObject() (in /usr/lib/x86_64-linux-gnu/libQtCore.so.4.8.2) ==9797== by 0x6F28E64: __cxa_finalize (cxa_finalize.c:56) ==9797== by 0x644B352: ??? (in /home/software/plplot/HEAD/build_dir/src/libplplot.so.12.0.1) ==9797== by 0x400E4CB: _dl_fini (dl-fini.c:244) ==9797== by 0x6F28AE1: __run_exit_handlers (exit.c:78) ==9797== by 0x6F28B34: exit (exit.c:100) ==9797== by 0x6F10EB3: (below main) (libc-start.c:276) ==9797== If you believe this happened as a result of a stack ==9797== overflow in your program's main thread (unlikely but ==9797== possible), you can try to increase the size of the ==9797== main thread stack using the --main-stacksize= flag. ==9797== The main thread stack size used in this run was 8388608. ==9797== ==9797== HEAP SUMMARY: ==9797== in use at exit: 360,355 bytes in 3,145 blocks ==9797== total heap usage: 21,464 allocs, 18,320 frees, 5,936,081 bytes allocated ==9797== ==9797== LEAK SUMMARY: ==9797== definitely lost: 1,776 bytes in 13 blocks ==9797== indirectly lost: 3,466 bytes in 84 blocks ==9797== possibly lost: 3,032 bytes in 12 blocks ==9797== still reachable: 352,081 bytes in 3,036 blocks ==9797== suppressed: 0 bytes in 0 blocks ==9797== Rerun with --leak-check=full to see details of leaked memory ==9797== ==9797== For counts of detected and suppressed errors, rerun with: -v ==9797== ERROR SUMMARY: 2 errors from 2 contexts (suppressed: 12 from 8) Segmentation fault In contrast I get relatively good valgrind results when -DENABLE_DYNDRIVERS=ON (the default case) ==12544== Memcheck, a memory error detector ==12544== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al. ==12544== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info ==12544== Command: examples/c++/qt_example ==12544== ==12544== ==12544== HEAP SUMMARY: ==12544== in use at exit: 268,716 bytes in 2,536 blocks ==12544== total heap usage: 20,738 allocs, 18,202 frees, 5,877,042 bytes allocated ==12544== ==12544== LEAK SUMMARY: ==12544== definitely lost: 1,600 bytes in 11 blocks ==12544== indirectly lost: 3,466 bytes in 84 blocks ==12544== possibly lost: 2,448 bytes in 7 blocks ==12544== still reachable: 261,202 bytes in 2,434 blocks ==12544== suppressed: 0 bytes in 0 blocks ==12544== Rerun with --leak-check=full to see details of leaked memory ==12544== ==12544== For counts of detected and suppressed errors, rerun with: -v ==12544== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 10 from 6) In both cases I simply exited the GUI immediately using the menu item which is equivalent to ALT + F4. Would you be willing to take a look at this? 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 __________________________ ------------------------------------------------------------------------------ Dive into the World of Parallel Programming The Go Parallel Website, sponsored by Intel and developed in partnership with Slashdot Media, is your hub for all things parallel software development, from weekly thought leadership blogs to news, videos, case studies, tutorials and more. Take a look and join the conversation now. http://goparallel.sourceforge.net/ _______________________________________________ Plplot-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/plplot-devel
