Mir

Mir server crashed: Requesting handle for an unregistered channel

Bug #1216727 reported by Daniel van Vugt on 2013-08-26
14
This bug affects 2 people
Affects Status Importance Assigned to Milestone
Mir
Fix Released
Critical
Alan Griffiths
mir (Ubuntu)
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

Related branches

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
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
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
Launchpad Janitor (janitor) wrote :

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

Changed in mir:
status: Incomplete → Expired
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
Daniel van Vugt (vanvugt) wrote :

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

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) on 2014-09-04
Changed in mir:
assignee: nobody → Robert Carr (robertcarr)
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
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

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)
Daniel van Vugt (vanvugt) wrote :

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

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
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  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers