This issue tracker has been migrated to GitHub, and is currently read-only.
For more information, see the GitHub FAQs in the Python's Developer Guide.

Author nascheme
Recipients gregory.p.smith, nascheme, vstinner
Date 2018-01-08.17:33:30
SpamBayes Score -1.0
Marked as misclassified Yes
Message-id <1515432810.87.0.467229070634.issue31963@psf.upfronthosting.co.za>
In-reply-to
Content
That's mysterious.  I reviewed the 'stdout' log from the buildbot.  The removal of profile data is run early in the build:

find . -name '*.gc??' -exec rm -f {} ';'

Later, the bytearrayobject is compiled with profile generation enabled:

gcc -pthread -c -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes    -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fprofile-generate  -I. -I./Include    -DPy_BUILD_CORE -o Objects/bytearrayobject.o Objects/bytearrayobject.c

When the unit tests run, we get errors:

profiling:/var/lib/buildbot/slaves/enable-optimizations-bot/3.x.gps-debian-profile-opt.nondebug/build/Objects/bytearrayobject.gcda:Merge mismatch for function 35

The second build (with profile use) fails because of the missing profile information:

gcc -pthread -c -Wno-unused-result -Wsign-compare -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes    -std=c99 -Wextra -Wno-unused-result -Wno-unused-parameter -Wno-missing-field-initializers -Werror=implicit-function-declaration -fprofile-use -fprofile-correction  -I. -I./Include    -DPy_BUILD_CORE -o Objects/bytearrayobject.o Objects/bytearrayobject.c
Objects/bytearrayobject.c: In function ‘bytearray_startswith’:
Objects/bytearrayobject.c:2429:1: error: the control flow of function ‘bytearray_startswith’ does not match its profile data (counter ‘time_profiler’) [-Werror=coverage-mismatch]
 }
 ^
cc1: some warnings being treated as errors

Seems like a compiler bug to me.  Wild theory, could it be something to do with address randomization and forking?  Looks like maybe the merge mismatch errors come when the 'python' executable forks.
History
Date User Action Args
2018-01-08 17:33:30naschemesetrecipients: + nascheme, gregory.p.smith, vstinner
2018-01-08 17:33:30naschemesetmessageid: <1515432810.87.0.467229070634.issue31963@psf.upfronthosting.co.za>
2018-01-08 17:33:30naschemelinkissue31963 messages
2018-01-08 17:33:30naschemecreate