[Dialer app] End call button is not responsive

Bug #1208869 reported by Christina Li
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
Ubuntu UX
Fix Released
Critical
Christina Li
dialer-app
Fix Released
High
Tiago Salem Herrmann
dialer-app (Ubuntu)
Fix Released
Undecided
Unassigned

Bug Description

Current situation:
When ending a live call the End button is not responsive and have to press a few times for the call to end. Not sure if it's the touch target is too small?

Desired behaviour:
Touching the End call button will end the live call immediately.

Related branches

Changed in ubuntu-ux:
assignee: nobody → Christina Li (christina-li)
status: New → Fix Committed
Changed in dialer-app:
assignee: nobody → Gustavo Pichorim Boiko (boiko)
status: New → Confirmed
Revision history for this message
Bill Filler (bfiller) wrote :

reproduced this today, need to get debug output from dbus-monitor when it's in this condition again

Changed in dialer-app:
importance: Undecided → High
Revision history for this message
Bill Filler (bfiller) wrote :

Just got this to happen again. I've attached the dbus log. Looks like method gets called correctly from the dialer-app (I pressed the button multiple times) but call never hung up

call sender=:1.43 -> dest=com.canonical.TelephonyServiceHandler serial=468 path=/com/canonical/TelephonyServiceHandler; interface=com.canonical.TelephonyServiceHandler; member=HangUpCall

Revision history for this message
Bill Filler (bfiller) wrote :
Changed in dialer-app:
assignee: Gustavo Pichorim Boiko (boiko) → Tiago Salem Herrmann (tiagosh)
Revision history for this message
Bill Filler (bfiller) wrote :
Revision history for this message
Bill Filler (bfiller) wrote :

More debug output when problem happens:
phablet@ubuntu-phablet:~$ dbus-monitor | grep -C 1 Hang

   ]
method call sender=:1.43 -> dest=com.canonical.TelephonyServiceHandler serial=851 path=/com/canonical/TelephonyServiceHandler; interface=com.canonical.TelephonyServiceHandler; member=HangUpCall
   string "/org/freedesktop/Telepathy/Connection/ofono/ofono/_1a0d310/_1a27ee0"
method return sender=:1.42 -> dest=:1.43 reply_serial=851
method call sender=:1.43 -> dest=com.canonical.TelephonyServiceHandler serial=852 path=/com/canonical/TelephonyServiceHandler; interface=com.canonical.TelephonyServiceHandler; member=HangUpCall
   string "/org/freedesktop/Telepathy/Connection/ofono/ofono/_1a0d310/_1a27ee0"
--
   ]
method call sender=:1.43 -> dest=com.canonical.TelephonyServiceHandler serial=853 path=/com/canonical/TelephonyServiceHandler; interface=com.canonical.TelephonyServiceHandler; member=HangUpCall
   string "/org/freedesktop/Telepathy/Connection/ofono/ofono/_1a0d310/_1a27ee0"
method return sender=:1.42 -> dest=:1.43 reply_serial=853
method call sender=:1.43 -> dest=com.canonical.TelephonyServiceHandler serial=854 path=/com/canonical/TelephonyServiceHandler; interface=com.canonical.TelephonyServiceHandler; member=HangUpCall
   string "/org/freedesktop/Telepathy/Connection/ofono/ofono/_1a0d310/_1a27ee0"
--
method return sender=:1.13 -> dest=:1.43 reply_serial=857
method call sender=:1.43 -> dest=com.canonical.TelephonyServiceHandler serial=858 path=/com/canonical/TelephonyServiceHandler; interface=com.canonical.TelephonyServiceHandler; member=HangUpCall
   string "/org/freedesktop/Telepathy/Connection/ofono/ofono/_1a0d310/_1a27ee0"
method call sender=:1.42 -> dest=:1.15 serial=491 path=/org/freedesktop/Telepathy/Connection/ofono/ofono/_1a0d310/_1a27ee0; interface=org.freedesktop.Telepathy.Channel.Type.Call1; member=Hangup
   uint32 2
^C
phablet@ubuntu-phablet:~$ /usr/lib/arm-linux-gnueabihf/qt4/bin/qdbus org.freedesktop.Telepathy.Connection.ofono.ofono._1a0d310
/
/org
/org/freedesktop
/org/freedesktop/Telepathy
/org/freedesktop/Telepathy/Connection
/org/freedesktop/Telepathy/Connection/ofono
/org/freedesktop/Telepathy/Connection/ofono/ofono
/org/freedesktop/Telepathy/Connection/ofono/ofono/_1a0d310
/org/freedesktop/Telepathy/Connection/ofono/ofono/_1a0d310/_1a1d270
/org/freedesktop/Telepathy/ConnectionManager
/org/freedesktop/Telepathy/ConnectionManager/ofono
/org/freedesktop/Telepathy/ConnectionManager/ofono/ofono
phablet@ubuntu-phablet:~$

Revision history for this message
Bill Filler (bfiller) wrote :

I can't reliable reproduce, but almost always the problem occurs making outgoing calls from ubuntu touch phone.

Steps to reproduce:
ubuntu-touch phone = utPhone
other phone = otherPhone

1) manually start /usr/bin/telephony-service-approver
2) otherPhone calls utPhone
3) utPhone answers calls
4) utPhone hangs up call (should work)
5) repeat step 2 multiple times (like 10-20 times), trying the following
- hang up otherPhone before utPhone answers
- hang up otherPhone after utPhone answers
- have utPhone decline the calls a bunch of time

5.5) send some texts back and forth from utPhone and otherPhone

6) no failures should have happened yet, now start the calls from the utPhone
7) on utPhone click number from call log
8) try to hangup before the call was answered
9) repeat 7-9 multiple times see if you get failure
10) if no failure, repeat 7, but try these variations
- accept the call from otherPhone
- hang up from utPhone
- hang up the call from otherPhone
- decline call from otherPhone
11) if still no failure, just try making calls from utPhone from call log and hanging up before, during, and after they are accepted by otherPhone

Revision history for this message
Bill Filler (bfiller) wrote :

these are the commands to run when the phone in the state and call is active
1) dbus-monitor | grep -C 1 Hang
2) /usr/lib/arm-linux-gnueabihf/qt4/bin/qdbus org.freedesktop.Telepathy.Connection.ofono.ofono._<id> where id is what is reported in 1)
3) qdbus --system org.ofono w

Revision history for this message
Tiago Salem Herrmann (tiagosh) wrote :

here is my guess:

1) tp-ofono now do changes to audioflinger
2) when a new call is created tp-ofono changes the audio route because it's on the speaker phone by default, and it needs to change to earpiece
3) tp-ofono gets locked doing some ioctls to /dev/binder

--------------
root@ubuntu-phablet:/# strace -Ff -p 5942
Process 5942 attached with 6 threads
[pid 5957] ioctl(14, BT819_FIFO_RESET_HIGH <unfinished ...>
[pid 5952] restart_syscall(<... resuming interrupted call ...> <unfinished ...>
[pid 5949] restart_syscall(<... resuming interrupted call ...> <unfinished ...>
[pid 5951] ioctl(14, BT819_FIFO_RESET_HIGH <unfinished ...>
[pid 5950] ioctl(14, BT819_FIFO_RESET_HIGH <unfinished ...>
[pid 5942] restart_syscall(<... resuming interrupted call ...>
-----------------

4) then the handler asks tp-ofono information about the new channel over dbus, but it is currently locked doing ioctls
5) after some seconds the ioctls fails (I suppose), tp-ofono gets unlocked and the handler receives the information about the new channel
6) At this point dialer-app can hangup the call normally

Revision history for this message
Bill Filler (bfiller) wrote :

Here are reliable steps to reproduce. Seems only to happen after using the messaging-app:

First load the pulseaudio image:
phablet-flash cdimage-touch --pending --ubuntu-path http://10.97.2.10:8080/job/ubuntu-touch-image-saucy-pulseaudio/lastSuccessfulBuild/artifact/saucy-preinstalled-phablet-armhf.zip

Then remove phone-app:
sudo apt-get purge phone-app

Then install from amanzi-team/testing ppa:
sudo apt-get install dialer-app messaging-app

Reboot

Then do this:
1) make multiple outgoing calls (10 calls) from dialer-app, hanging up before it is answered . should all work
2) launch messaging-app, send one text message, and receive one text message from another phone
3) go back to dialer-app
4) repeat step 1, will start to not be able to hangup

Revision history for this message
Bill Filler (bfiller) wrote :

turns out this was caused by apps being sigstopped when going to the background. The fix is to unregister/register telepathy observer in dialer-app when app comes in and out of focus. This fixes problem as telepathy was timing out trying to contact all of the registered observers and they weren't responding if sigstopped.

Changed in dialer-app:
status: Confirmed → Fix Committed
Changed in dialer-app (Ubuntu):
status: New → Fix Committed
Changed in ubuntu-ux:
importance: Undecided → Critical
Changed in ubuntu-ux:
status: Fix Committed → Fix Released
Changed in dialer-app:
status: Fix Committed → Fix Released
Changed in dialer-app (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
John Lea (johnlea) wrote :

@boiko; hi, please do not change the status of bugs in the "ubuntu-ux" project, as we use this project to track design status and final design QA. For example, changing status from Fix Committed → Fix Released in ubuntu-ux means that a designer has tested the implementation of the bug on the phone and has confirmed that implementation matches the change request.

Full details of what status means for ubuntu-ux bugs is available at https://docs.google.com/a/canonical.com/document/d/1PcNRQZFbfmmQEvxu4SZHO3GZ9Zaetg9p2DOmRwOUbS0/edit#heading=h.yt7pgvf4mg7m

Reverting ubuntu-ux status back to Fix Committed so that designers know that the implementation is ready to test.

Changed in ubuntu-ux:
status: Fix Released → Fix Committed
Changed in ubuntu-ux:
status: Fix Committed → Fix Released
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.