Bug 1109420 - plasma5-desktop does not build reproducibly (parallelism)
Summary: plasma5-desktop does not build reproducibly (parallelism)
Status: RESOLVED FIXED
Alias: None
Product: openSUSE Tumbleweed
Classification: openSUSE
Component: KDE Workspace (Plasma) (show other bugs)
Version: Current
Hardware: Other openSUSE Factory
: P5 - None : Normal (vote)
Target Milestone: ---
Assignee: E-Mail List
QA Contact: E-mail List
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 1102408
  Show dependency treegraph
 
Reported: 2018-09-24 09:06 UTC by Bernhard Wiedemann
Modified: 2018-11-27 10:04 UTC (History)
0 users

See Also:
Found By: Development
Services Priority:
Business Priority:
Blocker: ---
Marketing QA Status: ---
IT Deployment: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Bernhard Wiedemann 2018-09-24 09:06:37 UTC
While working on reproducible builds for openSUSE, I found that
when comparing builds of plasma5-desktop with
osc build --vm-type=kvm -j1 and -j2

There is always such a difference:

http://rb.zq1.de/compare.factory-20180916/plasma5-desktop-compare.out

/usr/bin/kcolorschemeeditor differs in assembler output
-_ZN18SchemeEditorDialog18qt_static_metacallEP7QObjectN11QMetaObject4CallEiPPv.part.1:
+_ZN19SchemeEditorEffects18qt_static_metacallEP7QObjectN11QMetaObject4CallEiPPv.part.1:

and comparing build-roots shows

Binary files /var/tmp/build-root.4/.mount/home/abuild/rpmbuild/BUILD/plasma-desktop-5.13.5/build/kcms/colors/CMakeFiles/kcolorschemeeditor.dir/kcolorschemeeditor_autogen/mocs_compilation.cpp.o and /var/tmp/build-root.4b/.mount/home/abuild/rpmbuild/BUILD/plasma-desktop-5.13.5/build/kcms/colors/CMakeFiles/kcolorschemeeditor.dir/kcolorschemeeditor_autogen/mocs_compilation.cpp.o differ

But interestingly, the mocs_compilation.cpp files do not differ.

This could indicate that
plasma-desktop-5.13.5/kcms/colors/CMakeLists.txt
does not sufficiently specify dependencies for ordering
or that some other kind of build-time race occurs.

The diff goes away when building with
make -C kcms/colors/
%make_jobs

But that would only be a workaround and it would be much better to understand and fix the cause of the diff.
Comment 1 Bernhard Wiedemann 2018-11-21 15:20:48 UTC
difflog shows that in the parallel case, there is
+ [  0%] Automatic MOC for target kcolorschemeeditor
  [  0%] Automatic MOC for target kcm_colors

2 MOC generators being run at the same time / in different order

=> submitted https://phabricator.kde.org/D17076
Comment 2 Bernhard Wiedemann 2018-11-27 10:04:07 UTC
This is fixed upstream now.