[CMake] groups of ascii nul ('\0) characters inserted into make output but this just occurs for parallel builds (SOLVED)

Alan W. Irwin Alan.W.Irwin1234 at gmail.com
Mon Jul 9 15:14:42 EDT 2018


On 2018-07-09 09:10+0200 Nils Gladitz wrote:

> On Sun, Jul 8, 2018 at 11:00 PM Alan W. Irwin <Alan.W.Irwin1234 at gmail.com>
> 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
__________________________


More information about the CMake mailing list