[enhancement] Need to signal when mir is ready for upstart dependencies to wait for

Bug #1239876 reported by Michał Sawicz
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Mir
Fix Released
High
Alexandros Frantzis
unity-mir
Fix Released
High
Gerry Boland
mir (Ubuntu)
Fix Released
High
Alexandros Frantzis
unity8 (Ubuntu)
Fix Released
High
Michał Sawicz

Bug Description

Raising a SIGSTOP from unity8 when it's ready (start() returned in mir) will make sure that dependencies (maliit) don't start too early. We need a signal from Mir for that, and handle that upwards towards unity8 - need to make sure surfaceflinger usecase still works.

unity8 upstart job needs:

expect stop

Related branches

Michał Sawicz (saviq)
Changed in mir:
assignee: nobody → Alexandros Frantzis (afrantzis)
Changed in unity-mir:
status: New → Triaged
importance: Undecided → High
assignee: nobody → Gerry Boland (gerboland)
Changed in unity8:
milestone: none → ubuntu-13.10
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

I don't entirely understand the description. You mean a signal emitted by libmirserver to say "the socket and server are now open for business"?

Changed in mir:
status: New → Incomplete
Revision history for this message
Michał Sawicz (saviq) wrote :

Yes, we (unity-mir / unity8) need a signal from Mir to tell us when it's safe for clients to connect, so that we can tell upstart (via SIGSTOP) that we are ready, and so that any dependant jobs don't try to connect (and SIGABRT bug #1233988) because the socket isn't yet ready.

Revision history for this message
Michał Sawicz (saviq) wrote :

We discussed this with Alexandros and Alan yesterday, and the current plan is to extend the pause_resume_listener to include start/stop as well.

Changed in mir:
status: Incomplete → Triaged
importance: Undecided → High
Changed in mir:
status: Triaged → In Progress
summary: - Need to signal when mir is ready for upstart dependencies to wait for
+ [enhancement] Need to signal when mir is ready for upstart dependencies
+ to wait for
tags: added: enhancement
Gerry Boland (gerboland)
Changed in unity-mir:
status: Triaged → In Progress
Changed in unity8:
assignee: Gerry Boland (gerboland) → Michał Sawicz (saviq)
status: Triaged → In Progress
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:~mir-team/mir/development-branch at revision None, scheduled for release in mir, milestone Unknown

Changed in mir:
status: In Progress → Fix Committed
Changed in mir:
milestone: none → phone-v1-freeze
summary: - [enhancement] Need to signal when mir is ready for upstart dependencies
- to wait for
+ [feature] Need to signal when mir is ready for upstart dependencies to
+ wait for
tags: added: feature
removed: enhancement
Changed in mir:
milestone: phone-v1-freeze → 0.0.16
Changed in mir:
status: Fix Committed → Fix Released
Changed in mir:
milestone: 0.0.16 → 0.1.0
status: Fix Released → Fix Committed
summary: - [feature] Need to signal when mir is ready for upstart dependencies to
- wait for
+ [enhancement] Need to signal when mir is ready for upstart dependencies
+ to wait for
tags: added: enhancement
removed: feature
Changed in mir (Ubuntu):
assignee: nobody → Alexandros Frantzis (afrantzis)
importance: Undecided → High
status: New → Fix Committed
Changed in mir:
status: Fix Committed → Fix Released
Revision history for this message
Michał Sawicz (saviq) wrote :

Has this really been released? The last release in ubuntu (https://launchpad.net/ubuntu/+source/mir) is 0.0.15+13.10.20131014-0ubuntu2, and AFAICT it does not contain that change.

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

Correct. If you scroll up you will see it correctly says Fix Released against 0.1.0
:)

tags: added: needs-ap-test
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (5.1 KiB)

This bug was fixed in the package mir - 0.1.0+14.04.20131028-0ubuntu1

---------------
mir (0.1.0+14.04.20131028-0ubuntu1) trusty; urgency=low

  [ Daniel van Vugt ]
  * Bump version 0.1.0
  * Add method for testing if Rectangle::contains(Rectangle), which is
    the basis of any occlusion detection. (LP: #1227739)
  * Add support for traversing the Scene from front surface to back.
    This is required for occlusion detection at least (coming soon). .
    (LP: #1227739)
  * Optimization: Turn off blending for surfaces that are not blendable.
    On some systems this can have a noticeable performance benefit.
  * Avoid rendering surfaces that are fully hidden by other surfaces.
    This is particularly important for mobile device performance. (LP:
    #1227739) . (LP: #1227739)
  * Remove orphaned tags, which appear to have come from the Compiz
    project (!?) Add tags for the most recent releases up to 0.0.16. No
    files changed, only tags.
  * Fix significant performance issues LP: #1241369 / LP: #1241371, and
    probably more(!) Added regression test to catch such regressions and
    revert the offending commit r1049. (LP: #1241369, #1241371)

  [ Brandon Schaefer ]
  * When Scroll events come in we don't keep around the android vscroll
    hscroll data. Store it now. (LP: #1233089)

  [ Albert Astals ]
  * Fix mismatched free() / delete / delete [] reported by valgrind

  [ Alexandros Frantzis ]
  * server: Extend server status (formerly pause/resume) listener to
    report "started" events This change is needed by users of
    libmirserver, so they can properly synchronize external interactions
    with the server. (LP: #1239876)
  * graphics,examples: Don't enable more outputs than supported when
    changing the display configuration. (LP: #1217877)
  * client: Allow clients to call API functions after a connection break
    has been detected When a client tries to call an API function after
    a connection break has been detected in a previous API call, the
    client blocks in the new call. This happens because in
    MirSocketRpcChannel::notify_disconnected() the pending RPC calls are
    not forced to complete, since the channel has already been marked as
    'disconnected' by the failure in the previous call. Note that if the
    break is first detected while calling an API function, then that
    call doesn't block, since this is the first time we call
    MirSocketRpcChannel::notify_disconnected() and the pending RPC calls
    are forced to complete. This commit solves this problem by always
    forcing requests to complete when a communication failure occurs,
    even if a disconnection has already been handled. This is preferred
    over the alternative of manually calling the completion callback in
    a try-catch block when calling an RPC method because of: 1.
    Correctness: In case the communication problem first occurs in that
    call, the callback will be called twice, once by
    notify_disconnected() and once manually. 2. Consistency: The
    callback is called from one place regardless of whether the
    communication problem is first detected during that call or not.
    (LP: #1201436)
  * graphics: Improve si...

Read more...

Changed in mir (Ubuntu):
status: Fix Committed → Fix Released
Gerry Boland (gerboland)
Changed in unity-mir:
status: In Progress → Fix Released
Changed in unity8:
status: In Progress → Fix Released
Michał Sawicz (saviq)
Changed in unity8:
status: Fix Released → In Progress
Changed in unity-mir:
status: Fix Released → In Progress
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:unity-mir at revision 152, scheduled for release in unity-mir, milestone phone-v1-freeze

Changed in unity-mir:
status: In Progress → Fix Committed
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

Fix committed into lp:unity8 at revision 556, scheduled for release in unity8, milestone phone-v1-freeze

Changed in unity8:
status: In Progress → Fix Committed
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (6.6 KiB)

This bug was fixed in the package unity8 - 7.84+14.04.20131128.2-0ubuntu1

---------------
unity8 (7.84+14.04.20131128.2-0ubuntu1) trusty; urgency=low

  [ Michal Hruby ]
  * Depend on the separate scopes plugin
  * Move the BottomBar* DBus communicator to the Utils plugin.

  [ Michał Sawicz ]
  * Wait for DashHome to be available in tst_Shell. (LP: #1254898)
  * Use plugindir from unity-shell-api.pc.
  * Expect stop in upstart job and raise in case of surfaceflinger. (LP:
    #1239876)

  [ Albert Astals ]
  * Fix time test in Qt 5.2 Make factors an array instead of a
    object/dict Objects/dicts are unordered by definition, it happened
    that Qt 5.0 gave them in the orrder we wanted, but with Qt 5.2 is
    failing, and we don't even need the "key", so array works as well
    :).
  * Test that the dash hswipe is disabled while the inner stuff is
    moving .
  * Skip restMaximizeVisibleAreaMoveUpAndShowHeader, it's causing too
    many failed runs And we are confident it's failing because of the
    suboptimal scenegraph run in 5.0.x.
  * Make Dash::test_show_scope_on_load more robust If we are testing
    showScopeOnLoaded make sure we force a scope reload after we set it,
    otherwise it may just happen that the scope has already been loaded
    and the expectaction that we'll change the list to it is just wrong.
  * Dash renderer signals: No need to pass the model up and down Whoever
    is listening to the signal has access to the item that emits the
    signal and has the model right there accessible if needs it.
  * LVWPH: Fix header going bad when setContentHeight ends up moving the
    viewport How to reproduce the bug easily without the patch: * In the
    Dash Home, search for london * Scroll to the bottom * Start moving
    to the apps scope very slowly * At around 3/4 of the move you'll see
    the header in the home scope went to a bad position * Go back to the
    Dash Home. (LP: #1237942, #1246351)
  * Remove unused AppInfo and VideoInfo files .
  * Kill unused ApplicationsFilterGrid.qml .
  * Unify ScopeView and GenericScopeView .
  * Fix header getting lost as per bug 1245824. (LP: #1245824)
  * Remove unused Time.js and its test .
  * Do not include the QtQml megaheader Include only qqml.h which is
    what we need in these files.
  * Don't do stuff if our parent context is gone We'll be gone soon too
    (and crash probably) so don't do anything. This looks a bit like a
    workaround, wait for 5.2 better painting/dispatching loop to see if
    this is not needed anymore, we find a better way to do it, or we
    decide this is fine.

  [ Lars Uebernickel ]
  * Allow setting different indicator positions for different profiles.

  [ Mirco Müller ]
  * Added checkbox for toggling between echo-modes of password-
    entryfields in ext. snap-decisions.
  * Fixes bug #1200569. (LP: #1200569)

  [ Andrea Cimitan ]
  * Switch to application scope when a dash swipe is taking place and an
    app is on foreground. (LP: #1231996)
  * Shifts wallpaper rendering for greeter lockscreen to be inline with
    shell. (LP: #1231731)
  * Dinamically load the Carousel/Filtergrid with more than 6 items.
    (LP: #1226288, #1234105)
  * R...

Read more...

Changed in unity8 (Ubuntu):
status: New → Fix Released
Michał Sawicz (saviq)
Changed in unity8:
status: Fix Committed → Fix Released
Changed in unity-mir:
status: Fix Committed → Fix Released
Michał Sawicz (saviq)
Changed in unity8 (Ubuntu):
assignee: nobody → Michał Sawicz (saviq)
importance: Undecided → High
no longer affects: unity8
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.