Activity log for bug #1619616

Date Who What changed Old value New value Message
2016-09-02 10:57:45 Matthias Klose bug added bug
2016-09-02 10:57:57 Matthias Klose tags ftbfs
2016-09-02 10:58:05 Matthias Klose mir (Ubuntu): status New Confirmed
2016-09-02 10:58:10 Matthias Klose mir (Ubuntu): importance Undecided Critical
2016-09-02 10:58:15 Matthias Klose mir (Ubuntu): milestone ubuntu-16.09
2016-09-02 11:08:56 Alan Griffiths mir (Ubuntu): assignee Alan Griffiths (alan-griffiths)
2016-09-02 19:38:13 Alan Griffiths mir (Ubuntu): assignee Alan Griffiths (alan-griffiths)
2016-09-05 01:32:47 Daniel van Vugt bug task added mir
2016-09-05 01:32:53 Daniel van Vugt mir: importance Undecided Critical
2016-09-05 01:32:56 Daniel van Vugt mir: importance Critical High
2016-09-05 01:33:00 Daniel van Vugt mir (Ubuntu): importance Critical High
2016-09-05 01:33:04 Daniel van Vugt mir: milestone 0.25.0
2016-09-05 01:37:07 Daniel van Vugt summary mir fails to build with protobuf3 Mir test fails with protobuf3: Protobuf-can-be-reloaded (SEGFAULT)
2016-09-05 01:38:38 Daniel van Vugt description mir fails to build with protobuf3. build logs at https://launchpad.net/ubuntu/+source/mir/0.24.0+16.10.20160815.3-0ubuntu2 In file included from /«BUILDDIR»/mir-0.24.0+16.10.20160815.3/src/server/frontend/protobuf_message_processor.cpp:24:0: /«BUILDDIR»/mir-0.24.0+16.10.20160815.3/src/include/server/mir/frontend/template_protobuf_message_processor.h: In function ‘void mir::frontend::detail::invoke(Self*, Server*, void (ServerX::*)(const ParameterMessage*, ResultMessage*, google::protobuf::Closure*), const mir::frontend::detail::Invocation&)’: /«BUILDDIR»/mir-0.24.0+16.10.20160815.3/src/include/server/mir/frontend/template_protobuf_message_processor.h:68:13: error: ‘NewPermanentCallback’ is not a member of ‘google::protobuf’ google::protobuf::NewPermanentCallback< ^~~~~~ /«BUILDDIR»/mir-0.24.0+16.10.20160815.3/src/include/server/mir/frontend/template_protobuf_message_processor.h:68:13: note: suggested alternative: In file included from /usr/include/google/protobuf/stubs/common.h:48:0, from /«BUILDDIR»/mir-0.24.0+16.10.20160815.3/obj-x86_64-linux-gnu/src/protobuf/mir_protobuf.pb.h:9, from /«BUILDDIR»/mir-0.24.0+16.10.20160815.3/src/include/common/mir/protobuf/display_server.h:22, from /«BUILDDIR»/mir-0.24.0+16.10.20160815.3/src/server/frontend/display_server.h:22, from /«BUILDDIR»/mir-0.24.0+16.10.20160815.3/src/server/frontend/protobuf_message_processor.cpp:19: /usr/include/google/protobuf/stubs/callback.h:524:36: note: ‘google::protobuf::internal::NewPermanentCallback’ inline ResultCallback2<R, A1, A2>* NewPermanentCallback( ^~~~~~~~~~~~~~~~~~~~ In file included from /«BUILDDIR»/mir-0.24.0+16.10.20160815.3/src/server/frontend/protobuf_message_processor.cpp:24:0: /«BUILDDIR»/mir-0.24.0+16.10.20160815.3/src/include/server/mir/frontend/template_protobuf_message_processor.h:69:21: error: expected primary-expression before ‘,’ token Self, ^ /«BUILDDIR»/mir-0.24.0+16.10.20160815.3/src/include/server/mir/frontend/template_protobuf_message_processor.h:70:43: error: expected primary-expression before ‘,’ token ::google::protobuf::uint32, ^ /«BUILDDIR»/mir-0.24.0+16.10.20160815.3/src/include/server/mir/frontend/template_protobuf_message_processor.h:71:59: error: expected ‘(’ before ‘>’ token typename result_ptr_t<ResultMessage>::type>( ^ builds with 3.0.0-7, then has one failing test: test 19 Start 19: Protobuf-can-be-reloaded 19: Test command: /<<BUILDDIR>>/mir-0.24.0+16.10.20160815.3/obj-powerpc64le-linux-gnu/bin/mir_test_reload_protobuf 19: Test timeout computed to be: 9.99988e+06 19/19 Test #19: Protobuf-can-be-reloaded ..........................***Exception: SegFault 0.17 sec 95% tests passed, 1 tests failed out of 19 Total Test time (real) = 125.73 sec The following tests FAILED: 19 - Protobuf-can-be-reloaded (SEGFAULT) Errors while running CTest Makefile:85: recipe for target 'test' failed make[2]: *** [test] Error 8
2016-09-05 09:03:41 Alan Griffiths mir (Ubuntu): assignee Alan Griffiths (alan-griffiths)
2016-09-05 09:15:12 Daniel van Vugt mir: assignee Alan Griffiths (alan-griffiths)
2016-09-05 09:15:18 Daniel van Vugt mir: status New In Progress
2016-09-05 09:16:00 Daniel van Vugt bug task added protobuf (Ubuntu)
2016-09-05 11:12:15 Alan Griffiths attachment added Forward port fix from protobuf 2.6 https://bugs.launchpad.net/ubuntu/+source/mir/+bug/1619616/+attachment/4734807/+files/fix-protobuf
2016-09-05 13:59:19 Alan Griffiths attachment added fix-protobuf https://bugs.launchpad.net/ubuntu/+source/mir/+bug/1619616/+attachment/4734930/+files/fix-protobuf
2016-09-06 01:37:40 Daniel van Vugt protobuf (Ubuntu): assignee Alan Griffiths (alan-griffiths)
2016-09-06 01:37:44 Daniel van Vugt protobuf (Ubuntu): importance Undecided High
2016-09-06 01:37:47 Daniel van Vugt protobuf (Ubuntu): status New In Progress
2016-09-06 01:37:55 Daniel van Vugt mir: status In Progress Confirmed
2016-09-06 01:38:08 Daniel van Vugt mir: assignee Alan Griffiths (alan-griffiths)
2016-09-06 01:38:11 Daniel van Vugt mir (Ubuntu): assignee Alan Griffiths (alan-griffiths)
2016-09-07 10:25:29 Iain Lane bug added subscriber Iain Lane
2016-09-07 11:34:22 Alan Griffiths attachment added fix-protobuf https://bugs.launchpad.net/ubuntu/+source/mir/+bug/1619616/+attachment/4736088/+files/fix-protobuf
2016-09-07 12:48:44 Alan Griffiths attachment added fix-protobuf https://bugs.launchpad.net/ubuntu/+source/mir/+bug/1619616/+attachment/4736108/+files/fix-protobuf
2016-09-08 01:34:28 Daniel van Vugt mir: status Confirmed Invalid
2016-09-08 01:34:32 Daniel van Vugt mir (Ubuntu): status Confirmed Invalid
2016-09-08 10:52:06 Alan Griffiths description builds with 3.0.0-7, then has one failing test: test 19 Start 19: Protobuf-can-be-reloaded 19: Test command: /<<BUILDDIR>>/mir-0.24.0+16.10.20160815.3/obj-powerpc64le-linux-gnu/bin/mir_test_reload_protobuf 19: Test timeout computed to be: 9.99988e+06 19/19 Test #19: Protobuf-can-be-reloaded ..........................***Exception: SegFault 0.17 sec 95% tests passed, 1 tests failed out of 19 Total Test time (real) = 125.73 sec The following tests FAILED: 19 - Protobuf-can-be-reloaded (SEGFAULT) Errors while running CTest Makefile:85: recipe for target 'test' failed make[2]: *** [test] Error 8 builds with 3.0.0-7, then has one failing test: test 19 Start 19: Protobuf-can-be-reloaded 19: Test command: /<<BUILDDIR>>/mir-0.24.0+16.10.20160815.3/obj-powerpc64le-linux-gnu/bin/mir_test_reload_protobuf 19: Test timeout computed to be: 9.99988e+06 19/19 Test #19: Protobuf-can-be-reloaded ..........................***Exception: SegFault 0.17 sec 95% tests passed, 1 tests failed out of 19 Total Test time (real) = 125.73 sec The following tests FAILED: 19 - Protobuf-can-be-reloaded (SEGFAULT) Errors while running CTest Makefile:85: recipe for target 'test' failed make[2]: *** [test] Error 8 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ The reason this matters: The principle downstream from Mir (Unity8) loads Mir as one of a number of plugins, several of which use protobuf. That means that we're prone to being loaded, unloaded and reloaded and don't have control of this. We've encountered problems in this scenario before that have been traced to protobuf so we have a specific test. But other Unity8 plugins may encounter the same issue. As seen in comment #25 the problem here is entirely down to a change in the behavior of libmirprotobuf-lite - it no longer unloads on dlclose(). This is only a problem because there is code (see patch in comment #20) that assumes that the library will not be used after a call to google::protobuf::ShutdownProtobufLibrary() unless it is reloaded.
2016-09-08 11:21:48 Alan Griffiths attachment added my least bad solution https://bugs.launchpad.net/ubuntu/+source/mir/+bug/1619616/+attachment/4736828/+files/fix-protobuf
2016-09-08 11:22:05 Alan Griffiths mir: milestone 0.25.0
2016-09-08 11:22:12 Alan Griffiths mir (Ubuntu): milestone ubuntu-16.09
2016-09-09 02:27:24 Daniel van Vugt protobuf (Ubuntu): status In Progress Fix Committed
2016-09-15 13:30:08 Launchpad Janitor protobuf (Ubuntu): status Fix Committed Fix Released