Mir

Autolanding is failing to build libmirserver.so.41 with error: undefined reference to '_Unwind_Resume'

Bug #1616291 reported by Daniel van Vugt
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
Fix Released
Critical
Alexandros Frantzis

Bug Description

Autolandings (but not CI runs prior to autolanding) are failing with:

14:42:07 /usr/include/c++/6/bits/unique_ptr.h:787: error: undefined reference to '_Unwind_Resume'
14:42:07 /usr/include/x86_64-linux-gnu/c++/6/bits/gthr-default.h:778: error: undefined reference to '_Unwind_Resume'
14:42:07 ../../../src/server/glib_main_loop_sources.cpp:316: error: undefined reference to '_Unwind_Resume'
14:42:07 /usr/include/boost/exception/exception.hpp:326: error: undefined reference to '_Unwind_Resume'
14:42:07 collect2: error: ld returned 1 exit status
14:42:07 make[3]: *** [lib/libmirserver.so.41] Error 1
14:42:07 make[2]: *** [src/server/CMakeFiles/mirserver.dir/all] Error 2
14:42:07 src/server/CMakeFiles/mirserver.dir/build.make:420: recipe for target 'lib/libmirserver.so.41' failed
14:42:07 make[3]: Leaving directory '/��BUILDDIR��/mir-0.25.0+yakkety1941bzr3659/obj-x86_64-linux-gnu'
14:42:07 CMakeFiles/Makefile2:3749: recipe for target 'src/server/CMakeFiles/mirserver.dir/all' failed
14:42:07 make[2]: Leaving directory '/��BUILDDIR��/mir-0.25.0+yakkety1941bzr3659/obj-x86_64-linux-gnu'
14:42:07 make[1]: *** [all] Error 2
14:42:07 Makefile:141: recipe for target 'all' failed
14:42:07 make[1]: Leaving directory '/��BUILDDIR��/mir-0.25.0+yakkety1941bzr3659/obj-x86_64-linux-gnu'
14:42:07 dh_auto_build: make -j8 returned exit code 2
14:42:07 make: *** [build] Error 2
14:42:07 debian/rules:13: recipe for target 'build' failed
14:42:07 dpkg-buildpackage: error: debian/rules build gave error exit status 2

https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1914/consoleFull
https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=yakkety/1915/consoleFull

Related branches

Revision history for this message
Daniel van Vugt (vanvugt) wrote : Re: CI is failing to build libmirserver.so.41 with error: undefined reference to '_Unwind_Resume'

I can't reproduce the failure locally on a yakkety desktop. Seems something is out of date in CI only :(

summary: - CI is failing with error: undefined reference to '_Unwind_Resume'
+ CI is failing to build mirscreencast with error: undefined reference to
+ '_Unwind_Resume'
description: updated
summary: - CI is failing to build mirscreencast with error: undefined reference to
- '_Unwind_Resume'
+ CI is failing to build libmirserver.so.41 with error: undefined
+ reference to '_Unwind_Resume'
description: updated
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Magically fixed itself in the last few CI runs I've seen.

Changed in mir:
status: New → Incomplete
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

This appears to have been a short-lived flaw in CI itself.

Changed in mir:
status: Incomplete → Invalid
Revision history for this message
Daniel van Vugt (vanvugt) wrote :
Changed in mir:
status: Invalid → New
summary: - CI is failing to build libmirserver.so.41 with error: undefined
+ Autolanding is failing to build libmirserver.so.41 with error: undefined
reference to '_Unwind_Resume'
Changed in mir:
importance: High → Critical
milestone: none → 0.25.0
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Tagged 'testsfail' just for convenience when categorizing all our CI failures.

tags: added: testsfail
Revision history for this message
Daniel van Vugt (vanvugt) wrote :
description: updated
Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

I can reproduce this locally with latest gcc (6.2.0) on yakkety. LTO seems to be causing this failure, since linking libmirserver.so.41 without LTO (even if everything else is still built with lto + fat-lto-object) resolves the problem.

Changed in mir:
assignee: nobody → Alexandros Frantzis (afrantzis)
status: New → In Progress
Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

It turned out that the problem is caused by the gold+LTO combination on yakkety. Since there doesn't seem to be anything we can do in our code to workaround this, I have implemented the following build configuration in mir-jenkaas

autolanding: ld.bfd + LTO
ci: ld.gold + noopt

Moving to ld.bfd + LTO for autolanding has the additional benefit of being the same setup used for release package builds.

I chose to retain ld.gold for the normal ci build since it provides a build time reduction (~10% reduction in total build time), and using another linker may help to uncover problems in our code.

Changed in mir:
status: In Progress → Fix Released
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Sounds like a case where the bug should be assigned to mir-jenkaas, if that was a project in Launchpad?...

Changed in mir:
milestone: 0.25.0 → none
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.