Mir

Integration test: AndroidInternalClient.internal_client_creation_and_use hangs on Nexus 10

Bug #1270685 reported by Daniel van Vugt on 2014-01-20
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
Fix Released
Medium
Kevin DuBois
mir (Ubuntu)
Medium
Unassigned

Bug Description

AndroidInternalClient.internal_client_creation_and_use hangs on Nexus 10...

$ bin/mir_integration_tests
...
[----------] 1 test from AndroidInternalClient
[ RUN ] AndroidInternalClient.internal_client_creation_and_use

WORKAROUND:
bin/mir_integration_tests \
  --gtest_filter="-AndroidInternalClient.internal_client_creation_and_use"

Related branches

Daniel van Vugt (vanvugt) wrote :

(gdb) bt
#0 0xb65c9724 in __libc_do_syscall ()
   from /lib/arm-linux-gnueabihf/libpthread.so.0
#1 0xb65c52e6 in pthread_cond_wait@@GLIBC_2.4 ()
   from /lib/arm-linux-gnueabihf/libpthread.so.0
#2 0xb64b7654 in std::condition_variable::wait(std::unique_lock<std::mutex>&)
    () from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
#3 0xb6dbc350 in mir::compositor::SwitchingBundle::client_acquire (
    this=0x21e64e8)
    at /home/dan/bzr/mir/dev/src/server/compositor/switching_bundle.cpp:213
#4 0xb6db3a1a in mir::compositor::BufferStreamSurfaces::swap_client_buffers (
    this=0x21a1bf8, buffer=@0x222c2cc: 0x21d2788)
    at /home/dan/bzr/mir/dev/src/server/compositor/buffer_stream_surfaces.cpp:58
#5 0xb6e1d3b8 in mir::scene::BasicSurface::swap_buffers (this=0x21a1c28,
    buffer=@0x222c2cc: 0x21d2788)
    at /home/dan/bzr/mir/dev/src/server/scene/basic_surface.cpp:121
#6 0xb6e408ba in mir::scene::SurfaceImpl::swap_buffers (this=0x21a2648,
    buffer=@0x222c2cc: 0x21d2788)
    at /home/dan/bzr/mir/dev/src/server/scene/surface_impl.cpp:108
#7 0xb6de2432 in mir::frontend::ForwardingInternalSurface::swap_buffers (
    this=0x21a1c88, buffer=@0x222c2cc: 0x21d2788)
    at /home/dan/bzr/mir/dev/src/server/frontend/surface.cpp:42
#8 0xb694818c in mir::graphics::android::InternalClientWindow::driver_returns_---Type <return> to continue, or q <return> to quit---
buffer (this=0x222c2c0, key=0x2229820, fence_fd=-1)
    at /home/dan/bzr/mir/dev/src/platform/graphics/android/internal_client_window.cpp:68
#9 0xb694f66a in mir::graphics::android::MirNativeWindow::cancelBuffer (
    this=0x21b6c60, buffer=0x2229820, fence=-1)
    at /home/dan/bzr/mir/dev/src/shared/graphics/android/mir_native_window.cpp:186
#10 0xb694f456 in (anonymous namespace)::cancelBuffer_static (
    window=0x21b6c60, buffer=0x2229820, fence_fd=-1)
    at /home/dan/bzr/mir/dev/src/shared/graphics/android/mir_native_window.cpp:121

description: updated
Kevin DuBois (kdub) wrote :

pretty sure we just block in this test due to swapinterval 1 being set (and this driver will consume more buffers than other drivers)

Changed in mir:
status: Triaged → Confirmed
Kevin DuBois (kdub) wrote :

yes, the nexus 10 driver would request enough buffers that a buffer acquire would block. The linked branch changes the test to run at swap interval 0 so there's no blockage if the compositor never consumes a buffer. (which in this case, since its not running in the test, it never would)

Changed in mir:
assignee: nobody → Kevin DuBois (kdub)
status: Confirmed → In Progress
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
Changed in mir:
milestone: none → 0.1.5
Changed in mir:
status: Fix Committed → Fix Released
Daniel van Vugt (vanvugt) wrote :

mir (0.1.5+14.04.20140212-0ubuntu1) trusty; urgency=medium

  [ Kevin Gunn ]
  * Cherry-picked from future release 0.1.6:
    - frontend, shell: provide the client process ID in the shell::Session
      interface (LP: #1276704)
  * New upstream release 0.1.5 (https://launchpad.net/mir/+milestone/0.1.5)
    - mirclient ABI bumped to 7
    - mirserver ABI bumped to 15
    - Refactoring to support client-controled RPC.
    - Add an translucent server example (use sparingly, this will kill
      performance!)
    - Add workaround for Qualcomm Snapdragon 8960 driver bug.
    - android-input: Improve debug output
    - Screen rotation support half done (rotation of the screen works but input
      rotation not implemented yet).
    - Add groundwork for overlay support to take better advantage of mobile
      hardware features and optimize composition in future.
    - Add support for HWC 1.2 (Android 4.4)
    - Add groundwork for screencasting (screen recording).
    - Optimized surface resizing, significantly reducing event flooding for
      some input configurations like touch.
    - Bugs fixed:
      . Surfaces no longer visible at all on Nexus 10 (LP: #1271853)
      . mir nested server failure: what(): error binding buffer to texture
        (LP: #1272041)
      . Unity does not process events from evdev device created before unity is
        restarted (autopilot tests) (LP: #1238417)
      . mir_unit_tests can't run on touch images any more (missing
        libumockdev.so.0) (LP: #1271434)
      . chmod 777 /tmp/mir_socket is no longer sufficient for non-root clients
        to connect to a root server (LP: #1272143)
      . Nexus7(2013) flo framerate maxes out at 30fps (LP: #1274189)
      . libmirserver user is unable to #include
         <mir/frontend/template_protobuf_message_processor.h> (LP: #1276162)
      . libmirclient user cannot "#include <mir/client/private.h>"
        (LP: #1276565)
      . AndroidInternalClient.internal_client_creation_and_use hangs on Nexus
        10 (LP: #1270685)
      . Tests that use the InProcessServer bind the default socket file
        (LP: #1271604)
      . BasicConnector threads exit immediately (LP: #1271655)
      . Integration tests TestClientIPCRender.test_accelerated_render fails on
        Galaxy Nexus and Nexus4 (LP: #1272597)
      . Android backend unit-tests FTBS on amd64 (LP: #1276621)
      . Erroneous use of last_consumed in SwitchingBundle::compositor_acquire
        (LP: #1270964)
 -- Ubuntu daily release <email address hidden> Wed, 12 Feb 2014 18:29:29 +0000

Changed in mir (Ubuntu):
importance: Undecided → Medium
status: New → Fix Released
summary: - AndroidInternalClient.internal_client_creation_and_use hangs on Nexus 10
+ Integration test: AndroidInternalClient.internal_client_creation_and_use
+ hangs on Nexus 10
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers