Mir

[testsfail] PromptSessionClientAPI.client_pid_is_associated_with_session hangs and times out

Bug #1655929 reported by Alan Griffiths on 2017-01-12
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
Fix Released
Medium
Kevin DuBois
mir (Ubuntu)
Undecided
Unassigned

Bug Description

https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=clang,platform=mesa,release=zesty/3466/console

13:24:57 9: --11870-- WARNING: unhandled amd64-linux syscall: 324
13:24:57 9: --11870-- You may be able to write your own handler.
13:24:57 9: --11870-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
13:24:57 9: --11870-- Nevertheless we consider this a bug. Please report
13:24:57 9: --11870-- it at http://valgrind.org/support/bug_reports.html.
15:54:57 make: *** wait: No child processes. Stop.
15:54:57 make: *** Waiting for unfinished jobs....
15:54:57 make: *** wait: No child processes. Stop.
15:54:57 Makefile:130: recipe for target 'test' failed
15:54:57 make[2]: *** [test] Terminated
15:54:57 debian/rules:19: recipe for target 'override_dh_auto_test' failed
15:54:57 make[1]: *** [override_dh_auto_test] Terminated
15:54:57 E: Build killed with signal TERM after 150 minutes of

Also on

    amd64,gcc,xenial+overlay
    amd64,gcc,zesty

https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=xenial+overlay/3474/console

https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=amd64,compiler=gcc,platform=mesa,release=zesty/3474/console

And, probably related:

    i386,gcc,xenial+overlay

https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3470/console

15:37:14 11: --32166-- WARNING: unhandled x86-linux syscall: 375
15:37:14 11: --32166-- You may be able to write your own handler.
15:37:14 11: --32166-- Read the file README_MISSING_SYSCALL_OR_IOCTL.
15:37:14 11: --32166-- Nevertheless we consider this a bug. Please report
15:37:14 11: --32166-- it at http://valgrind.org/support/bug_reports.html.
18:07:14 Makefile:74: recipe for target 'test' failed

Related branches

Changed in mir:
assignee: nobody → Alan Griffiths (alan-griffiths)
Alan Griffiths (alan-griffiths) wrote :

Hmm, I can easily reproduce the valgrind WARNING locally: I see it every test run.

But the test completes successfully > 100 times.

Alan Griffiths (alan-griffiths) wrote :

I can't reproduce locally, no matter how loaded my box.

The only thing that occurs to me is that this is one of our very few uses of Popen (the other is GLMark2Test).

Something flaky (and perhaps dependent on system resources) in launching mir_demo_client_basic as a separate "prompt provider" process might explain this.

Changed in mir:
assignee: Alan Griffiths (alan-griffiths) → nobody
importance: High → Medium
summary: - [testsfail] valgrind problem in
- PromptSessionClientAPI.client_pid_is_associated_with_session
+ [testsfail] PromptSessionClientAPI.client_pid_is_associated_with_session
Daniel van Vugt (vanvugt) wrote :
summary: [testsfail] PromptSessionClientAPI.client_pid_is_associated_with_session
+ hangs and times out
Kevin DuBois (kdub) wrote :

#8 was not an instance of this bug (copy-paste error). Meant to post this link in #8:
https://mir-jenkins.ubuntu.com/job/build-2-binpkg-mir/arch=i386,compiler=gcc,platform=mesa,release=xenial+overlay/3670/console

Kevin DuBois (kdub) wrote :

this seems to only happen under valgrind with the parameters in CI, under heavy load. Was able to catch the backtrace at time of hang (bit of an involved process with remote gdb, given all the forks in this test)

Kevin DuBois (kdub) wrote :

server side BT isn't extremely helpful, its probably stuck in the thread shutdown handler? maybe waiting on the client?

Kevin DuBois (kdub) on 2017-01-25
Changed in mir:
assignee: nobody → Kevin DuBois (kdub)
status: Triaged → In Progress
Changed in mir:
milestone: none → 1.0.0
Kevin DuBois (kdub) wrote :

A pong call was sneaking in from the async thread while the disconnection process was happening. This eventually caused the a hang in the destructor of MirConnection, where it waits for channel requests to finish up, as the call didn't get discarded properly, and the server stops finishing the pong closure, because of the disconnection.

Kevin DuBois (kdub) wrote :

If anyone's interested in reproducing, increasing system load to over 5000, decreasing ANR ping interval to 100ms, and running with the full valgrind options seems to reproduce the issue within 20-40 iterations.

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
Launchpad Janitor (janitor) wrote :
Download full text (8.3 KiB)

This bug was fixed in the package mir - 0.27.0+17.10.20170630-0ubuntu1

---------------
mir (0.27.0+17.10.20170630-0ubuntu1) artful; urgency=medium

  [ Daniel van Vugt ]
  * New upstream release 0.27.0 (https://launchpad.net/mir/+milestone/0.27.0)
    - ABI summary:
      . mirclient ABI unchanged at 9
      . mirserver ABI bumped to 44
      . mircommon ABI unchanged at 7
      . mirplatform ABI bumped to 61
      . mirprotobuf ABI unchanged at 3
      . mirplatformgraphics ABI bumped to 13
      . mirclientplatform ABI unchanged at 5
      . mirinputplatform ABI bumped to 7
      . mircore ABI unchanged at 1
    - Enhancements:
      . Mostly groundwork required to support major enhancements coming in
        future Mir versions.
      . Removed android-input and eliminated the entire "3rd_party/" subtree.
        Now the Mir source tree contains original code only.
      . Added mir_prompt_session_new_fds_for_prompt_providers_sync API.
      . mirout: Added load and save options for keeping display configs
        on disk.
      . mirout: Added "--" support for applying configuration changes under
        Unity8.
      . Fixed failure of DRM hardware cursor {hide(); show(image);}
      . Added server option: "--cursor software" (MIR_SERVER_CURSOR=software)
      . Added letterboxing/black bars support to the GL renderer in preparation
        for generic output cloning.
      . Added client API for getting the logical size of an output.
      . Migrated MirCookie to use SHA-256.
      . Ensure RealKMSOutputConfiguration stays in sync with actual hardware
        state.
      . Added support for drag-and-drop.
      . Lots of other client API enhancements.
      . Minor clean-ups, optimizations and dead code removal.
      . Added support for building on Ubuntu 17.10 artful.
      . Update example code to use undeprecated API.
      . mesa-kms: Support hardware cursors in hybrid setups.
      . Rework and publish the graphics platform APIs
    - Bugs fixed:
      . [enhancement] Make able to get version information from client /
        server APIs (LP: #1195540)
      . Touch screen coordinates don't rotate with the screen (LP: #1349660)
      . Subpixel order not included in Mir display information (LP: #1393578)
      . [enhancement] Missing client API for relative surface movement (e.g.
        dragging client-decorated windows) (LP: #1420334) . Mir does not reset
        key states when paused or resumed (modifiers get stuck after VT
        switching) (LP: #1536279)
      . NBS never uses mc::MultiMonitorMode::single_monitor_fast, even when
        only a single monitor is plugged in (LP: #1561418)
      . Inconsistent behaviour of Num Lock (LP: #1588237)
      . A scaled (not panned or clipped) mirror/clone mode is desired
        (LP: #1639226)
      . Rotating an output left or right without restarting the
        compositor distorts the image (LP: #1643488)
      . support display scaling slider in unity8 (LP: #1645372)
      . [ FAILED ] NestedInputWithMouse.mouse_pointer_coordinates_in_nested_
        server_are_accumulated (LP: #1646375)
      . [ FAILED ] NestedInputWithMouse.mouse_pointer_position_is_in_sync_with_
        ho...

Read more...

Changed in mir (Ubuntu):
status: New → 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

Bug attachments