[regression] Mir servers crash with SIGABRT - assertion failed at buffer_queue.cpp:136 - "!pending_client_notifications.empty()"

Bug #1335481 reported by green-elephant999
36
This bug affects 5 people
Affects Status Importance Assigned to Milestone
Mir
Fix Released
Critical
Alexandros Frantzis
0.4
Won't Fix
Critical
Unassigned
0.5
Fix Released
Critical
Mir development team
mir (Ubuntu)
Fix Released
Critical
Mir development team
unity-system-compositor (Ubuntu)
Invalid
Undecided
Unassigned

Bug Description

Can't say so much, opened the launched an had a crash.

ProblemType: Crash
DistroRelease: Ubuntu 14.10
Package: unity-system-compositor 0.0.4+14.10.20140625-0ubuntu1
ProcVersionSignature: Ubuntu 3.15.0-6.11-generic 3.15.0
Uname: Linux 3.15.0-6-generic x86_64
ApportVersion: 2.14.3-0ubuntu2
Architecture: amd64
BootLog:
 * Setting up X socket directories... 
[ OK ]
  * Starting automatic crash report generation: apport 
[ OK ]
Date: Sat Jun 28 20:23:03 2014
ExecutablePath: /usr/sbin/unity-system-compositor
GraphicsCard:
 Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller (primary) [8086:2a02] (rev 03) (prog-if 00 [VGA controller])
   Subsystem: Acer Incorporated [ALI] Device [1025:0136]
   Subsystem: Acer Incorporated [ALI] Device [1025:0136]
InstallationDate: Installed on 2014-06-19 (9 days ago)
InstallationMedia: Ubuntu 14.10 "Utopic Unicorn" - Alpha amd64+mac (20140619)
ProcCmdline: /usr/sbin/unity-system-compositor --file /run/mir_socket --from-dm-fd 10 --to-dm-fd 13 --vt 7
ProcEnviron:

Signal: 6
SourcePackage: unity-system-compositor
SystemImageInfo: Error: [Errno 2] No such file or directory: 'system-image-cli'
Title: unity-system-compositor crashed with SIGABRT in __assert_fail_base()
UpgradeStatus: No upgrade log present (probably fresh install)
UserGroups:

version.libdrm: libdrm2 2.4.54-1
version.lightdm: lightdm 1.11.3-0ubuntu1
version.mesa: libegl1-mesa-dev N/A

Related branches

Revision history for this message
green-elephant999 (gergarfe) wrote :
Revision history for this message
Apport retracing service (apport) wrote : Stacktrace.txt
Revision history for this message
Apport retracing service (apport) wrote : StacktraceSource.txt
Revision history for this message
Apport retracing service (apport) wrote : StacktraceTop.txt
Revision history for this message
Apport retracing service (apport) wrote : ThreadStacktrace.txt
Changed in unity-system-compositor (Ubuntu):
importance: Undecided → Medium
tags: removed: need-amd64-retrace
summary: - unity-system-compositor crashed with SIGABRT in __assert_fail_base()
+ unity-system-compositor crashed with SIGABRT - assertion failed at
+ buffer_queue.cpp:136 - "!pending_client_notifications.empty()"
Changed in mir:
importance: Undecided → Critical
Changed in unity-system-compositor (Ubuntu):
importance: Medium → Critical
information type: Private → Public
information type: Public → Public Security
information type: Public Security → Public
tags: added: rtm14
Changed in mir:
milestone: none → 0.5.0
Changed in mir:
status: New → Triaged
affects: unity-system-compositor (Ubuntu) → mir (Ubuntu)
Changed in mir (Ubuntu):
status: New → Triaged
Changed in unity-system-compositor (Ubuntu):
status: New → Invalid
Changed in mir:
milestone: 0.5.0 → 0.6.0
Revision history for this message
Alexandros Frantzis (afrantzis) wrote : Re: unity-system-compositor crashed with SIGABRT - assertion failed at buffer_queue.cpp:136 - "!pending_client_notifications.empty()"

This seems related to https://code.launchpad.net/~mir-team/mir/fix-1339700/+merge/226233 , so it may be a different manifestation of bug 1339700.

From Alberto's last comment in the MP above:

"Ok, after staring at TimeoutFrameDroppingPolicy there are scenarios that can lead to an assert." (referring to the assertion we are seeing in this bug)

Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Nope, I just triggered the assertion using the latest code r1774:

mir_demo_server_shell: /home/dan/bzr/mir/prof/src/server/compositor/buffer_queue.cpp:136: mir::compositor::BufferQueue::BufferQueue(int, const std::shared_ptr<mir::graphics::GraphicBufferAllocator>&, const mir::graphics::BufferProperties&, const mir::compositor::FrameDroppingPolicyFactory&)::__lambda0: Assertion `!pending_client_notifications.empty()' failed.

Instructions:
 1. Run mir_demo_server_shell under callgrind on N4; Have pateice.
 2. Run mir_demo_client_scroll
 3. Kill mir_demo_client_scroll with Ctrl+C
 4. Server aborts.

Revision history for this message
Alexandros Frantzis (afrantzis) wrote :

> Instructions:
> 1. Run mir_demo_server_shell under callgrind on N4; Have pateice.
> 2. Run mir_demo_client_scroll
> 3. Kill mir_demo_client_scroll with Ctrl+C
> 4. Server aborts.

I can reproduce on laptop when using valgrind/memcheck, callgrind didn't do it for me.

Investigating.

Changed in mir:
assignee: nobody → Alexandros Frantzis (afrantzis)
Changed in mir:
status: Triaged → In Progress
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:mir/devel at revision None, scheduled for release in mir, milestone Unknown

Changed in mir:
status: In Progress → Fix Committed
summary: - unity-system-compositor crashed with SIGABRT - assertion failed at
+ Mir servers crash with SIGABRT - assertion failed at
buffer_queue.cpp:136 - "!pending_client_notifications.empty()"
Changed in mir (Ubuntu):
status: Triaged → In Progress
assignee: nobody → Mir development team (mir-team)
Revision history for this message
Launchpad Janitor (janitor) wrote : Re: Mir servers crash with SIGABRT - assertion failed at buffer_queue.cpp:136 - "!pending_client_notifications.empty()"

This bug was fixed in the package mir - 0.5.0+14.10.20140724-0ubuntu1

---------------
mir (0.5.0+14.10.20140724-0ubuntu1) utopic; urgency=medium

  [ Kevin Gunn ]
  * Fixed: Crashing on assert of empty client notification queue (LP: #1335481)
 -- Ubuntu daily release <email address hidden> Thu, 24 Jul 2014 08:22:05 +0000

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

Bisected:

------------------------------------------------------------
revno: 1675 [merge]
author: Alberto Aguirre <email address hidden>
committer: Tarmac
branch nick: development-branch
timestamp: Tue 2014-06-03 17:49:45 +0000
message:
  Allow buffer swapping even when compositor is turned off or blocked. Fixes: https://bugs.launchpad.net/bugs/1308843, https://bugs.launchpad.net/bugs/1308844.

  Approved by PS Jenkins bot, Chris Halse Rogers, Kevin DuBois, Alexandros Frantzis.
------------------------------------------------------------

summary: - Mir servers crash with SIGABRT - assertion failed at
+ [regression] Mir servers crash with SIGABRT - assertion failed at
buffer_queue.cpp:136 - "!pending_client_notifications.empty()"
tags: added: regression
Changed in mir:
status: Fix Committed → Fix Released
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.