After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 660615 - Make POP3 provider more cancellable ready
Make POP3 provider more cancellable ready
Status: RESOLVED FIXED
Product: evolution-data-server
Classification: Platform
Component: Mailer
3.0.x (obsolete)
Other Linux
: Normal major
: ---
Assigned To: evolution-mail-maintainers
Evolution QA team
Depends on:
Blocks:
 
 
Reported: 2011-10-01 08:26 UTC by Svante Signell
Modified: 2011-10-03 09:25 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Backtrace generated with: gdb --batch --ex "t a a bt" -pid=4860 &>bt.txt (8.44 KB, text/plain)
2011-10-01 08:26 UTC, Svante Signell
  Details
eds patch (18.99 KB, patch)
2011-10-03 09:21 UTC, Milan Crha
committed Details | Review

Description Svante Signell 2011-10-01 08:26:50 UTC
Created attachment 197948 [details]
Backtrace generated with: gdb --batch --ex "t a a bt" -pid=4860 &>bt.txt

Hello,

With the release of 3.0.3 evo does not crash anymore, thanks for that.
However, there are still problems with POP3 servers. Often fetching mail
hangs and cancelling only continue the hang. Additionally, when deleting
mails with jpeg attachments, the download still continues and hangs instead of skipping that mail. Cancelling does sometimes work, but after a long time. Are these problems known issues?

An example of indefinite hang is fetching mails after some time with evo idle (except checking for mails every 20 minutes). Sometimes expunging also results in a hang. Then I have to force a quit of evo and restart.

Attached is a bt when evo is locked in the state of fetching mail from the POP3 server. Clicking the red button does not help, the text only changes to: Fetching mail (cancelling).

Additional information: These problems were never seen in earlier versions (2.3x, etc)
Comment 1 Milan Crha 2011-10-03 07:43:36 UTC
Thanks for a bug report. The backtrace shows the POP3 is waiting for a greeting reply of your server, which takes long for some reason. But looking into the backtrace more closely I see that the POP3 provider doesn't use the cancellable into subsequent calls, thus it cannot be cancelled on user's wish. I see it's still the same in 3.2.0 and git master, thus I'm confirming this.

Thread 2 (Thread 0xa1cffb70 (LWP 22377))

  • #0 __kernel_vsyscall
  • #1 *__GI___poll
    at ../sysdeps/unix/sysv/linux/poll.c line 87
  • #2 ??
    from /usr/lib/i386-linux-gnu/libnspr4.so.0d
  • #3 ??
    from /usr/lib/i386-linux-gnu/libnspr4.so.0d
  • #4 ??
    from /usr/lib/i386-linux-gnu/libnspr4.so.0d
  • #5 ??
    from /usr/lib/i386-linux-gnu/libnspr4.so.0d
  • #6 PR_Read
    from /usr/lib/i386-linux-gnu/libnspr4.so.0d
  • #7 read_from_prfd
    at camel-tcp-stream-raw.c line 285
  • #8 camel_stream_read
    at camel-stream.c line 137
  • #9 stream_fill
    at camel-pop3-stream.c line 82
  • #10 camel_pop3_stream_line
    at camel-pop3-stream.c line 336
  • #11 read_greeting
    at camel-pop3-engine.c line 103
  • #12 camel_pop3_engine_new
    at camel-pop3-engine.c line 141
  • #13 connect_to_server
    at camel-pop3-store.c line 178
  • #14 connect_to_server_wrapper
    at camel-pop3-store.c line 295
  • #15 pop3_store_connect_sync
    at camel-pop3-store.c line 595
  • #16 camel_service_connect_sync
    at camel-service.c line 492
  • #17 camel_session_get_service_connected
    at camel-session.c line 523
  • #18 e_mail_session_get_inbox_sync
    at e-mail-session.c line 1079
  • #19 fetch_mail_exec
    at mail-ops.c line 264
  • #20 mail_msg_proxy
    at mail-mt.c line 415
  • #21 g_thread_pool_thread_proxy
    at /build/buildd-glib2.0_2.28.6-1-i386-A3fp41/glib2.0-2.28.6/./glib/gthreadpool.c line 319
  • #22 g_thread_create_proxy
    at /build/buildd-glib2.0_2.28.6-1-i386-A3fp41/glib2.0-2.28.6/./glib/gthread.c line 1897
  • #23 start_thread
    at pthread_create.c line 304
  • #24 clone
    at ../sysdeps/unix/sysv/linux/i386/clone.S line 130

Comment 2 Milan Crha 2011-10-03 09:21:38 UTC
Created attachment 198065 [details] [review]
eds patch

for evolution-data-server;

This makes POP3 provider more cancellable. It would be good if you could give it a try, either if you compile yourself or you ask your distribution maintainers to provide you a test package with the patch included. I'm committing it to master and 3.2, but with your testing it'll be ensured that the fix is complete.
Comment 3 Milan Crha 2011-10-03 09:25:02 UTC
Created commit b079735 in eds master (3.3.1+)
Created commit ccea044 in eds gnome-3-2 (3.2.1+)