Mir

Mir server crashed: Requesting handle for an unregistered channel

Bug #1216727 reported by Daniel van Vugt
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mir
Fix Released
Critical
Alan Griffiths
mir (Ubuntu)
Fix Released
Critical
Unassigned

Bug Description

If I run mir_stress and a second app, just the act of moving the mouse around often causes the server to crash:

terminate called after throwing an instance of 'boost::exception_detail::clone_impl<boost::exception_detail::error_info_injector<std::logic_error> >'
  what(): Requesting handle for an unregistered channel

TESTCASE:
1. Start mir_demo_server_shell
2. Start mir_stress
3. Start mir_demo_client_egltriangle
4. Move the mouse around, and drag egltriangle around (Alt+drag)
Expected: Everything keeps running
Observed: mir_demo_server_shell crashes

Tags: input

Related branches

Revision history for this message
Daniel van Vugt (vanvugt) wrote : Re: mir_stress + using input causes Mir server to crash: Requesting handle for an unregistered channel

This is different to bug 1195089, where we fixed the "Invalid Session" exception.

summary: - mir_stress + using input cases Mir server to crash: Requesting handle
+ mir_stress + using input causes Mir server to crash: Requesting handle
for an unregistered channel
Changed in mir:
status: New → Triaged
importance: Undecided → Medium
Changed in mir:
assignee: nobody → Robert Carr (robertcarr)
status: Triaged → In Progress
importance: Medium → High
description: updated
Changed in mir:
milestone: none → 0.1.0
Changed in mir:
milestone: 0.1.0 → 0.1.1
Changed in mir:
milestone: 0.1.1 → 0.1.2
Changed in mir:
milestone: 0.1.2 → 0.1.3
Changed in mir:
milestone: 0.1.3 → 0.1.4
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Clearly not in progress :)

tags: added: input
Changed in mir:
status: In Progress → Triaged
milestone: 0.1.4 → none
assignee: Robert Carr (robertcarr) → nobody
Revision history for this message
Alberto Aguirre (albaguirre) wrote :

I cannot reproduce this, using:

1. Start mir_demo_server_shell
2. Start mir_stress
3. Start mir_demo_client_egltriangle
4. Move the mouse around, and drag egltriangle around (Alt+drag)

It's hard to get the surface to move while mir_stress is running but the server is not crashing.

Changed in mir:
status: Triaged → Incomplete
Revision history for this message
Launchpad Janitor (janitor) wrote :

[Expired for Mir because there has been no activity for 60 days.]

Changed in mir:
status: Incomplete → Expired
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Confirmed by duplicate crashes Unity8 is (was) getting. Although that was a while ago. It remains to be seen if this bug is still present.

summary: - mir_stress + using input causes Mir server to crash: Requesting handle
- for an unregistered channel
+ Mir server crashed: Requesting handle for an unregistered channel
Changed in mir:
status: Expired → Confirmed
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

See attached duplicate bugs where Unity8 crashes in the same way.

Revision history for this message
kevin gunn (kgunn72) wrote :

marking as critical, i think i've got alf talked into taking a look.
please self assign if you pick it up.

Changed in mir:
importance: High → Critical
Robert Carr (robertcarr)
Changed in mir:
assignee: nobody → Robert Carr (robertcarr)
Revision history for this message
Robert Carr (robertcarr) wrote :

Im deduping these bugs (https://bugs.launchpad.net/mir/+bug/1292472) as I think they are unlikely to be related, I think this bug was fixed at an unknown point (but stress test did start working!). I think the introduction of input sender, and the timing of using the SceneObserver for channel registration introduced the unity8 bug which was coincidentally fixed in r157, see bug 1292472 for a more detailed analysis.

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

If you can't pinpoint the fix, or are not confident that it is fixed then Incomplete is more appropriate.

Changed in mir:
status: Fix Released → Incomplete
Revision history for this message
Alan Griffiths (alan-griffiths) wrote :

This is easy to reproduce:

$ sudo gdb --args bin/mir_demo_server --vt 1 --test-client bin/mir_stress

(move the cursor)

Program received signal SIGTERM, Terminated.
[Switching to Thread 0x7fffe67fc700 (LWP 10321)]
0x00007ffff6e4bb5b in raise (sig=15) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:37
37 ../nptl/sysdeps/unix/sysv/linux/pt-raise.c: No such file or directory.
(gdb) bt
#0 0x00007ffff6e4bb5b in raise (sig=15) at ../nptl/sysdeps/unix/sysv/linux/pt-raise.c:37
#1 0x00007ffff77892f8 in mir::terminate_with_current_exception ()
    at /home/alan/display_server/mir/src/server/run_mir.cpp:126
#2 0x00007ffff799927c in mir_input::Thread::run(char const*, int, unsigned long)::{lambda()#1}::operator()() const (
    __closure=0x8b09b8) at /home/alan/display_server/mir/3rd_party/android-deps/std/Thread.h:74
#3 0x00007ffff79ac2e6 in std::_Bind_simple<mir_input::Thread::run(char const*, int, unsigned long)::{lambda()#1} ()>::_M_invoke<>(std::_Index_tuple<>) (this=0x8b09b8) at /usr/include/c++/4.9/functional:1700
#4 0x00007ffff79ac1c0 in std::_Bind_simple<mir_input::Thread::run(char const*, int, unsigned long)::{lambda()#1} ()>::operator()() (this=0x8b09b8) at /usr/include/c++/4.9/functional:1688
#5 0x00007ffff79ac0ca in std::thread::_Impl<std::_Bind_simple<mir_input::Thread::run(char const*, int, unsigned long)::{lambda()#1} ()> >::_M_run() (this=0x8b09a0) at /usr/include/c++/4.9/thread:115
#6 0x00007ffff6be7dd0 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#7 0x00007ffff6e440a5 in start_thread (arg=0x7fffe67fc700) at pthread_create.c:309
#8 0x00007ffff664b77d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111
(gdb) c
Continuing.
[1420544340.174200] (II) server_example_test_client.cpp: Terminating client
[1420544340.174324] (II) Server: Stopping
[Thread 0x7fffe67fc700 (LWP 10321) exited]
[Thread 0x7fffe6ffd700 (LWP 10320) exited]
[Thread 0x7fffdffff700 (LWP 10318) exited]
[Thread 0x7fffe7fff700 (LWP 10317) exited]
[Thread 0x7fffeca1a700 (LWP 10315) exited]
[Thread 0x7fffe77fe700 (LWP 10319) exited]
ERROR: /home/alan/display_server/mir/src/server/input/android/android_input_registrar.cpp(104): Throw in function virtual android::sp<android::InputWindowHandle> mir::input::android::InputRegistrar::handle_for_channel(const std::shared_ptr<const mir::input::InputChannel>&)
Dynamic exception type: N5boost16exception_detail10clone_implINS0_19error_info_injectorISt11logic_errorEEEE
std::exception::what: Requesting handle for an unregistered channel

Changed in mir:
status: Incomplete → Confirmed
Changed in mir:
milestone: none → 0.10.0
status: Confirmed → In Progress
assignee: Robert Carr (robertcarr) → Alan Griffiths (alan-griffiths)
Revision history for this message
Daniel van Vugt (vanvugt) wrote :

Not sure this qualifies as Critical if we've lived with it for 1.5 years already.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

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

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

mir (0.10.0+15.04.20150107.2-0ubuntu1) vivid; urgency=medium

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

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.