Skip to content

arduino: Race condition in sys/arduino/Makefile.include #5848

@jnohlgard

Description

@jnohlgard

https://ci.riot-labs.de/RIOT-OS/RIOT/5794/291c1a54ebfde8e5d7ff3db97d5b01befae3b7f0/output.html#cortex_m3_1
observed in #5794

https://github.com/RIOT-OS/RIOT/blob/master/sys/arduino/Makefile.include#L6 is executed in parallel for all targets of a make buildtest

https://github.com/RIOT-OS/RIOT/blob/master/dist/tools/arduino/pre_build.sh#L17 does not write the file atomically, which means that the file may be truncated at a time when the compiler from one of the boards tries to read it.

Suggested solution: Create the _sketches.cpp file inside ${BINDIR} and create it as a part of the build process, not during evaluation of the Makefile. Also, write _sketches.cpp atomically by building a temporary file first, then renaming to the real file.

Metadata

Metadata

Assignees

Labels

Area: build systemArea: Build systemArea: toolsArea: Supplementary toolsType: bugThe issue reports a bug / The PR fixes a bug (including spelling errors)

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions