On 2018-07-09 09:10+0200 Nils Gladitz wrote:
On Sun, Jul 8, 2018 at 11:00 PM Alan W. Irwin <[email protected]> wrote:My parallel builds on my Linux OS (currently Debian Buster, but this also happened for Debian Jessie so this is a long-standing problem) have ascii null ('\0) characters inserted in the output while the corresponding non-parallel build does not have those extra characters.I narrowed it down with Ninja which buffers command outputs in parallel builds which makes it easier to match output to specific commands. Alternatively I think CTest launchers might have helped with this too. CMake uses them to redirect build command outputs to distinct files for CTest submissions. I see null bytes coming from the "cat test.error" in the script file generated from https://sourceforge.net/p/plplot/plplot/ci/master/tree/plplot_test/test_c.sh.in If this only shows up in parallel builds perhaps multiple processes are reading/writing the same test.error file in parallel? Haven't looked closer than that. You probably know better where to look from there.
Hi Nils: Many thanks for going "above and beyond" with this issue. Indeed, many of the language test scripts in plplot_test write to "test.error" and then output it after the command has been run with "cat test.error". Many of those test.error files are in the same directory so this constitutes a many-way name clash and therefore a set of clear race condition for parallel builds that has existed for at least the last decade in PLplot. UGH! I fixed those nameclashes with PLplot commit a4bada004 (see that log message for additional commentary), and the extra '\0' characters in parallel output are now gone. I have no idea why the symptom of the race is the extra '\0' characters, but I am just happy to have these symptoms as well as the race conditions fixed! Thanks for your key help in leading me to the solution of this long-standing PLplot build-system issue. Alan __________________________ Alan W. Irwin 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 __________________________ -- Powered by www.kitware.com Please keep messages on-topic and check the CMake FAQ at: http://www.cmake.org/Wiki/CMake_FAQ Kitware offers various services to support the CMake community. For more information on each offering, please visit: CMake Support: http://cmake.org/cmake/help/support.html CMake Consulting: http://cmake.org/cmake/help/consulting.html CMake Training Courses: http://cmake.org/cmake/help/training.html Visit other Kitware open-source projects at http://www.kitware.com/opensource/opensource.html Follow this link to subscribe/unsubscribe: https://cmake.org/mailman/listinfo/cmake
