Bug 862966 - Transaction gets stuck on "cancel"
Transaction gets stuck on "cancel"
Status: CLOSED WORKSFORME
Product: Fedora
Classification: Fedora
Component: evolution (Show other bugs)
18
x86_64 Linux
unspecified Severity unspecified
: ---
: ---
Assigned To: Matthew Barnes
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2012-10-03 23:53 EDT by Ankur Sinha (FranciscoD)
Modified: 2013-05-19 08:09 EDT (History)
3 users (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2013-05-19 08:09:35 EDT
Type: Bug
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)
screenshot showing cancellation hang. It's been a few hours now. (92.98 KB, image/png)
2012-10-03 23:53 EDT, Ankur Sinha (FranciscoD)
no flags Details
Requested backtrace (7.24 KB, text/plain)
2012-10-15 20:13 EDT, Ankur Sinha (FranciscoD)
no flags Details
Evolution doesnt exit when a cancel is hung (85.84 KB, image/png)
2012-10-15 20:26 EDT, Ankur Sinha (FranciscoD)
no flags Details
Back trace generated when evolution is hung on a cancellation and will not close as a result (17.43 KB, text/plain)
2012-10-15 20:27 EDT, Ankur Sinha (FranciscoD)
no flags Details

  None (edit)
Description Ankur Sinha (FranciscoD) 2012-10-03 23:53:20 EDT
Created attachment 621305 [details]
screenshot showing cancellation hang. It's been a few hours now.

Description of problem:
It tries to retrieve an email, gets hung, when I click the red box to cancel, it gets stuck on cancelling.

Version-Release number of selected component (if applicable):
evolution-3.4.4-2.fc17.x86_64


How reproducible:
Always (if i notice that a retrieval got stuck, cancelling it also stays stuck)

Steps to Reproduce:
1. wait for an email retrieval to get stuck
2. cancel it
  
Actual results:
doesn't cancel. cancellation gets stuck

Expected results:
should cancel

Additional info:
Comment 1 Ankur Sinha (FranciscoD) 2012-10-04 04:45:00 EDT
Possible same as https://bugzilla.redhat.com/show_bug.cgi?id=812511
Comment 2 Milan Crha 2012-10-15 09:25:31 EDT
Thanks for a bug report. It might help to get backtrace of running evolution in this state (with debuginfo packages installed at least for evolution-data-server, evolution and any other evolution* package you use). You can get the backtrace with command like this:
   $ gdb --batch --ex "t a a bt" -pid=PID &>bt.txt
where PID is a process ID of running evolution (ps ax | grep evolution).
Comment 3 Ankur Sinha (FranciscoD) 2012-10-15 20:13:47 EDT
Created attachment 627805 [details]
Requested backtrace

Hi,

Please find the backtrace attached. I installed the evolution and evolution-data-server debuginfos before generating it. 

Thanks,
Warm regards,
Ankur
Comment 4 Ankur Sinha (FranciscoD) 2012-10-15 20:15:18 EDT
I forgot to mention that the back trace was generated when evolution was stuck on a cancel operation. :)

Thanks,
Ankur
Comment 5 Ankur Sinha (FranciscoD) 2012-10-15 20:25:52 EDT
I tried to shut evolution, while it was stuck on cancel, and it wouldn't close. Attaching a screenshot and another bt for this.
Comment 6 Ankur Sinha (FranciscoD) 2012-10-15 20:26:49 EDT
Created attachment 627818 [details]
Evolution doesnt exit when a cancel is hung
Comment 7 Ankur Sinha (FranciscoD) 2012-10-15 20:27:34 EDT
Created attachment 627819 [details]
Back trace generated when evolution is hung on a cancellation and will not close as a result
Comment 8 Milan Crha 2012-10-16 02:44:08 EDT
Thanks for the update. I see the first backtrace is waiting for a completion of the get_message function, but it's missing a parser thread for the imapx account, which may explain why it cannot stop. The second backtrace also waits for a completion of get_message function, but it has two parser threads, both waiting for a response from your server. Thus I see here two issues:
a) the server stops talking to evolution for some reason
b) cancelling pending operations is not doable when waiting on a lock.

I wrote a cancellable lock for evolution-mapi [1], which might be nice to have included and used on various places in eds and evo too.

Matthew plans to improve cancellability of IMAP+ operations for 3.8.0, thus I'm keeping this to him. Maybe he has an upstream bug for this too.

[1] http://git.gnome.org/browse/evolution-mapi/tree/src/libexchangemapi/e-mapi-utils.h?h=gnome-3-6#n33
Comment 9 Ankur Sinha (FranciscoD) 2012-11-14 16:55:22 EST
Hi folks,

Just letting you know that this still persists in 3.6:

I tried to generate a backtrace, but it gives me a weird one for some reason:

[root@ankur ~]# ps aux | egrep evolution
ankur     1854  0.0  0.1 1091656 7676 ?        Sl   Nov14   0:02 /usr/libexec/evolution/3.6/evolution-alarm-notify
ankur     1918  0.0  0.1 1656972 6684 ?        SLl  Nov14   0:04 /usr/libexec/evolution-source-registry
ankur     2078  0.0  1.5 2871112 59872 ?       Sl   Nov14   0:21 /usr/libexec/evolution-calendar-factory
ankur     3224  0.0  0.6 1720900 23736 ?       Sl   Nov14   0:05 /usr/libexec/evolution-addressbook-factory
ankur    16804  1.9  9.2 3927892 363668 ?      Sl   Nov14  21:51 evolution
root     23268  0.0  0.0 106752   872 pts/1    S+   08:51   0:00 egrep --color=auto evolution
[root@ankur ~]# gdb --batch --ex "t a a bt" -pid=16804 &>bt.txt
[root@ankur ~]# ps aux | egrep evolution
ankur     1854  0.0  0.1 1091656 7676 ?        Sl   Nov14   0:02 /usr/libexec/evolution/3.6/evolution-alarm-notify
ankur     1918  0.0  0.1 1656972 6684 ?        SLl  Nov14   0:04 /usr/libexec/evolution-source-registry
ankur     2078  0.0  1.5 2871112 59872 ?       Sl   Nov14   0:21 /usr/libexec/evolution-calendar-factory
ankur     3224  0.0  0.6 1720900 23940 ?       Sl   Nov14   0:05 /usr/libexec/evolution-addressbook-factory
ankur    16804  1.9  9.3 3929212 365120 ?      Sl   Nov14  21:59 evolution
root     23568  0.0  0.0 106752   872 pts/1    S+   08:52   0:00 egrep --color=auto evolution
[root@ankur ~]# gdb --batch --ex "t a a bt" -pid=16804 &>bt1.txt
[root@ankur ~]# cat bt.txt
/usr/bin/evolution (deleted): No such file or directory.

Thread 1 (process 16804):
#0  0x78ce97ed in ?? ()
#1  0x00000000 in ?? ()
[root@ankur ~]#
[root@ankur ~]# cat bt1.txt
/usr/bin/evolution (deleted): No such file or directory.

Thread 1 (process 16804):
#0  0x78ce97ed in ?? ()
#1  0x00000000 in ?? ()
[root@ankur ~]#

Thanks :)
Ankur
Comment 10 Milan Crha 2012-11-15 02:55:22 EST
> [root@ankur ~]# cat bt1.txt
> /usr/bin/evolution (deleted): No such file or directory.

It seems like you updated evolution while it was running. Re-run evolution should fix it. Please make sure your debuginfo packages for evolution-data-server, evolution, and any other evolution-related packages will have the same version like their binary packages (rpm -qa | grep evolution | sort).
Comment 11 Ankur Sinha (FranciscoD) 2013-05-19 08:09:35 EDT
This *seldom* happens with 3.8.2. Closing the bug. I'll file another if it comes up frequently again.

Note You need to log in before you can comment on or make changes to this bug.