[regression] mirscreencast hangs during screencast creation

Bug #1662997 reported by Kevin DuBois on 2017-02-08
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Fix Released
Kevin DuBois
Fix Released
Kevin DuBois
mir (Ubuntu)

Bug Description

hmm, sometime between 3980 and tip, mirscreencast started hanging during screencast creation. Bound to generate some complaints.

Thread 1 "mirscreencast.b" received signal SIGTSTP, Stopped (user).
pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
185 ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S: No such file or directory.
(gdb) bt
#0 pthread_cond_wait@@GLIBC_2.3.2 () at ../sysdeps/unix/sysv/linux/x86_64/pthread_cond_wait.S:185
#1 0x00007ffff7449afc in std::condition_variable::wait(std::unique_lock<std::mutex>&) ()
   from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#2 0x00007ffff7ea131a in std::condition_variable::wait<MirWaitHandle::wait_for_all()::<lambda()> >(std::unique_lock<std::mutex> &, MirWaitHandle::<lambda()>) (this=0x5555555da6d0, __lock=..., __p=...)
    at /usr/include/c++/6/condition_variable:99
#3 0x00007ffff7ea1061 in MirWaitHandle::wait_for_all (this=0x5555555da6a8)
    at /home/kdub/source/mir/mir/src/client/mir_wait_handle.cpp:53
#4 0x00007ffff7ee5420 in (anonymous namespace)::create_screencast (spec=0x5555555d9bf0)
    at /home/kdub/source/mir/mir/src/client/mir_screencast_api.cpp:38
#5 0x00007ffff7ee5631 in mir_screencast_create_sync (spec=0x5555555d9bf0)
    at /home/kdub/source/mir/mir/src/client/mir_screencast_api.cpp:90
#6 0x0000555555591430 in main (argc=3, argv=0x7fffffffe478)
    at /home/kdub/source/mir/mir/src/utils/screencast.cpp:568

Related branches

Kevin DuBois (kdub) on 2017-02-08
tags: added: regression
description: updated
Changed in mir:
assignee: nobody → Kevin DuBois (kdub)
status: New → In Progress
Kevin DuBois (kdub) wrote :

seems rev 4015 containing the black-nested-server fix is the culprit. mirscreencast does not fit the regex for smoke test in CI, so seems thats how it slipped past there.

Kevin DuBois (kdub) wrote :

yeah, the problem in 1661521 was because we weren't checking client pixel format, so the bo import failed. The solution to 1661521 introduced a check there (which is correct), but exposed the secondary problem that we weren't sending the screencast buffers back with the right pixel info.

summary: - mirscreencast hangs during screencast creation
+ [regression] mirscreencast hangs during screencast creation
Mir CI Bot (mir-ci-bot) wrote :

Fix committed into lp:mir at revision None, scheduled for release in mir, milestone 1.0.0

Changed in mir:
status: In Progress → Fix Committed
Changed in mir (Ubuntu):
status: New → Triaged
importance: Undecided → High
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package mir - 0.26.1+17.04.20170209.1-0ubuntu1

mir (0.26.1+17.04.20170209.1-0ubuntu1) zesty; urgency=medium

  * New upstream release 0.26.1 (https://launchpad.net/mir/+milestone/0.26.1)
    - ABI summary:
      . mirclient ABI unchanged at 9
      . mirserver ABI unchanged at 43
      . mircommon ABI unchanged at 7
      . mirplatform ABI bumped to 15
      . mirprotobuf ABI unchanged at 3
      . mirplatformgraphics ABI bumped to 12
      . mirclientplatform ABI unchanged at 5
      . mirinputplatform ABI unchanged at 6
      . mircore ABI unchanged at 1
    - Enhancements:
      . Support for MirBuffer API that allows for better management of
        hardware/software buffers.
      . Support for MirPresentationChain API that allows better control
        over {de}queueing of individual buffers {from}to the server.
      . Interim support for MirRenderSurface API that provides a unit of
        renderable for lower level content such as MirBufferStreams and
        MirPresentationChains, etc.. MirRenderSurface API is marked
        deprecated as it (and the relevant entry points) will be renamed to
        MirSurface before general availability. It will initially be used for
        revamping support for EGL drivers.
      . Synchronous version of mir_prompt_session_new_fds_for_prompt_providers()
        API (mir_prompt_session_new_fds_for_prompt_providers_sync()) added for
      . Better name for MirPersistentId-->MirWindowId. MirPersistentId has now
        been deprecated.
    - Bugs fixed:
      . [regression] Unity8 stutters constantly (like half frame rate).
        (LP: #1661128)
      . mir 0.26 - spinner loading animation, minimize, maximize too fast.
        (LP: #1661072)
      . [regression] Nested server segfaults or rapidly logs exceptions when a
        fullscreen client starts [in mir_presentation_chain_set_dropping_mode
        ... std::exception::what: Operation not permitted] (LP: #1661508)
      . mir_window_request_persistent_id_sync seg faults when called twice.
        (LP: #1661704)
      . [regression] Windowed clients of nested servers are all black.
        (LP: #1661521)
      . Mir graphics platform ABI broke in series 0.26 but sonames never
        changed (LP: #1662455)
      . Fixes for 0.26 changelog.
      . [regression] mirscreencast hangs during screencast creation. (LP: #1662997)
      . libmirclient-dev missing build dependency on libmircore-dev. (LP: #1662942)
      . mir_window_spec_set_cursor_name() doesn't trigger
        mir::scene::SurfaceObserver::cursor_image_set_to. (LP: #1663197)
      . [regression] Software clients of nested servers are all black in Mir 0.25.0
        and later. (LP: #1663062)

 -- Cemil Azizoglu <email address hidden> Thu, 09 Feb 2017 21:46:32 +0000

Changed in mir (Ubuntu):
status: Triaged → Fix Released
Changed in mir:
status: Fix Committed → Fix Released
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers