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 682923 - Deadlock in libsoup's connection_disconnected, free_unused_host
Deadlock in libsoup's connection_disconnected, free_unused_host
Status: RESOLVED FIXED
Product: libsoup
Classification: Core
Component: HTTP Transport
2.38.x
Other Linux
: High critical
: ---
Assigned To: libsoup-maint@gnome.bugs
libsoup-maint@gnome.bugs
Depends on:
Blocks:
 
 
Reported: 2012-08-29 07:22 UTC by Philip Van Hoof
Modified: 2012-11-18 20:54 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
SoupSession: when freeing an "unused" host, make sure it's still unused (1.14 KB, patch)
2012-09-12 12:47 UTC, Dan Winship
needs-work Details | Review

Description Philip Van Hoof 2012-08-29 07:22:27 UTC
Summary explains it all. Here is a gdb session. I did a ctrl+c while the UI was hanging waiting for timeout (waiting for a timeout should not, not ever, be a action that you perform whilst blocking the GMainLoop Evo guys!). I also used G_DEBUG to catch the critical when it finally concluded that it can't load the calendar.

This bug has been around in Debian Testing for several weeks now. I think the severity is critical as it renders Evolution almost unusable for an average user.

pvanhoof@lors:~$ gdb evolution
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/bin/evolution...(no debugging symbols found)...done.
(gdb) run
Starting program: /usr/bin/evolution 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".
[New Thread 0xb4937b70 (LWP 26697)]
[New Thread 0xb40f6b70 (LWP 26698)]
[New Thread 0xb36ffb70 (LWP 26699)]
Migrating cached data
Migrating config data
Migrating local user data
  rmdir /home/pvanhoof/.evolution/tasks
  FAILED: Directory not empty (contents follows)
          tasks
[New Thread 0xa70e2b70 (LWP 26700)]
[New Thread 0xa66ffb70 (LWP 26701)]
[New Thread 0xa5efeb70 (LWP 26702)]
[New Thread 0xa56fdb70 (LWP 26703)]
[New Thread 0xa4efcb70 (LWP 26704)]
[New Thread 0xa44ffb70 (LWP 26705)]
[New Thread 0xa3cfeb70 (LWP 26706)]
[New Thread 0xa34fdb70 (LWP 26707)]
[Thread 0xa34fdb70 (LWP 26707) exited]
[New Thread 0xa34fdb70 (LWP 26708)]
[Thread 0xa56fdb70 (LWP 26703) exited]
[Thread 0xa44ffb70 (LWP 26705) exited]
[New Thread 0xa44ffb70 (LWP 26709)]
[New Thread 0xa56fdb70 (LWP 26710)]
[New Thread 0xa28ffb70 (LWP 26711)]
[New Thread 0xa20feb70 (LWP 26712)]
[Thread 0xa3cfeb70 (LWP 26706) exited]
[Thread 0xa66ffb70 (LWP 26701) exited]
[Thread 0xa4efcb70 (LWP 26704) exited]
[Thread 0xa5efeb70 (LWP 26702) exited]
[Thread 0xa70e2b70 (LWP 26700) exited]
^C
Program received signal SIGINT, Interrupt.
0xb7fe2822 in ?? () from /lib/ld-linux.so.2
(gdb) bt

Thread 1 (Thread 0xb5d4f890 (LWP 26694))

  • #0 ??
    from /lib/ld-linux.so.2
  • #1 *__GI___poll
    at ../sysdeps/unix/sysv/linux/poll.c line 87
  • #2 g_poll
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #3 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #4 g_main_loop_run
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #5 ??
    from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
  • #6 g_initable_init
    from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
  • #7 g_initable_new_valist
    from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
  • #8 g_initable_new
    from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
  • #9 e_gdbus_cal_factory_proxy_new_for_bus_sync
    from /usr/lib/libecal-1.2.so.11
  • #10 e_cal_client_new
    from /usr/lib/libecal-1.2.so.11
  • #11 e_client_utils_new
    from /usr/lib/libedataserverui-3.0.so.1
  • #12 e_client_utils_open_new
    from /usr/lib/libedataserverui-3.0.so.1
  • #13 ??
    from /usr/lib/evolution/3.4/plugins/liborg-gnome-itip-formatter.so
  • #14 ??
    from /usr/lib/evolution/3.4/plugins/liborg-gnome-itip-formatter.so
  • #15 ??
    from /usr/lib/evolution/3.4/libevolution-mail.so.0
  • #16 html_g_cclosure_marshal_BOOLEAN__OBJECT
    from /usr/lib/libgtkhtml-4.0.so.0
  • #17 g_closure_invoke
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #18 ??
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #19 g_signal_emit_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #20 g_signal_emit
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #21 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #22 html_g_cclosure_marshal_BOOLEAN__OBJECT
    from /usr/lib/libgtkhtml-4.0.so.0
  • #23 g_closure_invoke
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #24 ??
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #25 g_signal_emit_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #26 g_signal_emit
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #27 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #28 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #29 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #30 html_engine_flush
    from /usr/lib/libgtkhtml-4.0.so.0
  • #31 gtk_html_flush
    from /usr/lib/libgtkhtml-4.0.so.0
  • #32 ??
    from /usr/lib/evolution/3.4/libevolution-mail.so.0
  • #33 ??
    from /usr/lib/evolution/3.4/libevolution-mail.so.0
  • #34 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #35 g_main_context_dispatch
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #36 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #37 g_main_loop_run
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #38 gtk_main
    from /usr/lib/i386-linux-gnu/libgtk-3.so.0
  • #39 main
  • #0 g_logv
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #1 g_log
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #2 e_cal_client_new
    from /usr/lib/libecal-1.2.so.11
  • #3 e_client_utils_new
    from /usr/lib/libedataserverui-3.0.so.1
  • #4 e_client_utils_open_new
    from /usr/lib/libedataserverui-3.0.so.1
  • #5 ??
    from /usr/lib/evolution/3.4/plugins/liborg-gnome-itip-formatter.so
  • #6 ??
    from /usr/lib/evolution/3.4/plugins/liborg-gnome-itip-formatter.so
  • #7 ??
    from /usr/lib/evolution/3.4/libevolution-mail.so.0
  • #8 html_g_cclosure_marshal_BOOLEAN__OBJECT
    from /usr/lib/libgtkhtml-4.0.so.0
  • #9 g_closure_invoke
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #10 ??
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #11 g_signal_emit_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #12 g_signal_emit
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #13 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #14 html_g_cclosure_marshal_BOOLEAN__OBJECT
    from /usr/lib/libgtkhtml-4.0.so.0
  • #15 g_closure_invoke
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #16 ??
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #17 g_signal_emit_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #18 g_signal_emit
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #19 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #20 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #21 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #22 html_engine_flush
    from /usr/lib/libgtkhtml-4.0.so.0
  • #23 gtk_html_flush
    from /usr/lib/libgtkhtml-4.0.so.0
  • #24 ??
    from /usr/lib/evolution/3.4/libevolution-mail.so.0
  • #25 ??
    from /usr/lib/evolution/3.4/libevolution-mail.so.0
  • #26 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #27 g_main_context_dispatch
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #28 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #29 g_main_loop_run
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #30 gtk_main
    from /usr/lib/i386-linux-gnu/libgtk-3.so.0
  • #31 main

Thread 1 (Thread 0xb5d4f890 (LWP 26694))

  • #0 g_logv
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #1 g_log
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #2 e_cal_client_new
    from /usr/lib/libecal-1.2.so.11
  • #3 e_client_utils_new
    from /usr/lib/libedataserverui-3.0.so.1
  • #4 e_client_utils_open_new
    from /usr/lib/libedataserverui-3.0.so.1
  • #5 ??
    from /usr/lib/evolution/3.4/plugins/liborg-gnome-itip-formatter.so
  • #6 ??
    from /usr/lib/evolution/3.4/plugins/liborg-gnome-itip-formatter.so
  • #7 ??
    from /usr/lib/evolution/3.4/libevolution-mail.so.0
  • #8 html_g_cclosure_marshal_BOOLEAN__OBJECT
    from /usr/lib/libgtkhtml-4.0.so.0
  • #9 g_closure_invoke
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #10 ??
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #11 g_signal_emit_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #12 g_signal_emit
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #13 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #14 html_g_cclosure_marshal_BOOLEAN__OBJECT
    from /usr/lib/libgtkhtml-4.0.so.0
  • #15 g_closure_invoke
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #16 ??
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #17 g_signal_emit_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #18 g_signal_emit
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #19 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #20 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #21 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #22 html_engine_flush
    from /usr/lib/libgtkhtml-4.0.so.0
  • #23 gtk_html_flush
    from /usr/lib/libgtkhtml-4.0.so.0
  • #24 ??
    from /usr/lib/evolution/3.4/libevolution-mail.so.0
  • #25 ??
    from /usr/lib/evolution/3.4/libevolution-mail.so.0
  • #26 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #27 g_main_context_dispatch
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #28 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #29 g_main_loop_run
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #30 gtk_main
    from /usr/lib/i386-linux-gnu/libgtk-3.so.0
  • #31 main


pvanhoof@lors:~/repos/prodata/test/1.7.0.2$ dpkg -s evolution-data-server
Package: evolution-data-server
Status: install ok installed
Priority: optional
Section: gnome
Installed-Size: 1804
Maintainer: Debian Evolution Maintainers <pkg-evolution-maintainers@lists.alioth.debian.org>
Architecture: i386
Version: 3.4.3-1
Depends: gconf-service, libatk1.0-0 (>= 1.12.4), libc6 (>= 2.7), libcairo-gobject2 (>= 1.10.0), libcairo2 (>= 1.2.4), libcamel-1.2-33 (= 3.4.3-1), libcomerr2 (>= 1.01), libdb5.1, libdbus-glib-1-2 (>= 0.78), libebackend-1.2-2 (>= 3.4.3), libebook-1.2-13 (>= 3.4.3), libecal-1.2-11 (>= 3.4.3), libedata-book-1.2-13 (>= 3.4.3), libedata-cal-1.2-15 (>= 3.4.3), libedataserver-1.2-16 (>= 3.4.3), libgconf-2-4 (>= 2.31.1), libgdata13 (>= 0.11.0), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.31.8), libgoa-1.0-0 (>= 3.1.1), libgssapi-krb5-2 (>= 1.6.dfsg.2), libgtk-3-0 (>= 3.2), libgweather-3-0 (>= 3.0.0), libical0 (>= 0.48), libk5crypto3 (>= 1.6.dfsg.2), libkrb5-3 (>= 1.6.dfsg.2), libldap-2.4-2 (>= 2.4.7), libnspr4 (>= 2:4.9-2~) | libnspr4-0d (>= 1.8.0.10), libnss3 (>= 2:3.13.4-2~) | libnss3-1d (>= 3.12.0~1.9b1), liboauth0 (>= 0.9.1), libpango1.0-0 (>= 1.14.0), libsoup2.4-1 (>= 2.32.2), libsqlite3-0 (>= 3.5.9), libxml2 (>= 2.7.4), zlib1g (>= 1:1.1.4), evolution-data-server-common (= 3.4.3-1)
Suggests: evolution, evolution-data-server-dbg (= 3.4.3-1)
Breaks: libebook-1.2-12 (<< 3.4), libebook1.2-10 (<< 3.2), libebook1.2-9 (<< 2.32), libecal1.2-7 (<< 2.32), libecal1.2-8 (<< 3.2)
Description: evolution database backend server
 The data server, called "Evolution Data Server" is responsible for managing
 mail, calendar, addressbook, tasks and memo information.
Homepage: http://www.gnome.org/projects/evolution/
pvanhoof@lors:~/repos/prodata/test/1.7.0.2$ 

pvanhoof@lors:~/repos/prodata/test/1.7.0.2$ dpkg -s evolution
Package: evolution
Status: install ok installed
Priority: optional
Section: gnome
Installed-Size: 5521
Maintainer: Debian Evolution Maintainers <pkg-evolution-maintainers@lists.alioth.debian.org>
Architecture: i386
Version: 3.4.3-1
Replaces: evolution-common (<< 2.91)
Provides: imap-client, mail-reader
Depends: gconf-service, libatk1.0-0 (>= 1.12.4), libc6 (>= 2.7), libcairo-gobject2 (>= 1.10.0), libcairo2 (>= 1.10), libcamel-1.2-33 (>= 3.4), libcamel-1.2-33 (<< 3.5), libclutter-gtk-1.0-0 (>= 0.91.8), libdbus-glib-1-2 (>= 0.78), libebackend-1.2-2 (>= 3.4.3), libebook-1.2-13 (>= 3.4.3), libecal-1.2-11 (>= 3.4.3), libedataserver-1.2-16 (>= 3.4.3), libedataserverui-3.0-1 (>= 3.4.3), libenchant1c2a (>= 1.6), libevolution (>= 3.4), libevolution (<< 3.5), libgail-3-0 (>= 3.0.0), libgconf-2-4 (>= 2.31.1), libgdata13 (>= 0.10.1), libgdk-pixbuf2.0-0 (>= 2.22.0), libglib2.0-0 (>= 2.31.8), libgnome-desktop-3-2 (>= 3.2.0), libgtk-3-0 (>= 3.2.0), libgtkhtml-4.0-0 (>= 4.4), libgtkhtml-4.0-0 (<< 4.5), libgtkhtml-editor-4.0-0 (>= 4.4), libgtkhtml-editor-4.0-0 (<< 4.5), libgweather-3-0 (>= 3.0.0), libical0 (>= 0.48), libmx-1.0-2 (>= 1.2.0), libnotify4 (>= 0.7.0), libnspr4 (>= 2:4.9-2~) | libnspr4-0d (>= 1.8.0.10), libnss3 (>= 2:3.13.4-2~) | libnss3-1d (>= 3.12.0~1.9b1), libpango1.0-0 (>= 1.14.0), libsoup2.4-1 (>= 2.32.2), libsqlite3-0 (>= 3.5.9), libxml2 (>= 2.7.4), gconf2 (>= 2.28.1-2), evolution-common (= 3.4.3-1), evolution-data-server (>= 3.4), evolution-data-server (<< 3.5), gnome-icon-theme (>= 2.30.2.1), dbus, psmisc
Pre-Depends: debconf (>= 1.4.69) | debconf-2.0
Recommends: evolution-plugins, evolution-webcal, yelp, bogofilter | spamassassin
Suggests: evolution-exchange, evolution-dbg, evolution-plugins-experimental, gnupg, network-manager
Conffiles:
 /etc/xdg/autostart/evolution-alarm-notify.desktop 2893b5399dc6cda2ac1d8cbca0c87cfc
Description: groupware suite with mail client and organizer
 Evolution is a groupware suite which integrates mail, calendar,
 address book, to-do list and memo tools.
 .
 Additional features include integration with Exchange
 servers, newsgroup client, LDAP support and web calendars
 .
 Evolution is a graphical application that is part of GNOME, and
 is distributed by Novell, Inc.
 .
 See http://projects.gnome.org/evolution/ for more information.
 .
 The following plugins belonging to the "base" set are included.
  - calendar-file
  - calendar-http
  - itip-formatter
  - default-source
  - addressbook-file
  - mark-all-read
  - publish-calendar
  - caldav
  - imap-features
  - google-account-setup
  - webdav-account-setup
  - calendar-weather
  - sa-junk-plugin
  - bogo-junk-plugin
Homepage: http://projects.gnome.org/evolution/
pvanhoof@lors:~/repos/prodata/test/1.7.0.2$
Comment 1 Philip Van Hoof 2012-08-29 07:24:19 UTC
(gdb) cont
Continuing.

(evolution:26694): libecal-WARNING **: e_cal_client_new: Cannot get calendar from factory: Timeout was reached

Program received signal SIGTRAP, Trace/breakpoint trap.
0xb7654f81 in g_logv () from /lib/i386-linux-gnu/libglib-2.0.so.0
(gdb) br
Breakpoint 1 at 0xb7654f81
(gdb) bt

Thread 1 (Thread 0xb5d4f890 (LWP 26694))

  • #0 g_logv
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #1 g_log
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #2 e_cal_client_new
    from /usr/lib/libecal-1.2.so.11
  • #3 e_client_utils_new
    from /usr/lib/libedataserverui-3.0.so.1
  • #4 e_client_utils_open_new
    from /usr/lib/libedataserverui-3.0.so.1
  • #5 ??
    from /usr/lib/evolution/3.4/plugins/liborg-gnome-itip-formatter.so
  • #6 ??
    from /usr/lib/evolution/3.4/plugins/liborg-gnome-itip-formatter.so
  • #7 ??
    from /usr/lib/evolution/3.4/libevolution-mail.so.0
  • #8 html_g_cclosure_marshal_BOOLEAN__OBJECT
    from /usr/lib/libgtkhtml-4.0.so.0
  • #9 g_closure_invoke
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #10 ??
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #11 g_signal_emit_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #12 g_signal_emit
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #13 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #14 html_g_cclosure_marshal_BOOLEAN__OBJECT
    from /usr/lib/libgtkhtml-4.0.so.0
  • #15 g_closure_invoke
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #16 ??
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #17 g_signal_emit_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #18 g_signal_emit
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #19 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #20 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #21 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #22 html_engine_flush
    from /usr/lib/libgtkhtml-4.0.so.0
  • #23 gtk_html_flush
    from /usr/lib/libgtkhtml-4.0.so.0
  • #24 ??
    from /usr/lib/evolution/3.4/libevolution-mail.so.0
  • #25 ??
    from /usr/lib/evolution/3.4/libevolution-mail.so.0
  • #26 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #27 g_main_context_dispatch
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #28 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #29 g_main_loop_run
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #30 gtk_main
    from /usr/lib/i386-linux-gnu/libgtk-3.so.0
  • #31 main

Comment 2 Philip Van Hoof 2012-08-29 07:25:05 UTC
(gdb) thread apply all bt

Thread 1 (Thread 0xb5d4f890 (LWP 26694))

  • #0 g_logv
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #1 g_log
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #2 e_cal_client_new
    from /usr/lib/libecal-1.2.so.11
  • #3 e_client_utils_new
    from /usr/lib/libedataserverui-3.0.so.1
  • #4 e_client_utils_open_new
    from /usr/lib/libedataserverui-3.0.so.1
  • #5 ??
    from /usr/lib/evolution/3.4/plugins/liborg-gnome-itip-formatter.so
  • #6 ??
    from /usr/lib/evolution/3.4/plugins/liborg-gnome-itip-formatter.so
  • #7 ??
    from /usr/lib/evolution/3.4/libevolution-mail.so.0
  • #8 html_g_cclosure_marshal_BOOLEAN__OBJECT
    from /usr/lib/libgtkhtml-4.0.so.0
  • #9 g_closure_invoke
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #10 ??
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #11 g_signal_emit_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #12 g_signal_emit
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #13 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #14 html_g_cclosure_marshal_BOOLEAN__OBJECT
    from /usr/lib/libgtkhtml-4.0.so.0
  • #15 g_closure_invoke
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #16 ??
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #17 g_signal_emit_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #18 g_signal_emit
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #19 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #20 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #21 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #22 html_engine_flush
    from /usr/lib/libgtkhtml-4.0.so.0
  • #23 gtk_html_flush
    from /usr/lib/libgtkhtml-4.0.so.0
  • #24 ??
    from /usr/lib/evolution/3.4/libevolution-mail.so.0
  • #25 ??
    from /usr/lib/evolution/3.4/libevolution-mail.so.0
  • #26 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #27 g_main_context_dispatch
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #28 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #29 g_main_loop_run
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #30 gtk_main
    from /usr/lib/i386-linux-gnu/libgtk-3.so.0
  • #31 main

Comment 3 Philip Van Hoof 2012-08-29 07:29:26 UTC
And now with debugging symbols evolution-dbg:

(gdb) run
The program being debugged has been started already.
Start it from the beginning? (y or n) y
Starting program: /usr/bin/evolution 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".
[New Thread 0xb4937b70 (LWP 26864)]
[New Thread 0xb40f6b70 (LWP 26865)]
[New Thread 0xb38f5b70 (LWP 26866)]
Migrating cached data
Migrating config data
Migrating local user data
  rmdir /home/pvanhoof/.evolution/tasks
  FAILED: Directory not empty (contents follows)
          tasks
[New Thread 0xa6fe7b70 (LWP 26867)]
[New Thread 0xa6778b70 (LWP 26868)]
[Thread 0xa6778b70 (LWP 26868) exited]
[New Thread 0xa6778b70 (LWP 26869)]
[New Thread 0xa5f3fb70 (LWP 26870)]
[New Thread 0xa573eb70 (LWP 26871)]
[Thread 0xa5f3fb70 (LWP 26870) exited]
[New Thread 0xa5f3fb70 (LWP 26872)]
[New Thread 0xa4f0eb70 (LWP 26873)]
[Thread 0xa5f3fb70 (LWP 26872) exited]
[New Thread 0xa470db70 (LWP 26874)]
[New Thread 0xa5f3fb70 (LWP 26875)]
[New Thread 0xa3f0cb70 (LWP 26876)]
[Thread 0xa3f0cb70 (LWP 26876) exited]
[New Thread 0xa3f0cb70 (LWP 26877)]
[New Thread 0xa33ffb70 (LWP 26878)]
[New Thread 0xa2bfeb70 (LWP 26879)]
[Thread 0xa573eb70 (LWP 26871) exited]
[Thread 0xa470db70 (LWP 26874) exited]
[Thread 0xa4f0eb70 (LWP 26873) exited]
[Thread 0xa6fe7b70 (LWP 26867) exited]
[New Thread 0xa6fe7b70 (LWP 26881)]
^C
Program received signal SIGINT, Interrupt.
0xb7fe2822 in ?? () from /lib/ld-linux.so.2
(gdb) thread apply all bt

Thread 1 (Thread 0xb5d4f890 (LWP 26863))

  • #0 ??
    from /lib/ld-linux.so.2
  • #1 *__GI___poll
  • #2 g_poll
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #3 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #4 g_main_loop_run
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #5 ??
    from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
  • #6 g_initable_init
    from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
  • #7 g_initable_new_valist
    from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
  • #8 g_initable_new
    from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
  • #9 e_gdbus_cal_factory_proxy_new_for_bus_sync
    from /usr/lib/libecal-1.2.so.11
  • #10 e_cal_client_new
    from /usr/lib/libecal-1.2.so.11
  • #11 e_client_utils_new
    from /usr/lib/libedataserverui-3.0.so.1
  • #12 e_client_utils_open_new
    from /usr/lib/libedataserverui-3.0.so.1
  • #13 start_calendar_server
    at itip-formatter.c line 603
  • #14 find_server
    at itip-formatter.c line 1159
  • #15 format_itip_object
    at itip-formatter.c line 3018
  • #16 efh_object_requested
    at em-format-html.c line 1821
  • #17 html_g_cclosure_marshal_BOOLEAN__OBJECT
    from /usr/lib/libgtkhtml-4.0.so.0
  • #18 g_closure_invoke
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #19 ??
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #20 g_signal_emit_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #21 g_signal_emit
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #22 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #23 html_g_cclosure_marshal_BOOLEAN__OBJECT
    from /usr/lib/libgtkhtml-4.0.so.0
  • #24 g_closure_invoke
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #25 ??
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #26 g_signal_emit_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #27 g_signal_emit
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #28 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #29 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #30 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #31 html_engine_flush
    from /usr/lib/libgtkhtml-4.0.so.0
  • #32 gtk_html_flush
    from /usr/lib/libgtkhtml-4.0.so.0
  • #33 html_stream_sync_flush
    at em-html-stream.c line 108
  • #34 sync_stream_process_message
    at em-sync-stream.c line 87
  • #35 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #36 g_main_context_dispatch
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #37 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #38 g_main_loop_run
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #39 gtk_main
    from /usr/lib/i386-linux-gnu/libgtk-3.so.0
  • #40 main
    at main.c line 681
Continuing.
[Thread 0xa6778b70 (LWP 26869) exited]
Comment 4 Philip Van Hoof 2012-08-29 07:31:27 UTC
(gdb) thread apply all bt

with debugging symbols:



Thread 1 (Thread 0xb5d4f890 (LWP 26883))

  • #0 g_logv
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #1 g_log
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #2 e_cal_client_new
    from /usr/lib/libecal-1.2.so.11
  • #3 e_client_utils_new
    from /usr/lib/libedataserverui-3.0.so.1
  • #4 e_client_utils_open_new
    from /usr/lib/libedataserverui-3.0.so.1
  • #5 start_calendar_server
    at itip-formatter.c line 603
  • #6 find_server
    at itip-formatter.c line 1159
  • #7 format_itip_object
    at itip-formatter.c line 3018
  • #8 efh_object_requested
    at em-format-html.c line 1821
  • #9 html_g_cclosure_marshal_BOOLEAN__OBJECT
  • #10 g_closure_invoke
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #11 ??
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #12 g_signal_emit_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #13 g_signal_emit
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #14 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #15 html_g_cclosure_marshal_BOOLEAN__OBJECT
    from /usr/lib/libgtkhtml-4.0.so.0
  • #16 g_closure_invoke
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #17 ??
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #18 g_signal_emit_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #19 g_signal_emit
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #20 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #21 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #22 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #23 html_engine_flush
    from /usr/lib/libgtkhtml-4.0.so.0
  • #24 gtk_html_flush
    from /usr/lib/libgtkhtml-4.0.so.0
  • #25 html_stream_sync_flush
    at em-html-stream.c line 108
  • #26 sync_stream_process_message
    at em-sync-stream.c line 87
  • #27 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #28 g_main_context_dispatch
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #29 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #30 g_main_loop_run
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #31 gtk_main
    from /usr/lib/i386-linux-gnu/libgtk-3.so.0
  • #32 main
    at main.c line 681

Comment 5 Philip Van Hoof 2012-08-29 07:39:27 UTC
Now also with debugging symbols of evolution-data-server-dbg:

(gdb) run
Starting program: /usr/bin/evolution 
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".
[New Thread 0xb4937b70 (LWP 26981)]
[New Thread 0xb40f6b70 (LWP 26982)]
[New Thread 0xb38f5b70 (LWP 26983)]
Migrating cached data
Migrating config data
Migrating local user data
  rmdir /home/pvanhoof/.evolution/tasks
  FAILED: Directory not empty (contents follows)
          tasks
[New Thread 0xa6ff1b70 (LWP 26984)]
[New Thread 0xa677db70 (LWP 26985)]
[Thread 0xa677db70 (LWP 26985) exited]
[New Thread 0xa677db70 (LWP 26986)]
[New Thread 0xa5dffb70 (LWP 26987)]
[New Thread 0xa55feb70 (LWP 26988)]
[Thread 0xa5dffb70 (LWP 26987) exited]
[New Thread 0xa5dffb70 (LWP 26989)]
[New Thread 0xa4bffb70 (LWP 26990)]
[New Thread 0xa43feb70 (LWP 26991)]
[New Thread 0xa3bfdb70 (LWP 26992)]
[New Thread 0xa33fcb70 (LWP 26993)]
[Thread 0xa33fcb70 (LWP 26993) exited]
[New Thread 0xa2bfbb70 (LWP 26994)]
[Thread 0xa2bfbb70 (LWP 26994) exited]
[New Thread 0xa2bfbb70 (LWP 26995)]
[New Thread 0xa33fcb70 (LWP 26996)]
[Thread 0xa55feb70 (LWP 26988) exited]
[Thread 0xa3bfdb70 (LWP 26992) exited]
[Thread 0xa6ff1b70 (LWP 26984) exited]
[Thread 0xa43feb70 (LWP 26991) exited]
[New Thread 0xa43feb70 (LWP 26997)]
[Thread 0xa677db70 (LWP 26986) exited]

(evolution:26978): libecal-WARNING **: e_cal_client_new: Cannot get calendar from factory: Timeout was reached

Program received signal SIGTRAP, Trace/breakpoint trap.
0xb7654f81 in g_logv () from /lib/i386-linux-gnu/libglib-2.0.so.0
(gdb) thread apply all bt

Thread 1 (Thread 0xb5d4f890 (LWP 26978))

  • #0 g_logv
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #1 g_log
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #2 e_cal_client_new
    at e-cal-client.c line 634
  • #3 e_client_utils_new
    at e-client-utils.c line 63
  • #4 e_client_utils_open_new
    at e-client-utils.c line 686
  • #5 start_calendar_server
    at itip-formatter.c line 603
  • #6 find_server
    at itip-formatter.c line 1159
  • #7 format_itip_object
    at itip-formatter.c line 3018
  • #8 efh_object_requested
    at em-format-html.c line 1821
  • #9 html_g_cclosure_marshal_BOOLEAN__OBJECT
    from /usr/lib/libgtkhtml-4.0.so.0
  • #10 g_closure_invoke
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #11 ??
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #12 g_signal_emit_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #13 g_signal_emit
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #14 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #15 html_g_cclosure_marshal_BOOLEAN__OBJECT
    from /usr/lib/libgtkhtml-4.0.so.0
  • #16 g_closure_invoke
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #17 ??
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #18 g_signal_emit_valist
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #19 g_signal_emit
    from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
  • #20 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #21 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #22 ??
    from /usr/lib/libgtkhtml-4.0.so.0
  • #23 html_engine_flush
    from /usr/lib/libgtkhtml-4.0.so.0
  • #24 gtk_html_flush
    from /usr/lib/libgtkhtml-4.0.so.0
  • #25 html_stream_sync_flush
    at em-html-stream.c line 108
  • #26 sync_stream_process_message
    at em-sync-stream.c line 87
  • #27 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #28 g_main_context_dispatch
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #29 ??
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #30 g_main_loop_run
    from /lib/i386-linux-gnu/libglib-2.0.so.0
  • #31 gtk_main
    from /usr/lib/i386-linux-gnu/libgtk-3.so.0
  • #32 main
    at main.c line 681
(gdb)
Comment 6 Matthew Barnes 2012-08-29 11:14:48 UTC
I'm about to deprecate e_cal_client_new() and e_book_client_new() and replace them with proper async functions, because I found they block like crazy.  But it's too late to fix for 3.6.
Comment 7 Philip Van Hoof 2012-08-29 14:40:27 UTC
Async constructors ... :-\
Comment 8 Miah Gregory 2012-08-30 12:49:11 UTC
I suspect this is the problem (or very closely related to) I've been living with for months (I'm running evo 3.4.3 from debian testing).

From a users perspective, it's a total deal breaker. More than half the time I want to view any of my caldav calendars, it results in a UI lockup, if accessed either via evolution itself or via the drop down calendar from the desktop clock.

If evolution itself hangs, it can be cleared by killing all evolution-calendar-factory processes. If the desktop clock hangs, the entire window manager seems to lock up, and unless you have a console open you have no way to open a new one to clear the problem (or drop to console/remote ssh).
Comment 9 Philip Van Hoof 2012-08-30 13:37:28 UTC
(In reply to comment #8)
> I suspect this is the problem (or very closely related to) I've been living
> with for months (I'm running evo 3.4.3 from debian testing).
> 
> From a users perspective, it's a total deal breaker. More than half the time I
> want to view any of my caldav calendars, it results in a UI lockup, if accessed
> either via evolution itself or via the drop down calendar from the desktop
> clock.
> 
> If evolution itself hangs, it can be cleared by killing all
> evolution-calendar-factory processes. If the desktop clock hangs, the entire
> window manager seems to lock up, and unless you have a console open you have no
> way to open a new one to clear the problem (or drop to console/remote ssh).

Ok so the problem is likely in evolution-calendar-factory and not in evolution, and wont turning the constructors into async ones really solve it. That'll just let the UI continue running while the async constructor waits for the same failure coming from evolution-calendar-factory.

Can a developer of the Evolution team give us instructions on how to run evolution-calendar-factory in such a way that we can give a more clear view on what is going on / wrong?
Comment 10 Matthew Barnes 2012-08-30 14:22:55 UTC
(In reply to comment #9)
> Can a developer of the Evolution team give us instructions on how to run
> evolution-calendar-factory in such a way that we can give a more clear view on
> what is going on / wrong?

Sure, run /usr/libexec/evolution-calendar-factory under gdb.

Use the --keep-running command-line option to disable its inactivity timeout.
Comment 11 Philip Van Hoof 2012-08-31 09:34:46 UTC
(In reply to comment #10)
> (In reply to comment #9)
> > Can a developer of the Evolution team give us instructions on how to run
> > evolution-calendar-factory in such a way that we can give a more clear view on
> > what is going on / wrong?
> 
> Sure, run /usr/libexec/evolution-calendar-factory under gdb.
> 
> Use the --keep-running command-line option to disable its inactivity timeout.

Interesting. When I run it in gdb with --keep-running, it all works fine.

An issue with DBus service activation on Debian testing?
Comment 12 Philip Van Hoof 2012-08-31 09:36:12 UTC
FYI

pvanhoof@lors:~$ cat /usr/share/dbus-1/services/org.gnome.evolution.dataserver.Calendar.service 
[D-BUS Service]
Name=org.gnome.evolution.dataserver.Calendar1
Exec=/usr/lib/evolution/evolution-calendar-factory
pvanhoof@lors:~$ ls -alh /usr/lib/evolution/evolution-calendar-factory
-rwxr-xr-x 1 root root 14K Jun 19 19:42 /usr/lib/evolution/evolution-calendar-factory
pvanhoof@lors:~$
Comment 13 Matthew Barnes 2012-08-31 11:32:53 UTC
As part of the migration off of GConf, our D-Bus interfaces changed slightly.

Evolution 3.5 needs a D-Bus service named Calendar3, which is provided by Evolution-Data-Server 3.5.  Evolution-Data-Server 3.4 provides Calendar1.

Since Debian Testing is on GNOME 3.4, trying to run Evolution 3.5 with D-Bus services provided by Debian Testing won't work.  D-Bus most likely doesn't know where to find the service names provided by E-D-S 3.5.

Starting the service manually or adding a <servicedir> element to /etc/dbus-1/session.conf are the easiest fixes.

If you're running them manually, note that there's a 3rd D-Bus service now which must be started first: $(LIBEXECDIR)/evolution-source-registry
Comment 14 Philip Van Hoof 2012-08-31 13:16:22 UTC
Can you paste here the <servicedir> element that must be added? Then I can test this and perhaps forward the bug to the Debian packager. Does anybody know who that is. A good idea might be to add this individual in CC of this bug.
Comment 15 André Klapper 2012-08-31 13:44:40 UTC
http://packages.debian.org/squeeze/evolution lists maintainers at the right.
Comment 16 Matthew Barnes 2012-08-31 13:45:40 UTC
Debian doesn't need to change their packaging since they'll have to update their Evolution and Evolution-Data-Server packages to 3.6 simultaneously.  It sounds like you were trying to run Evo 3.5 with D-Bus services from E-D-S 3.4.

Assuming you installed Evolution-Data-Server 3.5.x to your own private install prefix (say "/opt/gnome/"), for D-Bus to activate those services it needs to know where to find D-Bus service files within that prefix:

   <servicedir>/opt/gnome/share/dbus-1/services</servicedir>

Then it's a matter of restarting the session bus.
Comment 17 Philip Van Hoof 2012-08-31 14:07:18 UTC
I didn't install a custom eds or evo. This system is all standard apt-get installed packages.
Comment 18 Philip Van Hoof 2012-08-31 14:13:58 UTC
So basically org.gnome.evolution.dataserver.Calendar.service should be using Name=org.gnome.evolution.dataserver.Calendar3 but is right now using Name=org.gnome.evolution.dataserver.Calendar1 ?

lors:~# dpkg -S /usr/share/dbus-1/services/org.gnome.evolution.dataserver.Calendar.service 
evolution-data-server-common: /usr/share/dbus-1/services/org.gnome.evolution.dataserver.Calendar.service
lors:~# 

Package: evolution-data-server-common
Status: install ok installed
Priority: optional
Section: gnome
Installed-Size: 8407
Maintainer: Debian Evolution Maintainers <pkg-evolution-maintainers@lists.alioth.debian.org>
Architecture: all
Source: evolution-data-server
Version: 3.4.3-1
Depends: dconf-gsettings-backend | gsettings-backend
Description: architecture independent files for Evolution Data Server
 The data server, called "Evolution Data Server" is responsible for managing
 calendar and addressbook information.
 .
 This package contains the architecture independent files needed
 by the evolution-data-server package.
Homepage: http://www.gnome.org/projects/evolution/
lors:~#
Comment 19 Philip Van Hoof 2012-08-31 14:17:01 UTC
Oh, also notice the dpkg -s commands that I copy pasted in earlier comments: I don't have 3.5 installed:

lors:~# dpkg -s evolution evolution-data-server evolution-data-server-common | grep Version
Version: 3.4.3-1
Version: 3.4.3-1
Version: 3.4.3-1
lors:~#
Comment 20 Milan Crha 2012-09-04 17:22:37 UTC
I would try to reproduce the issue, and while UI is waiting, get a backtrace of (probably running but stuck) evolution-calendar-factory process. If it's not running, then it's an issue on DBus side, on the activation of the factory.
Comment 21 Philip Van Hoof 2012-09-04 18:30:09 UTC
(In reply to comment #20)
> I would try to reproduce the issue, and while UI is waiting, get a backtrace of
> (probably running but stuck) evolution-calendar-factory process. If it's not
> running, then it's an issue on DBus side, on the activation of the factory.

And what is the info you need?
Comment 22 Milan Crha 2012-09-04 19:31:39 UTC
While evo is in hung/waiting state check:
a) evolution-calendar-factory is running
b) if yes, get a backtrace of it (t a a bt), to see why it doesn't respond

Make sure the backtrace will not contain any private information, like passwords (I usually search for "pass" (quotes for clarity only) in it).
Comment 23 Miah Gregory 2012-09-04 22:56:53 UTC
Hi,

Just locked up for me - I didn't have debug info installed for the data server unfortunately, but here is a backtrace as requested. I'll do another one next time it locks up if you need more info.

$ dpkg -s evolution evolution-data-server evolution-data-server-common |grep Version
Version: 3.4.3-1
Version: 3.4.3-1
Version: 3.4.3-1

$ ps auxf |grep cal
mace      6867  0.0  0.3 647096 27688 ?        Sl   19:06   0:08 /usr/lib/evolution/evolution-calendar-factory

$ gdb /usr/lib/evolution/evolution-calendar-factory 6867
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/lib/evolution/evolution-calendar-factory...(no debugging symbols found)...done.
Attaching to program: /usr/lib/evolution/evolution-calendar-factory, process 6867
Reading symbols from /usr/lib/libedata-cal-1.2.so.15...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libedata-cal-1.2.so.15
Reading symbols from /usr/lib/libebackend-1.2.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libebackend-1.2.so.2
Reading symbols from /usr/lib/libedataserver-1.2.so.16...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libedataserver-1.2.so.16
Reading symbols from /usr/lib/libical.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libical.so.0
Reading symbols from /lib/x86_64-linux-gnu/libpthread.so.0...Reading symbols from /usr/lib/debug/lib/x86_64-linux-gnu/libpthread-2.13.so...done.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7f6e917fa700 (LWP 6885)]
[New Thread 0x7f6e91ffb700 (LWP 6884)]
[New Thread 0x7f6e927fc700 (LWP 6883)]
[New Thread 0x7f6e92ffd700 (LWP 6882)]
[New Thread 0x7f6e937fe700 (LWP 6881)]
[New Thread 0x7f6ea37fe700 (LWP 6874)]
[New Thread 0x7f6ea884d700 (LWP 6872)]
[New Thread 0x7f6ea9a58700 (LWP 6870)]
[New Thread 0x7f6eb4e5b700 (LWP 6868)]
done.
Loaded symbols for /lib/x86_64-linux-gnu/libpthread.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libdbus-glib-1.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libdbus-glib-1.so.2
Reading symbols from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
Reading symbols from /lib/x86_64-linux-gnu/libglib-2.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/x86_64-linux-gnu/libglib-2.0.so.0
Reading symbols from /lib/x86_64-linux-gnu/libc.so.6...Reading symbols from /usr/lib/debug/lib/x86_64-linux-gnu/libc-2.13.so...done.
done.
Loaded symbols for /lib/x86_64-linux-gnu/libc.so.6
Reading symbols from /usr/lib/libecal-1.2.so.11...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libecal-1.2.so.11
Reading symbols from /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libgmodule-2.0.so.0
Reading symbols from /lib/x86_64-linux-gnu/librt.so.1...Reading symbols from /usr/lib/debug/lib/x86_64-linux-gnu/librt-2.13.so...done.
done.
Loaded symbols for /lib/x86_64-linux-gnu/librt.so.1
Reading symbols from /usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1
Reading symbols from /usr/lib/x86_64-linux-gnu/libplds4.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libplds4.so
Reading symbols from /usr/lib/x86_64-linux-gnu/libplc4.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libplc4.so
Reading symbols from /usr/lib/x86_64-linux-gnu/libnspr4.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libnspr4.so
Reading symbols from /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libgio-2.0.so.0
Reading symbols from /usr/lib/libicalss.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libicalss.so.0
Reading symbols from /usr/lib/libicalvcal.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libicalvcal.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libxml2.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libxml2.so.2
Reading symbols from /usr/lib/x86_64-linux-gnu/libgconf-2.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libgconf-2.so.4
Reading symbols from /usr/lib/x86_64-linux-gnu/libsqlite3.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libsqlite3.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libdb-5.1.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libdb-5.1.so
Reading symbols from /lib64/ld-linux-x86-64.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib64/ld-linux-x86-64.so.2
Reading symbols from /lib/x86_64-linux-gnu/libdbus-1.so.3...(no debugging symbols found)...done.
Loaded symbols for /lib/x86_64-linux-gnu/libdbus-1.so.3
Reading symbols from /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libgthread-2.0.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libffi.so.5...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libffi.so.5
Reading symbols from /lib/x86_64-linux-gnu/libpcre.so.3...(no debugging symbols found)...done.
Loaded symbols for /lib/x86_64-linux-gnu/libpcre.so.3
Reading symbols from /lib/x86_64-linux-gnu/libdl.so.2...Reading symbols from /usr/lib/debug/lib/x86_64-linux-gnu/libdl-2.13.so...done.
done.
Loaded symbols for /lib/x86_64-linux-gnu/libdl.so.2
Reading symbols from /lib/x86_64-linux-gnu/libz.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/x86_64-linux-gnu/libz.so.1
Reading symbols from /lib/x86_64-linux-gnu/libselinux.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/x86_64-linux-gnu/libselinux.so.1
Reading symbols from /lib/x86_64-linux-gnu/libresolv.so.2...Reading symbols from /usr/lib/debug/lib/x86_64-linux-gnu/libresolv-2.13.so...done.
done.
Loaded symbols for /lib/x86_64-linux-gnu/libresolv.so.2
Reading symbols from /lib/x86_64-linux-gnu/liblzma.so.5...(no debugging symbols found)...done.
Loaded symbols for /lib/x86_64-linux-gnu/liblzma.so.5
Reading symbols from /lib/x86_64-linux-gnu/libm.so.6...Reading symbols from /usr/lib/debug/lib/x86_64-linux-gnu/libm-2.13.so...done.
done.
Loaded symbols for /lib/x86_64-linux-gnu/libm.so.6
Reading symbols from /lib/x86_64-linux-gnu/libnss_compat.so.2...Reading symbols from /usr/lib/debug/lib/x86_64-linux-gnu/libnss_compat-2.13.so...done.
done.
Loaded symbols for /lib/x86_64-linux-gnu/libnss_compat.so.2
Reading symbols from /lib/x86_64-linux-gnu/libnsl.so.1...Reading symbols from /usr/lib/debug/lib/x86_64-linux-gnu/libnsl-2.13.so...done.
done.
Loaded symbols for /lib/x86_64-linux-gnu/libnsl.so.1
Reading symbols from /lib/x86_64-linux-gnu/libnss_nis.so.2...Reading symbols from /usr/lib/debug/lib/x86_64-linux-gnu/libnss_nis-2.13.so...done.
done.
Loaded symbols for /lib/x86_64-linux-gnu/libnss_nis.so.2
Reading symbols from /lib/x86_64-linux-gnu/libnss_files.so.2...Reading symbols from /usr/lib/debug/lib/x86_64-linux-gnu/libnss_files-2.13.so...done.
done.
Loaded symbols for /lib/x86_64-linux-gnu/libnss_files.so.2
Reading symbols from /usr/lib/evolution-data-server/calendar-backends/libecalbackendfile.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/evolution-data-server/calendar-backends/libecalbackendfile.so
Reading symbols from /usr/lib/evolution-data-server/calendar-backends/libecalbackendweather.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/evolution-data-server/calendar-backends/libecalbackendweather.so
Reading symbols from /usr/lib/libgweather-3.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgweather-3.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libgtk-3.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libgtk-3.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libgdk-3.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libgdk-3.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libatk-1.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libatk-1.0.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libpangocairo-1.0.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libcairo-gobject.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libcairo-gobject.so.2
Reading symbols from /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libpango-1.0.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libcairo.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libcairo.so.2
Reading symbols from /usr/lib/x86_64-linux-gnu/libsoup-gnome-2.4.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libsoup-gnome-2.4.so.1
Reading symbols from /usr/lib/x86_64-linux-gnu/libX11.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libX11.so.6
Reading symbols from /usr/lib/x86_64-linux-gnu/libXi.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libXi.so.6
Reading symbols from /usr/lib/x86_64-linux-gnu/libXcomposite.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libXcomposite.so.1
Reading symbols from /usr/lib/x86_64-linux-gnu/libXdamage.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libXdamage.so.1
Reading symbols from /usr/lib/x86_64-linux-gnu/libXfixes.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libXfixes.so.3
Reading symbols from /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libpangoft2-1.0.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libfreetype.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libfreetype.so.6
Reading symbols from /usr/lib/x86_64-linux-gnu/libfontconfig.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libfontconfig.so.1
Reading symbols from /usr/lib/x86_64-linux-gnu/libXext.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libXext.so.6
Reading symbols from /usr/lib/x86_64-linux-gnu/libXinerama.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libXinerama.so.1
Reading symbols from /usr/lib/x86_64-linux-gnu/libXrandr.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libXrandr.so.2
Reading symbols from /usr/lib/x86_64-linux-gnu/libXcursor.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libXcursor.so.1
Reading symbols from /lib/x86_64-linux-gnu/libpng12.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/x86_64-linux-gnu/libpng12.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libpixman-1.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libpixman-1.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libxcb-shm.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libxcb-render.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libxcb-render.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libxcb.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libxcb.so.1
Reading symbols from /usr/lib/x86_64-linux-gnu/libXrender.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libXrender.so.1
Reading symbols from /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libgnome-keyring.so.0
Reading symbols from /lib/x86_64-linux-gnu/libexpat.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/x86_64-linux-gnu/libexpat.so.1
Reading symbols from /usr/lib/x86_64-linux-gnu/libXau.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libXau.so.6
Reading symbols from /usr/lib/x86_64-linux-gnu/libXdmcp.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libXdmcp.so.6
Reading symbols from /lib/x86_64-linux-gnu/libgcrypt.so.11...(no debugging symbols found)...done.
Loaded symbols for /lib/x86_64-linux-gnu/libgcrypt.so.11
Reading symbols from /lib/x86_64-linux-gnu/libgpg-error.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/x86_64-linux-gnu/libgpg-error.so.0
Reading symbols from /usr/lib/evolution-data-server/calendar-backends/libecalbackendexchange.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/evolution-data-server/calendar-backends/libecalbackendexchange.so
Reading symbols from /usr/lib/evolution-exchange/3.4/libexchange.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/evolution-exchange/3.4/libexchange.so.0
Reading symbols from /usr/lib/evolution-exchange/3.4/libexchange-storage.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/evolution-exchange/3.4/libexchange-storage.so
Reading symbols from /usr/lib/evolution-exchange/3.4/libevolution-exchange-shared.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/evolution-exchange/3.4/libevolution-exchange-shared.so
Reading symbols from /usr/lib/libedataserverui-3.0.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libedataserverui-3.0.so.1
Reading symbols from /usr/lib/libedata-book-1.2.so.13...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libedata-book-1.2.so.13
Reading symbols from /usr/lib/libebook-1.2.so.13...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libebook-1.2.so.13
Reading symbols from /usr/lib/evolution/3.4/libeutil.so.0...Reading symbols from /usr/lib/debug/.build-id/dd/aebec25b1c48084e233b4378976174a41ff7af.debug...done.
done.
Loaded symbols for /usr/lib/evolution/3.4/libeutil.so.0
Reading symbols from /usr/lib/libcamel-1.2.so.33...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libcamel-1.2.so.33
Reading symbols from /usr/lib/libgtkhtml-editor-4.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgtkhtml-editor-4.0.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libnss3.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libnss3.so
Reading symbols from /usr/lib/x86_64-linux-gnu/libnssutil3.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libnssutil3.so
Reading symbols from /usr/lib/x86_64-linux-gnu/libsmime3.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libsmime3.so
Reading symbols from /usr/lib/x86_64-linux-gnu/libssl3.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libssl3.so
Reading symbols from /usr/lib/libgtkhtml-4.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgtkhtml-4.0.so.0
Reading symbols from /usr/lib/libenchant.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libenchant.so.1
Reading symbols from /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libldap_r-2.4.so.2
Reading symbols from /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/liblber-2.4.so.2
Reading symbols from /usr/lib/evolution-exchange/3.4/libxntlm.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/evolution-exchange/3.4/libxntlm.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libkrb5.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libkrb5.so.3
Reading symbols from /usr/lib/x86_64-linux-gnu/libk5crypto.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libk5crypto.so.3
Reading symbols from /lib/x86_64-linux-gnu/libcom_err.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/x86_64-linux-gnu/libcom_err.so.2
Reading symbols from /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2
Reading symbols from /usr/lib/x86_64-linux-gnu/libgoa-1.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libgoa-1.0.so.0
Reading symbols from /usr/lib/evolution/3.4/libevolution-utils.so.0...Reading symbols from /usr/lib/debug/.build-id/b3/a7f8201f9ba7cfe166b7d43954c712b16ed260.debug...done.
done.
Loaded symbols for /usr/lib/evolution/3.4/libevolution-utils.so.0
Reading symbols from /usr/lib/x86_64-linux-gnu/libgailutil-3.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libgailutil-3.so.0
Reading symbols from /usr/lib/libgnome-desktop-3.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgnome-desktop-3.so.2
Reading symbols from /usr/lib/x86_64-linux-gnu/libsasl2.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libsasl2.so.2
Reading symbols from /usr/lib/x86_64-linux-gnu/libgnutls.so.26...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libgnutls.so.26
Reading symbols from /usr/lib/x86_64-linux-gnu/libkrb5support.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libkrb5support.so.0
Reading symbols from /lib/x86_64-linux-gnu/libkeyutils.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/x86_64-linux-gnu/libkeyutils.so.1
Reading symbols from /usr/lib/x86_64-linux-gnu/libtasn1.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libtasn1.so.3
Reading symbols from /usr/lib/x86_64-linux-gnu/libp11-kit.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/libp11-kit.so.0
Reading symbols from /usr/lib/evolution-data-server/calendar-backends/libecalbackendcaldav.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/evolution-data-server/calendar-backends/libecalbackendcaldav.so
Reading symbols from /usr/lib/evolution-data-server/calendar-backends/libecalbackendhttp.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/evolution-data-server/calendar-backends/libecalbackendhttp.so
Reading symbols from /usr/lib/evolution-data-server/calendar-backends/libecalbackendcontacts.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/evolution-data-server/calendar-backends/libecalbackendcontacts.so
Reading symbols from /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/gio/modules/libdconfsettings.so
Reading symbols from /lib/libnss_mdns4_minimal.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libnss_mdns4_minimal.so.2
Reading symbols from /lib/x86_64-linux-gnu/libnss_dns.so.2...Reading symbols from /usr/lib/debug/lib/x86_64-linux-gnu/libnss_dns-2.13.so...done.
done.
Loaded symbols for /lib/x86_64-linux-gnu/libnss_dns.so.2
Reading symbols from /usr/lib/x86_64-linux-gnu/gio/modules/libgiognutls.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/gio/modules/libgiognutls.so
Reading symbols from /usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/pkcs11/gnome-keyring-pkcs11.so
Reading symbols from /usr/lib/x86_64-linux-gnu/gconv/ISO8859-1.so...Reading symbols from /usr/lib/debug/usr/lib/x86_64-linux-gnu/gconv/ISO8859-1.so...done.
done.
Loaded symbols for /usr/lib/x86_64-linux-gnu/gconv/ISO8859-1.so
__lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
136	../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S: No such file or directory.
(gdb) info threads
  Id   Target Id         Frame 
  10   Thread 0x7f6eb4e5b700 (LWP 6868) "gmain" 0x00007f6eb8f50ac3 in *__GI___poll (fds=<optimized out>, nfds=<optimized out>, 
    timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
  9    Thread 0x7f6ea9a58700 (LWP 6870) "gdbus" 0x00007f6eb8f50ac3 in *__GI___poll (fds=<optimized out>, nfds=<optimized out>, 
    timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
  8    Thread 0x7f6ea884d700 (LWP 6872) "dconf worker" 0x00007f6eb8f50ac3 in *__GI___poll (fds=<optimized out>, nfds=<optimized out>, 
    timeout=-1) at ../sysdeps/unix/sysv/linux/poll.c:87
  7    Thread 0x7f6ea37fe700 (LWP 6874) "pool" __lll_lock_wait () at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
  6    Thread 0x7f6e937fe700 (LWP 6881) "pool" pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:216
  5    Thread 0x7f6e92ffd700 (LWP 6882) "pool" pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:216
  4    Thread 0x7f6e927fc700 (LWP 6883) "pool" pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:216
  3    Thread 0x7f6e91ffb700 (LWP 6884) "pool" pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:216
  2    Thread 0x7f6e917fa700 (LWP 6885) "pool" pthread_cond_timedwait@@GLIBC_2.3.2 ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/pthread_cond_timedwait.S:216
* 1    Thread 0x7f6eba6827a0 (LWP 6867) "evolution-calen" __lll_lock_wait ()
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S:136
(gdb) thread apply all bt full

Thread 7 (Thread 0x7f6ea37fe700 (LWP 6874))

  • #0 __lll_lock_wait
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S line 136
  • #1 _L_lock_1145
    from /lib/x86_64-linux-gnu/libpthread.so.0
  • #2 __pthread_mutex_lock
    at pthread_mutex_lock.c line 101
  • #3 g_mutex_lock
    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  • #4 ??
    from /usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1
  • #5 ??
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #6 g_signal_emit_valist
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #7 g_signal_emit
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #8 ??
    from /usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1
  • #9 soup_connection_set_state
    from /usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1
  • #10 soup_session_unqueue_item
    from /usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1
  • #11 ??
    from /usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1
  • #12 ??
    from /usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1
  • #13 ??
    from /usr/lib/evolution-data-server/calendar-backends/libecalbackendcaldav.so
  • #14 ??
    from /usr/lib/evolution-data-server/calendar-backends/libecalbackendcaldav.so
  • #15 ??
    from /usr/lib/evolution-data-server/calendar-backends/libecalbackendcaldav.so
  • #16 ??
    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  • #17 start_thread
    at pthread_create.c line 304
  • #18 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 112
  • #19 ??

Thread 1 (Thread 0x7f6eba6827a0 (LWP 6867))

  • #0 __lll_lock_wait
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S line 136
  • #1 _L_lock_1145
    from /lib/x86_64-linux-gnu/libpthread.so.0
  • #2 __pthread_mutex_lock
    at pthread_mutex_lock.c line 101
  • #3 g_mutex_lock
    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  • #4 ??
    from /usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1
  • #5 ??
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #6 g_signal_emit_valist
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #7 g_signal_emit
    from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
  • #8 ??
    from /usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1
  • #9 ??
    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  • #10 ??
    from /usr/lib/x86_64-linux-gnu/libsoup-2.4.so.1
  • #11 ??
    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  • #12 g_main_context_dispatch
    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  • #13 ??
    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  • #14 g_main_loop_run
    from /lib/x86_64-linux-gnu/libglib-2.0.so.0
  • #15 main
No symbol table info available.
(gdb) 
(gdb) kill
Kill the program being debugged? (y or n) y
(gdb) q
Comment 24 Philip Van Hoof 2012-09-05 07:02:58 UTC
Milan, is Miah's backtrace sufficient for the need-info?
Comment 25 Philip Van Hoof 2012-09-05 07:05:49 UTC
Miah, you will have to install debug symbols. Your backtrace reveals that it has something to do with gdbus, which is good info already, but with debugging symbols of evolution and evolution-data-server you'll get a much better bt for the developers.
Comment 26 Milan Crha 2012-09-05 08:32:10 UTC
Please install debuginfo at least for libsoup, glib and evolution-data-server. The thing I see in the comment #23 is that there is one CalDAV calendar trying to do something with libsoup (talk to the server) in a dedicated thread, while libsoup is busy and blocking thread 1, thus the factory cannot respond to the requests sent by evolution. The question is what libsoup tries to do on the main thread on its own. By the way, what is the exact libsoup version you have, please?
Comment 27 Philip Van Hoof 2012-09-05 09:42:46 UTC
pvanhoof@lors:~$ dpkg -s libsoup2.4-1
Package: libsoup2.4-1
Status: install ok installed
Priority: optional
Section: libs
Installed-Size: 510
Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
Architecture: i386
Multi-Arch: same
Source: libsoup2.4
Version: 2.38.1-2
Depends: libc6 (>= 2.4), libglib2.0-0 (>= 2.31.8), libxml2 (>= 2.7.4), zlib1g (>= 1:1.1.4), glib-networking (>= 2.32.0)
Pre-Depends: multiarch-support
Description: HTTP library implementation in C -- Shared library
 It was originally part of a SOAP (Simple Object Access Protocol)
 implementation called Soup, but the SOAP and non-SOAP parts have now been
 split into separate packages.
 .
 libsoup uses the Glib main loop and is designed to work well with GTK+
 applications.  This enables GNOME applications to access HTTP servers
 on the network in a completely asynchronous fashion, very similar to
 the GTK+ programming model (a synchronous operation mode is also
 supported for those who want it).
 .
 Features:
  * Both asynchronous (GMainLoop and callback-based) and synchronous APIs
  * Automatically caches connections
  * SSL Support using GnuTLS
  * Proxy support, including authentication and SSL tunneling
  * Client support for Digest, NTLM, and Basic authentication
  * Server support for Digest and Basic authentication
  * Basic client-side SOAP and XML-RPC support
 .
 This package contains the shared library.
pvanhoof@lors:~$ dpkg -s libsoup-gnome2.4-1
Package: libsoup-gnome2.4-1
Status: install ok installed
Priority: optional
Section: libs
Installed-Size: 89
Maintainer: Debian GNOME Maintainers <pkg-gnome-maintainers@lists.alioth.debian.org>
Architecture: i386
Multi-Arch: same
Source: libsoup2.4
Version: 2.38.1-2
Depends: libc6 (>= 2.1.3), libglib2.0-0 (>= 2.31.7), libgnome-keyring0 (>= 2.20.3), libsoup2.4-1 (>= 2.33.92), libsqlite3-0 (>= 3.5.9), libxml2 (>= 2.6.27), zlib1g (>= 1:1.1.4)
Pre-Depends: multiarch-support
Description: HTTP library implementation in C -- GNOME support library
 It was originally part of a SOAP (Simple Object Access Protocol)
 implementation called Soup, but the SOAP and non-SOAP parts have now been
 split into separate packages.
 .
 libsoup uses the Glib main loop and is designed to work well with GTK+
 applications.  This enables GNOME applications to access HTTP servers
 on the network in a completely asynchronous fashion, very similar to
 the GTK+ programming model (a synchronous operation mode is also
 supported for those who want it).
 .
 The GNOME support library is used for features which are important to
 GNOME apps, but which require GNOME-specific libraries that non-GNOME
 apps may not want to add dependencies on.
 .
 Features:
  * Both asynchronous (GMainLoop and callback-based) and synchronous APIs
  * Automatically caches connections
  * SSL Support using GnuTLS
  * Proxy support, including authentication and SSL tunneling
  * Client support for Digest, NTLM, and Basic authentication
  * Server support for Digest and Basic authentication
  * Basic client-side SOAP and XML-RPC support
 .
 This package contains the GNOME support shared library.
pvanhoof@lors:~$
Comment 28 Milan Crha 2012-09-05 15:54:33 UTC
basically the same version as I have in my Fedora 17 box. I have libsoup-2.38.1-1.fc17.x86_64 (see how short it could be) :)
Comment 29 Miah Gregory 2012-09-05 17:37:31 UTC
My libsoup version is identical to Philips: 2.38.1-2. I've installed all the debug packages and will post a backtrace when I get one and I'm not in a hurry!
Comment 30 Miah Gregory 2012-09-07 00:22:45 UTC
Another day, another backtrace.. :) Hope this is of more use.

(gdb) thread apply all bt full

Thread 7 (Thread 0x7f2a4effd700 (LWP 5667))

  • #0 __lll_lock_wait
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S line 136
  • #1 _L_lock_1145
    from /lib/x86_64-linux-gnu/libpthread.so.0
  • #2 __pthread_mutex_lock
    at pthread_mutex_lock.c line 101
  • #3 g_mutex_lock
    at /tmp/buildd/glib2.0-2.32.3/./glib/gthread-posix.c line 208
  • #4 connection_disconnected
    at soup-session.c line 1841
  • #5 _g_closure_invoke_va
    at /tmp/buildd/glib2.0-2.32.3/./gobject/gclosure.c line 840
  • #6 g_signal_emit_valist
    at /tmp/buildd/glib2.0-2.32.3/./gobject/gsignal.c line 3207
  • #7 g_signal_emit
    at /tmp/buildd/glib2.0-2.32.3/./gobject/gsignal.c line 3352
  • #8 clear_current_item
    at soup-connection.c line 489
  • #9 soup_connection_set_state
    at soup-connection.c line 923
  • #10 soup_session_unqueue_item
    at soup-session.c line 2029
  • #11 process_queue_item
    at soup-session-sync.c line 319
  • #12 send_message
    at soup-session-sync.c line 390
  • #13 send_and_handle_redirection
    at e-cal-backend-caldav.c line 1010
  • #14 check_calendar_changed_on_server
    at e-cal-backend-caldav.c line 1195
  • #15 synchronize_cache
    at e-cal-backend-caldav.c line 1941
  • #16 caldav_synch_slave_loop
    at e-cal-backend-caldav.c line 2310
  • #17 g_thread_proxy
    at /tmp/buildd/glib2.0-2.32.3/./glib/gthread.c line 801
  • #18 start_thread
    at pthread_create.c line 304
  • #19 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 112
  • #20 ??

Thread 1 (Thread 0x7f2a6da6f7a0 (LWP 5638))

  • #0 __lll_lock_wait
    at ../nptl/sysdeps/unix/sysv/linux/x86_64/lowlevellock.S line 136
  • #1 _L_lock_1145
    from /lib/x86_64-linux-gnu/libpthread.so.0
  • #2 __pthread_mutex_lock
    at pthread_mutex_lock.c line 101
  • #3 g_mutex_lock
    at /tmp/buildd/glib2.0-2.32.3/./glib/gthread-posix.c line 208
  • #4 connection_disconnected
    at soup-session.c line 1841
  • #5 _g_closure_invoke_va
    at /tmp/buildd/glib2.0-2.32.3/./gobject/gclosure.c line 840
  • #6 g_signal_emit_valist
    at /tmp/buildd/glib2.0-2.32.3/./gobject/gsignal.c line 3207
  • #7 g_signal_emit
    at /tmp/buildd/glib2.0-2.32.3/./gobject/gsignal.c line 3352
  • #8 free_host
    at soup-session.c line 1532
  • #9 g_hash_table_remove_internal
    at /tmp/buildd/glib2.0-2.32.3/./glib/ghash.c line 1274
  • #10 free_unused_host
    at soup-session.c line 1826
  • #11 g_timeout_dispatch
    at /tmp/buildd/glib2.0-2.32.3/./glib/gmain.c line 3882
  • #12 g_main_dispatch
    at /tmp/buildd/glib2.0-2.32.3/./glib/gmain.c line 2539
  • #13 g_main_context_dispatch
    at /tmp/buildd/glib2.0-2.32.3/./glib/gmain.c line 3075
  • #14 g_main_context_iterate
    at /tmp/buildd/glib2.0-2.32.3/./glib/gmain.c line 3146
  • #15 g_main_loop_run
    at /tmp/buildd/glib2.0-2.32.3/./glib/gmain.c line 3340
  • #16 e_dbus_server_run
    at e-dbus-server.c line 253
  • #17 main
    at evolution-calendar-factory.c line 149

Comment 31 Milan Crha 2012-09-07 07:20:23 UTC
Thanks for the update, it's much better.

Dan, is this issue known for you, please?
Comment 32 Dan Winship 2012-09-09 12:42:11 UTC
Do you by any chance have the refresh time on your calendar set to 5 minutes?

(If so, setting it to anything else should make the hang go away.)
Comment 33 Milan Crha 2012-09-10 06:56:04 UTC
(In reply to comment #32)
> Do you by any chance have the refresh time on your calendar set to 5 minutes?
> 
> (If so, setting it to anything else should make the hang go away.)

Hmm, what is so special on 5 minutes interval? :)

Philip, such change requires restart of evolution-calendar-factory, to take the change into effect. I'm mentioning it just in case. The 3.6.0 will not require that restart, as the calendars are listening for refresh interval changes.
Comment 34 Philip Van Hoof 2012-09-10 07:58:50 UTC
The intervals of my two online calendars are 30 and 60 minutes. The first time I tried to open the preferences of one of the online calendars, I had the hang again.
Comment 35 Dan Winship 2012-09-10 12:41:33 UTC
Hm... I'll have to look at the code some more. I think it should be fixed in git master, but AFAICT, this hang should only be possible if it opens a new connection more-or-less exactly 5 minutes after the last previous connection is closed.
Comment 36 Philip Van Hoof 2012-09-10 15:11:38 UTC
More or less exactly is a funny way of putting that it's not exactly at all? ;-)

I can usually reproduce this 100% by means of an action, not based on a timed event. For example opening an e-mail with a calendar item in. Or clicking on the "Calendar" button (just doing anything related to calendars).

When I run /usr/lib/evolution/evolution-calendar-factory manually (for example in a terminal) the problem goes away and can afterward not be reproduced anymore (until after reboot).

(ps. this is a standard debian testing, apt-get upgraded today)
Comment 37 Milan Crha 2012-09-11 06:33:24 UTC
(In reply to comment #36)
> When I run /usr/lib/evolution/evolution-calendar-factory manually (for example
> in a terminal) the problem goes away and can afterward not be reproduced
> anymore (until after reboot).

Might be because the auto-start is caused by a request to do something, thus the factory runs and the request for a calendar is fired immediately, while if you run the factory on your own, then it has a little delay after start. I do not think it should make such difference, it just looks like it does for you.
Comment 38 Dan Winship 2012-09-12 12:47:35 UTC
Created attachment 224103 [details] [review]
SoupSession: when freeing an "unused" host, make sure it's still unused

If someone could test this patch (against 2.38), that would be good...
Comment 39 Dan Winship 2012-10-29 14:22:23 UTC
Comment on attachment 224103 [details] [review]
SoupSession: when freeing an "unused" host, make sure it's still unused

This fix is in libsoup 2.40, so now I guess we're just waiting for someone to test against that...
Comment 40 Philip Van Hoof 2012-10-29 16:44:51 UTC
(In reply to comment #39)
> (From update of attachment 224103 [details] [review])
> This fix is in libsoup 2.40, so now I guess we're just waiting for someone to
> test against that...

Unlike Miah's stack traces aren't mine ending in connection_disconnected at soup-session.c line 1841. Are you sure my stack traces are related to what Miah was seeing?
Comment 41 Philip Van Hoof 2012-10-29 16:50:48 UTC
Note again that when I run /usr/lib/evolution/evolution-calendar-factory on a console manually that I can't reproduce the original issue (which isn't necessarily related to what Miah is seeing here, but good that Dan fixed it anyway in libsoap).

I think this piece of information is very important to consider for whoever works on this issue.

All other info is in the bug already (versions, etc, current Debian testing):

pvanhoof@lors:/tmp$ dpkg -s evolution | grep Version
Version: 3.4.3-1
pvanhoof@lors:/tmp$ 

pvanhoof@lors:/tmp$ dpkg -s evolution-data-server | grep Version
Version: 3.4.3-1
pvanhoof@lors:/tmp$ 

pvanhoof@lors:/tmp$ dpkg -s libsoup2.4-1 | grep Version
Version: 2.38.1-2
pvanhoof@lors:/tmp$ 

Issue is still reproducable, although not always since more recent upgrades of my Debian testing

I think that the Debian maintainer should be put in CC and asked not to move the package to Release before this bug is fixed. But that's just my opinion.
Comment 42 Dan Winship 2012-10-29 18:31:16 UTC
(In reply to comment #40)
> Unlike Miah's stack traces aren't mine ending in connection_disconnected at
> soup-session.c line 1841. Are you sure my stack traces are related to what Miah
> was seeing?

The stack traces you attached to this bug were from evolution, not evolution-calendar-factory.

(In reply to comment #41)
> Note again that when I run /usr/lib/evolution/evolution-calendar-factory on a
> console manually that I can't reproduce the original issue

The hang is caused by a race condition. I don't have a good answer for why it gets triggered reliably in one situation but not in the other, but that's not entirely implausible behavior for a race condition bug.
Comment 43 Philip Van Hoof 2012-10-30 14:52:08 UTC
(In reply to comment #42)
> (In reply to comment #40)
> > Unlike Miah's stack traces aren't mine ending in connection_disconnected at
> > soup-session.c line 1841. Are you sure my stack traces are related to what Miah
> > was seeing?
> 
> The stack traces you attached to this bug were from evolution, not
> evolution-calendar-factory.

Ack. Now I remember. Indeed, I already knew this but I must have forgotten about this as the bug grew older. Never mind and yes Miah's stack traces of evolution-calendar-factory are probably showing the problem.

> (In reply to comment #41)
> > Note again that when I run /usr/lib/evolution/evolution-calendar-factory on a
> > console manually that I can't reproduce the original issue
> 
> The hang is caused by a race condition. I don't have a good answer for why it
> gets triggered reliably in one situation but not in the other, but that's not
> entirely implausible behavior for a race condition bug.

I agree. Let's hope the issue is gone then. Perhaps I'll later this week test my putting your patch in debian/ of the libsoup of my system and installing the resulting .deb.

Feel free to put the bug in resolved if you're confident that this mutex-lock was the core cause of the problem.
Comment 44 Philip Van Hoof 2012-11-17 14:51:22 UTC
When testing on Debian testing, which still has the exact same version of libsoup as I reported earlier:

libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -DG_LOG_DOMAIN=\"libsoup\" -I.. -pthread -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -DG_DISABLE_SINGLE_INCLUDES -I/usr/include/libxml2 -I/usr/include/gnome-keyring-1 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -D_FORTIFY_SOURCE=2 -g -O2 -fstack-protector --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall -Wall -Wstrict-prototypes -Werror=missing-prototypes -Werror=implicit-function-declaration -Werror=pointer-arith -Werror=init-self -Werror=format=2 -Werror=missing-include-dirs -Werror=aggregate-return -Werror=declaration-after-statement -c soup-session.c  -fPIC -DPIC -o .libs/soup-session.o
soup-session.c: In function 'free_unused_host':
soup-session.c:1827:24: error: 'SoupSessionPrivate' has no member named 'conn_lock'
make[4]: *** [soup-session.lo] Error 1
make[4]: Leaving directory `/tmp/libsoup2.4-2.38.1/libsoup'
make[3]: *** [all] Error 2
make[3]: Leaving directory `/tmp/libsoup2.4-2.38.1/libsoup'
make[2]: *** [all-recursive] Error 1
make[2]: Leaving directory `/tmp/libsoup2.4-2.38.1'
make[1]: *** [all] Error 2
make[1]: Leaving directory `/tmp/libsoup2.4-2.38.1'
make: *** [debian/stamp-makefile-build] Error 2
dpkg-buildpackage: error: debian/rules build gave error exit status 2
lors:/tmp/libsoup2.4-2.38.1# vi libsoup/soup-session.c 
lors:/tmp/libsoup2.4-2.38.1# 
lors:/tmp/libsoup2.4-2.38.1# cat debian/patches/gnome-bug-682923.diff 
Description: SoupSession: when freeing an "unused" host, make sure it's still unused

  In a multithreaded session, it's possible that a new connection will
  be opened on a host while free_unused_host() is waiting to get
  conn_lock. So check for that before freeing it.

  https://bugzilla.gnome.org/show_bug.cgi?id=682923

 .
 libsoup2.4 (2.38.1-3) unstable; urgency=low
 .
   * patch
Author: Philip Van Hoof <philip@codeminded.be>

---
The information above should follow the Patch Tagging Guidelines, please
checkout http://dep.debian.net/deps/dep3/ to learn about the format. Here
are templates for supplementary fields that you might want to add:

Origin: <vendor|upstream|other>, <url of original patch>
Bug: <url in upstream bugtracker>
Bug-Debian: http://bugs.debian.org/<bugnumber>
Bug-Ubuntu: https://launchpad.net/bugs/<bugnumber>
Forwarded: <no|not-needed|url proving that it has been forwarded>
Reviewed-By: <name and email of someone who approved the patch>
Last-Update: <YYYY-MM-DD>

--- libsoup2.4-2.38.1.orig/libsoup/soup-session.c
+++ libsoup2.4-2.38.1/libsoup/soup-session.c
@@ -1819,6 +1819,15 @@ free_unused_host (gpointer user_data)
 	SoupSessionPrivate *priv = SOUP_SESSION_GET_PRIVATE (host->session);
 
 	g_mutex_lock (&priv->host_lock);
+
+	/* In a multithreaded session, a connection might have been
+	 * added while we were waiting for conn_lock.
+	 */
+	if (host->connections) {
+		g_mutex_unlock (&priv->conn_lock);
+		return FALSE;
+	}
+
 	/* This will free the host in addition to removing it from the
 	 * hash table
 	 */
lors:/tmp/libsoup2.4-2.38.1#
Comment 45 Philip Van Hoof 2012-11-17 14:57:58 UTC
btw. Above compiler error makes it sound very unlikely that the hang that I can still reproduce with today's Debian testing (dist-upgraded today) has much to do with a in Debian testing non-existing conn_lock in soap-session.c of libsoup.

New stack traces of today's hang:

pvanhoof@lors:/boot$ ps aux | grep evo
pvanhoof  2560  0.0  0.3  60056 13368 ?        SLl  15:15   0:00 /usr/lib/evolution/3.4/evolution-alarm-notify
pvanhoof  2658  0.1  0.3 131516 14992 ?        Sl   15:15   0:02 /usr/lib/evolution/evolution-calendar-factory
pvanhoof  2685  0.0  0.2  88736 10640 ?        Sl   15:16   0:00 /usr/lib/evolution/evolution-addressbook-factory
pvanhoof 10664 49.4  1.4 361956 57392 pts/4    SLl+ 15:55   0:05 evolution
pvanhoof 10681  0.0  0.0   3524   784 pts/3    S+   15:55   0:00 grep evo
pvanhoof@lors:/boot$ gdb /usr/lib/evolution/evolution-calendar-factory
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/lib/evolution/evolution-calendar-factory...Reading symbols from /usr/lib/debug/.build-id/70/0bad973d31fe39c6d7d7d8450b5ac48cc221c6.debug...done.
done.
(gdb) cont
The program is not being run.
(gdb) quit
\pvanhoof@lors:/boot$ gdb /usr/lib/evolution/evolution-calendar-factory 2658
GNU gdb (GDB) 7.4.1-debian
Copyright (C) 2012 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "i486-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/lib/evolution/evolution-calendar-factory...Reading symbols from /usr/lib/debug/.build-id/70/0bad973d31fe39c6d7d7d8450b5ac48cc221c6.debug...done.
done.
Attaching to program: /usr/lib/evolution/evolution-calendar-factory, process 2658
Reading symbols from /usr/lib/libedata-cal-1.2.so.15...Reading symbols from /usr/lib/debug/.build-id/ed/34d68013684e571f184b501791921bdee05631.debug...done.
done.
Loaded symbols for /usr/lib/libedata-cal-1.2.so.15
Reading symbols from /usr/lib/libebackend-1.2.so.2...Reading symbols from /usr/lib/debug/.build-id/ef/7f2222059b92db9e2910c11ff3fb2a7557a5b9.debug...done.
done.
Loaded symbols for /usr/lib/libebackend-1.2.so.2
Reading symbols from /usr/lib/libedataserver-1.2.so.16...Reading symbols from /usr/lib/debug/.build-id/f2/b329429f4c4e6cbfc4cfb1999fdc74986c6e18.debug...done.
done.
Loaded symbols for /usr/lib/libedataserver-1.2.so.16
Reading symbols from /usr/lib/libical.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libical.so.0
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/i686/cmov/libpthread-2.13.so...done.
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".
[New Thread 0xad40bb70 (LWP 2701)]
[New Thread 0xadc13b70 (LWP 2700)]
[New Thread 0xaf416b70 (LWP 2692)]
[New Thread 0xb0449b70 (LWP 2690)]
[New Thread 0xb3c50b70 (LWP 2681)]
[New Thread 0xb449bb70 (LWP 2680)]
[New Thread 0xb69d5b70 (LWP 2678)]
done.
Loaded symbols for /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libdbus-glib-1.so.2...Reading symbols from /usr/lib/debug/usr/lib/i386-linux-gnu/libdbus-glib-1.so.2.2.2...done.
done.
Loaded symbols for /usr/lib/i386-linux-gnu/libdbus-glib-1.so.2
Reading symbols from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0...Reading symbols from /usr/lib/debug/usr/lib/i386-linux-gnu/libgobject-2.0.so.0.3200.4...done.
done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
Reading symbols from /lib/i386-linux-gnu/libglib-2.0.so.0...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/libglib-2.0.so.0.3200.4...done.
done.
Loaded symbols for /lib/i386-linux-gnu/libglib-2.0.so.0
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libc.so.6...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/i686/cmov/libc-2.13.so...done.
done.
Loaded symbols for /lib/i386-linux-gnu/i686/cmov/libc.so.6
Reading symbols from /usr/lib/libecal-1.2.so.11...Reading symbols from /usr/lib/debug/.build-id/e9/54e038a5d4b2785beca9e44405903596436b66.debug...done.
done.
Loaded symbols for /usr/lib/libecal-1.2.so.11
Reading symbols from /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0...Reading symbols from /usr/lib/debug/usr/lib/i386-linux-gnu/libgmodule-2.0.so.0.3200.4...done.
done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgmodule-2.0.so.0
Reading symbols from /lib/i386-linux-gnu/i686/cmov/librt.so.1...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/i686/cmov/librt-2.13.so...done.
done.
Loaded symbols for /lib/i386-linux-gnu/i686/cmov/librt.so.1
Reading symbols from /usr/lib/i386-linux-gnu/libsoup-2.4.so.1...Reading symbols from /usr/lib/debug/.build-id/fa/ae93a2fc95320982d5aca781f267ad18b4613e.debug...done.
done.
Loaded symbols for /usr/lib/i386-linux-gnu/libsoup-2.4.so.1
Reading symbols from /usr/lib/i386-linux-gnu/libplds4.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libplds4.so
Reading symbols from /usr/lib/i386-linux-gnu/libplc4.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libplc4.so
Reading symbols from /usr/lib/i386-linux-gnu/libnspr4.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libnspr4.so
Reading symbols from /usr/lib/i386-linux-gnu/libgio-2.0.so.0...Reading symbols from /usr/lib/debug/usr/lib/i386-linux-gnu/libgio-2.0.so.0.3200.4...done.
done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgio-2.0.so.0
Reading symbols from /usr/lib/libicalss.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libicalss.so.0
Reading symbols from /usr/lib/libicalvcal.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libicalvcal.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libxml2.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libxml2.so.2
Reading symbols from /usr/lib/i386-linux-gnu/libgconf-2.so.4...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgconf-2.so.4
Reading symbols from /usr/lib/i386-linux-gnu/libsqlite3.so.0...Reading symbols from /usr/lib/debug/usr/lib/i386-linux-gnu/libsqlite3.so.0.8.6...done.
done.
Loaded symbols for /usr/lib/i386-linux-gnu/libsqlite3.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libdb-5.1.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libdb-5.1.so
Reading symbols from /lib/ld-linux.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/ld-linux.so.2
Reading symbols from /lib/i386-linux-gnu/libdbus-1.so.3...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/libdbus-1.so.3
Reading symbols from /usr/lib/i386-linux-gnu/libgthread-2.0.so.0...Reading symbols from /usr/lib/debug/usr/lib/i386-linux-gnu/libgthread-2.0.so.0.3200.4...done.
done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgthread-2.0.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libffi.so.5...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libffi.so.5
Reading symbols from /lib/i386-linux-gnu/libpcre.so.3...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/libpcre.so.3
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libdl.so.2...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/i686/cmov/libdl-2.13.so...done.
done.
Loaded symbols for /lib/i386-linux-gnu/i686/cmov/libdl.so.2
Reading symbols from /lib/i386-linux-gnu/libz.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/libz.so.1
Reading symbols from /lib/i386-linux-gnu/libselinux.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/libselinux.so.1
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libresolv.so.2...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/i686/cmov/libresolv-2.13.so...done.
done.
Loaded symbols for /lib/i386-linux-gnu/i686/cmov/libresolv.so.2
Reading symbols from /lib/i386-linux-gnu/liblzma.so.5...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/liblzma.so.5
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libm.so.6...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/i686/cmov/libm-2.13.so...done.
done.
Loaded symbols for /lib/i386-linux-gnu/i686/cmov/libm.so.6
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libnss_compat.so.2...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/i686/cmov/libnss_compat-2.13.so...done.
done.
Loaded symbols for /lib/i386-linux-gnu/i686/cmov/libnss_compat.so.2
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libnsl.so.1...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/i686/cmov/libnsl-2.13.so...done.
done.
Loaded symbols for /lib/i386-linux-gnu/i686/cmov/libnsl.so.1
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libnss_nis.so.2...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/i686/cmov/libnss_nis-2.13.so...done.
done.
Loaded symbols for /lib/i386-linux-gnu/i686/cmov/libnss_nis.so.2
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libnss_files.so.2...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/i686/cmov/libnss_files-2.13.so...done.
done.
Loaded symbols for /lib/i386-linux-gnu/i686/cmov/libnss_files.so.2
Reading symbols from /usr/lib/evolution-data-server/calendar-backends/libecalbackendcontacts.so...Reading symbols from /usr/lib/debug/.build-id/40/07ce27ba66c03a479000aaf2014225ee29c070.debug...done.
done.
Loaded symbols for /usr/lib/evolution-data-server/calendar-backends/libecalbackendcontacts.so
Reading symbols from /usr/lib/libebook-1.2.so.13...Reading symbols from /usr/lib/debug/.build-id/19/e0ce84fb7b984fa3e752ed2ec316e74669d589.debug...done.
done.
Loaded symbols for /usr/lib/libebook-1.2.so.13
Reading symbols from /usr/lib/libcamel-1.2.so.33...Reading symbols from /usr/lib/debug/.build-id/97/00bc888a0464cd9ea7bb0a8aaffa3aa59fb1f8.debug...done.
done.
Loaded symbols for /usr/lib/libcamel-1.2.so.33
Reading symbols from /usr/lib/i386-linux-gnu/libnss3.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libnss3.so
Reading symbols from /usr/lib/i386-linux-gnu/libnssutil3.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libnssutil3.so
Reading symbols from /usr/lib/i386-linux-gnu/libsmime3.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libsmime3.so
Reading symbols from /usr/lib/i386-linux-gnu/libssl3.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libssl3.so
Reading symbols from /usr/lib/i386-linux-gnu/libkrb5.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libkrb5.so.3
Reading symbols from /usr/lib/i386-linux-gnu/libk5crypto.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libk5crypto.so.3
Reading symbols from /lib/i386-linux-gnu/libcom_err.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/libcom_err.so.2
Reading symbols from /usr/lib/i386-linux-gnu/libgssapi_krb5.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgssapi_krb5.so.2
Reading symbols from /usr/lib/i386-linux-gnu/libkrb5support.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libkrb5support.so.0
Reading symbols from /lib/i386-linux-gnu/libkeyutils.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/libkeyutils.so.1
Reading symbols from /usr/lib/evolution-data-server/calendar-backends/libecalbackendexchange.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/evolution-data-server/calendar-backends/libecalbackendexchange.so
Reading symbols from /usr/lib/evolution-exchange/3.4/libexchange.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/evolution-exchange/3.4/libexchange.so.0
Reading symbols from /usr/lib/evolution-exchange/3.4/libexchange-storage.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/evolution-exchange/3.4/libexchange-storage.so
Reading symbols from /usr/lib/evolution-exchange/3.4/libevolution-exchange-shared.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/evolution-exchange/3.4/libevolution-exchange-shared.so
Reading symbols from /usr/lib/libedataserverui-3.0.so.1...Reading symbols from /usr/lib/debug/.build-id/69/53b29ccd2dd7dbbc4e96aeb53380de3b4de734.debug...done.
done.
Loaded symbols for /usr/lib/libedataserverui-3.0.so.1
Reading symbols from /usr/lib/libedata-book-1.2.so.13...Reading symbols from /usr/lib/debug/.build-id/51/8e5af860f8d48450a4e92a45a16614bd5ae8fe.debug...done.
done.
Loaded symbols for /usr/lib/libedata-book-1.2.so.13
Reading symbols from /usr/lib/evolution/3.4/libeutil.so.0...Reading symbols from /usr/lib/debug/.build-id/67/d840696ac90e55af4dc1f82ab61e8fa321162e.debug...done.
done.
Loaded symbols for /usr/lib/evolution/3.4/libeutil.so.0
Reading symbols from /usr/lib/libgtkhtml-editor-4.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgtkhtml-editor-4.0.so.0
Reading symbols from /usr/lib/libgtkhtml-4.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgtkhtml-4.0.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libgtk-3.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgtk-3.so.0
Reading symbols from /usr/lib/libenchant.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libenchant.so.1
Reading symbols from /usr/lib/i386-linux-gnu/libgdk-3.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgdk-3.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libatk-1.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libatk-1.0.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libpangocairo-1.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libpangocairo-1.0.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgdk_pixbuf-2.0.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libcairo-gobject.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libcairo-gobject.so.2
Reading symbols from /usr/lib/i386-linux-gnu/libpango-1.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libpango-1.0.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libcairo.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libcairo.so.2
Reading symbols from /usr/lib/i386-linux-gnu/libldap_r-2.4.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libldap_r-2.4.so.2
Reading symbols from /usr/lib/i386-linux-gnu/liblber-2.4.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/liblber-2.4.so.2
Reading symbols from /usr/lib/evolution-exchange/3.4/libxntlm.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/evolution-exchange/3.4/libxntlm.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libgnome-keyring.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgnome-keyring.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libgoa-1.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgoa-1.0.so.0
Reading symbols from /usr/lib/evolution/3.4/libevolution-utils.so.0...Reading symbols from /usr/lib/debug/.build-id/57/0d1da3f58967a85bd01b9e2abd2ac57eeeadb5.debug...done.
done.
Loaded symbols for /usr/lib/evolution/3.4/libevolution-utils.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libgailutil-3.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgailutil-3.so.0
Reading symbols from /usr/lib/libgnome-desktop-3.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgnome-desktop-3.so.2
Reading symbols from /usr/lib/i386-linux-gnu/libX11.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libX11.so.6
Reading symbols from /usr/lib/i386-linux-gnu/libXi.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libXi.so.6
Reading symbols from /usr/lib/i386-linux-gnu/libXcomposite.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libXcomposite.so.1
Reading symbols from /usr/lib/i386-linux-gnu/libXdamage.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libXdamage.so.1
Reading symbols from /usr/lib/i386-linux-gnu/libXfixes.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libXfixes.so.3
Reading symbols from /usr/lib/i386-linux-gnu/libpangoft2-1.0.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libpangoft2-1.0.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libfreetype.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libfreetype.so.6
Reading symbols from /usr/lib/i386-linux-gnu/libfontconfig.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libfontconfig.so.1
Reading symbols from /usr/lib/i386-linux-gnu/libXext.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libXext.so.6
Reading symbols from /usr/lib/i386-linux-gnu/libXinerama.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libXinerama.so.1
Reading symbols from /usr/lib/i386-linux-gnu/libXrandr.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libXrandr.so.2
Reading symbols from /usr/lib/i386-linux-gnu/libXcursor.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libXcursor.so.1
Reading symbols from /lib/i386-linux-gnu/libpng12.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/libpng12.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libpixman-1.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libpixman-1.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libxcb-shm.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libxcb-shm.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libxcb-render.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libxcb-render.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libxcb.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libxcb.so.1
Reading symbols from /usr/lib/i386-linux-gnu/libXrender.so.1...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libXrender.so.1
Reading symbols from /usr/lib/i386-linux-gnu/libsasl2.so.2...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libsasl2.so.2
Reading symbols from /usr/lib/i386-linux-gnu/libgnutls.so.26...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libgnutls.so.26
Reading symbols from /lib/i386-linux-gnu/libgcrypt.so.11...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/libgcrypt.so.11
Reading symbols from /lib/i386-linux-gnu/libexpat.so.1...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/libexpat.so.1
Reading symbols from /usr/lib/i386-linux-gnu/libXau.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libXau.so.6
Reading symbols from /usr/lib/i386-linux-gnu/libXdmcp.so.6...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libXdmcp.so.6
Reading symbols from /usr/lib/i386-linux-gnu/libtasn1.so.3...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libtasn1.so.3
Reading symbols from /usr/lib/i386-linux-gnu/libp11-kit.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/libp11-kit.so.0
Reading symbols from /lib/i386-linux-gnu/libgpg-error.so.0...(no debugging symbols found)...done.
Loaded symbols for /lib/i386-linux-gnu/libgpg-error.so.0
Reading symbols from /usr/lib/evolution-data-server/calendar-backends/libecalbackendweather.so...Reading symbols from /usr/lib/debug/.build-id/50/87798992079994257a940ceba5b71fb6bef493.debug...done.
done.
Loaded symbols for /usr/lib/evolution-data-server/calendar-backends/libecalbackendweather.so
Reading symbols from /usr/lib/libgweather-3.so.0...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/libgweather-3.so.0
Reading symbols from /usr/lib/i386-linux-gnu/libsoup-gnome-2.4.so.1...Reading symbols from /usr/lib/debug/.build-id/7f/1f87439f80642da7cf330d15034d06267b839f.debug...done.
done.
Loaded symbols for /usr/lib/i386-linux-gnu/libsoup-gnome-2.4.so.1
Reading symbols from /usr/lib/evolution-data-server/calendar-backends/libecalbackendcaldav.so...Reading symbols from /usr/lib/debug/.build-id/e2/8e1353d3479e08d0f9f5652fccf16f6660a2c8.debug...done.
done.
Loaded symbols for /usr/lib/evolution-data-server/calendar-backends/libecalbackendcaldav.so
Reading symbols from /usr/lib/evolution-data-server/calendar-backends/libecalbackendfile.so...Reading symbols from /usr/lib/debug/.build-id/5f/f5df35e2b5bdc2a87cbf74f00db6808c1b2f1f.debug...done.
done.
Loaded symbols for /usr/lib/evolution-data-server/calendar-backends/libecalbackendfile.so
Reading symbols from /usr/lib/evolution-data-server/calendar-backends/libecalbackendhttp.so...Reading symbols from /usr/lib/debug/.build-id/cc/9071a292df17691e50257ffdb5f755b7e4335a.debug...done.
done.
Loaded symbols for /usr/lib/evolution-data-server/calendar-backends/libecalbackendhttp.so
Reading symbols from /usr/lib/i386-linux-gnu/gio/modules/libdconfsettings.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/gio/modules/libdconfsettings.so
Reading symbols from /lib/libnss_mdns4_minimal.so.2...(no debugging symbols found)...done.
Loaded symbols for /lib/libnss_mdns4_minimal.so.2
Reading symbols from /lib/i386-linux-gnu/i686/cmov/libnss_dns.so.2...Reading symbols from /usr/lib/debug/lib/i386-linux-gnu/i686/cmov/libnss_dns-2.13.so...done.
done.
Loaded symbols for /lib/i386-linux-gnu/i686/cmov/libnss_dns.so.2
Reading symbols from /usr/lib/i386-linux-gnu/gio/modules/libgiognutls.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/gio/modules/libgiognutls.so
Reading symbols from /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so...(no debugging symbols found)...done.
Loaded symbols for /usr/lib/i386-linux-gnu/pkcs11/gnome-keyring-pkcs11.so
Reading symbols from /usr/lib/i386-linux-gnu/gconv/ISO8859-1.so...Reading symbols from /usr/lib/debug/usr/lib/i386-linux-gnu/gconv/ISO8859-1.so...done.
done.
Loaded symbols for /usr/lib/i386-linux-gnu/gconv/ISO8859-1.so
0xb7750822 in ?? () from /lib/ld-linux.so.2
(gdb) cont
Continuing.
^C
Program received signal SIGINT, Interrupt.
0xb7750822 in ?? () from /lib/ld-linux.so.2
(gdb) thread apply all bt

Thread 5 (Thread 0xb0449b70 (LWP 2690))

  • #0 ??
    from /lib/ld-linux.so.2
  • #1 __lll_lock_wait
    at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S line 142
  • #2 _L_lock_959
    from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
  • #3 __pthread_mutex_lock
    at pthread_mutex_lock.c line 101
  • #4 g_mutex_lock
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./glib/gthread-posix.c line 208
  • #5 connection_disconnected
    at soup-session.c line 1841
  • #6 g_cclosure_marshal_VOID__VOIDv
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./gobject/gmarshal.c line 115
  • #7 _g_closure_invoke_va
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./gobject/gclosure.c line 840
  • #8 g_signal_emit_valist
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./gobject/gsignal.c line 3211
  • #9 g_signal_emit
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./gobject/gsignal.c line 3356
  • #10 soup_connection_disconnect
    at soup-connection.c line 858
  • #11 clear_current_item
    at soup-connection.c line 489
  • #12 soup_connection_set_state
    at soup-connection.c line 923
  • #13 soup_session_unqueue_item
    at soup-session.c line 2029
  • #14 process_queue_item
    at soup-session-sync.c line 319
  • #15 send_message
    at soup-session-sync.c line 390
  • #16 soup_session_send_message
    at soup-session.c line 2212
  • #17 send_and_handle_redirection
    at e-cal-backend-caldav.c line 1010
  • #18 check_calendar_changed_on_server
    at e-cal-backend-caldav.c line 1195
  • #19 synchronize_cache
    at e-cal-backend-caldav.c line 1941
  • #20 caldav_synch_slave_loop
    at e-cal-backend-caldav.c line 2310
  • #21 g_thread_proxy
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./glib/gthread.c line 801
  • #22 start_thread
    at pthread_create.c line 304
  • #23 clone
    at ../sysdeps/unix/sysv/linux/i386/clone.S line 130

Thread 1 (Thread 0xb6b83720 (LWP 2658))

  • #0 ??
    from /lib/ld-linux.so.2
  • #1 __lll_lock_wait
    at ../nptl/sysdeps/unix/sysv/linux/i386/i686/../i486/lowlevellock.S line 142
  • #2 _L_lock_959
    from /lib/i386-linux-gnu/i686/cmov/libpthread.so.0
  • #3 __pthread_mutex_lock
    at pthread_mutex_lock.c line 101
  • #4 g_mutex_lock
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./glib/gthread-posix.c line 208
  • #5 connection_disconnected
    at soup-session.c line 1841
  • #6 g_cclosure_marshal_VOID__VOIDv
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./gobject/gmarshal.c line 115
  • #7 _g_closure_invoke_va
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./gobject/gclosure.c line 840
  • #8 g_signal_emit_valist
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./gobject/gsignal.c line 3211
  • #9 g_signal_emit
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./gobject/gsignal.c line 3356
  • #10 soup_connection_disconnect
    at soup-connection.c line 858
  • #11 free_host
    at soup-session.c line 1532
  • #12 g_hash_table_remove_node
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./glib/ghash.c line 484
  • #13 g_hash_table_remove_internal
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./glib/ghash.c line 1274
  • #14 free_unused_host
    at soup-session.c line 1826
  • #15 g_timeout_dispatch
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./glib/gmain.c line 3882
  • #16 g_main_dispatch
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./glib/gmain.c line 2539
  • #17 g_main_context_dispatch
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./glib/gmain.c line 3075
  • #18 g_main_context_iterate
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./glib/gmain.c line 3146
  • #19 g_main_loop_run
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./glib/gmain.c line 3340
  • #20 e_dbus_server_run
    at e-dbus-server.c line 253
  • #21 main
    at evolution-calendar-factory.c line 149

Comment 46 Philip Van Hoof 2012-11-17 15:00:22 UTC
This is the exact line in the Debian testing package where it hangs:

Good luck Dan.

static void
connection_disconnected (SoupConnection *conn, gpointer user_data)
{
        SoupSession *session = user_data;
        SoupSessionPrivate *priv = SOUP_SESSION_GET_PRIVATE (session);
        SoupSessionHost *host;

# Line 1841:
        g_mutex_lock (&priv->host_lock);
# Line 1842:

        host = g_hash_table_lookup (priv->conns, conn);
        if (host) {
                g_hash_table_remove (priv->conns, conn);
                host->connections = g_slist_remove (host->connections, conn);
                host->num_conns--;

                /* Free the SoupHost (and its SoupAddress) if there
                 * has not been any new connection to the host during
                 * the last HOST_KEEP_ALIVE msecs.
                 */
                if (host->num_conns == 0) {
                        g_assert (host->keep_alive_src == NULL);
                        host->keep_alive_src = soup_add_timeout (priv->async_context,
                                                                 HOST_KEEP_ALIVE,
                                                                 free_unused_host,
                                                                 host);
                        host->keep_alive_src = g_source_ref (host->keep_alive_src);
                }

                if (soup_connection_get_ssl_fallback (conn))
                        host->ssl_fallback = TRUE;
        }

        g_signal_handlers_disconnect_by_func (conn, connection_disconnected, session);
        priv->num_conns--;

        g_mutex_unlock (&priv->host_lock);
        g_object_unref (conn);
}
Comment 47 Philip Van Hoof 2012-11-17 15:28:05 UTC
ps. Looks like thread 1 and thread 5 disconnecting simultaneously.
ps. Unit tests of building the package in Debian testing also hang at 
lt-auth-test.

lors:/boot# gdb /tmp/libsoup2.4-2.38.1/tests/.libs/lt-auth-test 17137

(gdb) thread apply all bt

Thread 1 (Thread 0x40726be0 (LWP 17137))

  • #0 ??
    from /lib/ld-linux.so.2
  • #1 *__GI___poll
    at ../sysdeps/unix/sysv/linux/poll.c line 83
  • #2 g_poll
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./glib/gpoll.c line 132
  • #3 g_main_context_poll
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./glib/gmain.c line 3440
  • #4 g_main_context_iterate
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./glib/gmain.c line 3141
  • #5 g_main_loop_run
    at /build/buildd-glib2.0_2.33.12+really2.32.4-3-i386-Z8T5T2/glib2.0-2.33.12+really2.32.4/./glib/gmain.c line 3340
  • #6 do_async_auth_test
    at auth-test.c line 695
  • #7 main
    at auth-test.c line 1206

Comment 48 Philip Van Hoof 2012-11-17 15:35:17 UTC
Verified not reproducable when incorrectly removing the lock and unlock from connection_disconnected in soup-session.c and rebuilding the package (note that removing the lock is incorrect, but I don't know soup well enough to come up with a correct patch).
Comment 49 Dan Winship 2012-11-17 15:36:06 UTC
(In reply to comment #44)
> soup-session.c: In function 'free_unused_host':
> soup-session.c:1827:24: error: 'SoupSessionPrivate' has no member named
> 'conn_lock'

Oh, oops. "conn_lock" should be "host_lock" there. (It got renamed between 2.38 and 2.40.)
Comment 50 Philip Van Hoof 2012-11-18 20:26:15 UTC
(In reply to comment #49)
> (In reply to comment #44)
> > soup-session.c: In function 'free_unused_host':
> > soup-session.c:1827:24: error: 'SoupSessionPrivate' has no member named
> > 'conn_lock'
> 
> Oh, oops. "conn_lock" should be "host_lock" there. (It got renamed between 2.38
> and 2.40.)


This is code of libsoup 2.38.1-2. When I would put a unlock on host_lock at the place where your patch is adding a unlock of conn_lock, I don't see anything that would be much different from the existing current code except that the lock is unlocked before the g_hash_table_remove (a change of which I don't think it will affect much the problem as illustrated in the gdb stack trace of Comment #47).

Because of that I don't think that adapting the patch to rename conn_lock to host_lock will solve the issue.

To be honest I think the issue is also at the caller of libsoup: is it normal and ok that free_unused_host is called simultaneously (disconnecting a libsoup service)? In that's ok, then the issue is indeed in libsoup. However, I don't think your patch, with conn_lock renamed to host_lock, would solve it.

static gboolean
free_unused_host (gpointer user_data)
{
        SoupSessionHost *host = (SoupSessionHost *) user_data;
        SoupSessionPrivate *priv = SOUP_SESSION_GET_PRIVATE (host->session);

        g_mutex_lock (&priv->host_lock);
        /* This will free the host in addition to removing it from the
         * hash table
         */
        if (host->uri->scheme == SOUP_URI_SCHEME_HTTPS)
                g_hash_table_remove (priv->https_hosts, host->uri);
        else
                g_hash_table_remove (priv->http_hosts, host->uri);
        g_mutex_unlock (&priv->host_lock);

        return FALSE;
}

Good luck.
Comment 51 Philip Van Hoof 2012-11-18 20:43:52 UTC
Review of attachment 224103 [details] [review]:

I don't think this patch solves the issue.
Comment 52 Dan Winship 2012-11-18 20:54:40 UTC
(In reply to comment #50)
> This is code of libsoup 2.38.1-2. When I would put a unlock on host_lock at the
> place where your patch is adding a unlock of conn_lock, I don't see anything
> that would be much different from the existing current code except that the
> lock is unlocked before the g_hash_table_remove

Read the patch more carefully. Or better yet, actually try it.

Anyway, this is fixed.

(The auth-test failure is unrelated.)