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 628930 - folks crahses empathy on relationships.ini read
folks crahses empathy on relationships.ini read
Status: RESOLVED FIXED
Product: folks
Classification: Platform
Component: libfolks
0.1.x
Other Linux
: Normal blocker
: gnome-2.32
Assigned To: folks-maint
folks-maint
Depends on:
Blocks:
 
 
Reported: 2010-09-06 23:18 UTC by Maciej (Matthew) Piechotka
Modified: 2010-11-13 12:10 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Squashed diff of the 628930-aliases branch (6.16 KB, patch)
2010-09-08 10:15 UTC, Philip Withnall
committed Details | Review

Description Maciej (Matthew) Piechotka 2010-09-06 23:18:38 UTC
I could attach the file if there was 'private' attachment options.

Starting program: /usr/bin/empathy 
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgdata.so.7.2.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libsoup-gnome-2.4.so.1.3.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libproxy.so.1.0.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libkrb5.so.3.3.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libk5crypto.so.3.1.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/lib64/libcom_err.so.2.1.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgssapi_krb5.so.2.2.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libssl3.so.12.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libsmime3.so.12.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libnssutil3.so.12.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libnss3.so.12.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libplds4.so.8.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libplc4.so.8.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libnspr4.so.8.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libcanberra-gtk.so.0.1.6.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libcanberra.so.0.2.4.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libltdl.so.7.2.2.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgcr.so.0.0.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgp11.so.0.0.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libenchant.so.1.6.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgailutil.so.18.0.1.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libXi.so.6.1.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libXcomposite.so.1.0.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libXdamage.so.1.1.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libXext.so.6.4.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libXfixes.so.3.1.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libjpeg.so.8.0.2.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libicui18n.so.44.1.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libicuuc.so.44.1.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libicudata.so.44.1.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libpixman-1.so.0.18.4.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libpng14.so.14.3.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libxcb-shm.so.0.0.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libxcb-render.so.0.0.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libXrender.so.1.3.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libORBit-2.so.0.1.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libeggdbus-1.so.0.0.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libxcb.so.1.1.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libXau.so.6.0.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libnm-glib.so.2.2.3.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libnm-util.so.1.3.4.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/lib64/libuuid.so.1.3.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libtasn1.so.3.1.9.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgcrypt.so.11.6.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/lib64/libz.so.1.2.5.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libnotify.so.1.2.3.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libunique-1.0.so.0.100.6.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libdbus-glib-1.so.2.1.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libdbus-1.so.3.4.0.debug
[Thread debugging using libthread_db enabled]
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgstfarsight-0.10.so.0.5.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgstbase-0.10.so.0.26.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libfolks-telepathy.so.0.13.1.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libfolks.so.0.13.1.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgee.so.2.0.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgconf-2.so.4.1.5.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgnome-keyring.so.0.1.1.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgnutls.so.26.16.9.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgstreamer-0.10.so.0.26.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libtelepathy-farsight.so.0.1.1.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libtelepathy-logger.so.1.0.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libtelepathy-glib.so.0.42.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libxml2.so.2.7.7.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libX11.so.6.3.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libwebkit-1.0.so.2.17.5.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgtk-x11-2.0.so.0.2106.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libsoup-2.4.so.1.3.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgdk-x11-2.0.so.0.2106.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libatk-1.0.so.0.3009.1.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libpangoft2-1.0.so.0.2800.1.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libpangocairo-1.0.so.0.2800.1.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgdk_pixbuf-2.0.so.0.2106.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libcairo.so.2.10912.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libpango-1.0.so.0.2800.1.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libfreetype.so.6.6.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libfontconfig.so.1.4.4.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgio-2.0.so.0.2514.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgobject-2.0.so.0.2514.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgmodule-2.0.so.0.2514.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgthread-2.0.so.0.2514.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libglib-2.0.so.0.2514.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libmodman.so.0.debug
Traceback (most recent call last):
  File "/usr/share/gdb/auto-load/usr/lib64/gcc/x86_64-pc-linux-gnu/4.5.1/libstdc++.so.6.0.14-gdb.py", line 59, in <module>
    from libstdcxx.v6.printers import register_libstdcxx_printers
ImportError: No module named libstdcxx.v6.printers
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libkrb5support.so.0.1.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/lib64/libkeyutils.so.1.3.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libX11-xcb.so.1.0.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libxcb-glx.so.0.0.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libdrm.so.2.4.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/gio/modules/libgsettingsgconfbackend.so.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/gio/modules/libgvfsdbus.so.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/libgvfscommon.so.0.0.0.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/gio/modules/libgiogconf.so.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/gio/modules/libgiofam.so.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/gio/modules/libgioremote-volume-monitor.so.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/gio/modules/libdconfsettings.so.debug
[New Thread 0x7fffe350f710 (LWP 3859)]
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/pango/1.6.0/modules/pango-basic-fc.so.debug
[New Thread 0x7fffe2496710 (LWP 3866)]
[New Thread 0x7fffe1c35710 (LWP 3883)]
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/folks/13/backends/key-file/libfolks-backend-key-file.so.debug
warning: no loadable sections found in added symbol-file /usr/lib64/debug/usr/lib64/folks/13/backends/telepathy/libfolks-backend-telepathy.so.debug

Program received signal SIGABRT, Aborted.
0x00007fffe5d577c5 in *__GI_raise (sig=6)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64	../nptl/sysdeps/unix/sysv/linux/raise.c: No such file or directory.
	in ../nptl/sysdeps/unix/sysv/linux/raise.c

Thread 4 (Thread 0x7fffe1c35710 (LWP 3883))

  • #0 open64
    from /lib/libpthread.so.0
  • #1 open
    at /usr/include/bits/fcntl2.h line 60
  • #2 g_mkstemp_full
    at gfileutils.c line 1227
  • #3 handle_overwrite_open
    at glocalfileoutputstream.c line 891
  • #4 _g_local_file_output_stream_replace
    at glocalfileoutputstream.c line 1129
  • #5 g_local_file_replace
    at glocalfile.c line 1354
  • #6 replace_async_thread
    at gfile.c line 5249
  • #7 run_in_thread
    at gsimpleasyncresult.c line 783
  • #8 io_job_thread
    at gioscheduler.c line 181
  • #9 g_thread_pool_thread_proxy
    at gthreadpool.c line 314
  • #10 g_thread_create_proxy
    at gthread.c line 1897
  • #11 start_thread
    from /lib/libpthread.so.0
  • #12 clone
    at ../sysdeps/unix/sysv/linux/x86_64/clone.S line 115

Thread 1 (Thread 0x7ffff7f968e0 (LWP 3853))

  • #0 *__GI_raise
    at ../nptl/sysdeps/unix/sysv/linux/raise.c line 64
  • #1 *__GI_abort
    at abort.c line 92
  • #2 g_assertion_message
    at gtestutils.c line 1358
  • #3 folks_backends_kf_persona_construct
    at kf-persona.c line 281
  • #4 folks_backends_kf_persona_store_real_prepare_co
    at kf-persona-store.c line 408
  • #5 load_contents_close_callback
    at gfile.c line 6297
  • #6 async_ready_close_callback_wrapper
    at ginputstream.c line 484
  • #7 complete_in_idle_cb_for_thread
    at gsimpleasyncresult.c line 757
  • #8 g_main_dispatch
    at gmain.c line 2119
  • #9 g_main_context_dispatch
    at gmain.c line 2672
  • #10 g_main_context_iterate
    at gmain.c line 2750
  • #11 g_main_loop_run
    at gmain.c line 2958
  • #12 IA__gtk_main
    at gtkmain.c line 1237
  • #13 main
    at empathy.c line 548

	Inferior 1 [process 3853] will be killed.

Quit anyway? (y or n)
Comment 1 Philip Withnall 2010-09-07 09:09:50 UTC
What version of libfolks was this with? Can you e-mail the relationships.ini file to me please (philip.withnall@collabora.co.uk)? Thanks.
Comment 2 Philip Withnall 2010-09-07 09:16:45 UTC
Also, it would be helpful if you could run Empathy under gdb and, when it crashes, enter the following gdb commands:

frame 3
print *e

Thanks.
Comment 3 Maciej (Matthew) Piechotka 2010-09-07 18:46:49 UTC
$1 = {domain = 1440, code = 0, 
  message = 0x95bb90 "Key file contains key '__alias' with value 'xxxxxx' which is not UTF-8"}

xxxx is name which contained non-ascii characters and it have been saved by empathy in unknown encoding (second in file I've sent you). The first letter was 'ł' and second 'ń' and 3 letters afterwards were missing.

After correcting it empathy works ok. The file was not hand edited

Empathy/folks that caused corruption: 2.31.90/0.1.15
Empathy/folks that crashed also: 2.31.91/0.1.16

PS. Probable cause of corruption: power off of system. However it was not after adding them (several boots later). Do empathy/folks write file even if unchanged?
FS - reiserfs.
Comment 4 Maciej (Matthew) Piechotka 2010-09-07 19:29:46 UTC
> Empathy/folks that caused corruption: 2.31.90/0.1.15
> Empathy/folks that crashed also: 2.31.91/0.1.16
> 

I mean 2.31.91 and 2.31.91.1 versions respectivly.
Comment 5 Philip Withnall 2010-09-08 10:15:15 UTC
Created attachment 169749 [details] [review]
Squashed diff of the 628930-aliases branch

http://git.collabora.co.uk/?p=user/pwith/folks;a=shortlog;h=refs/heads/628930-aliases
Comment 6 Philip Withnall 2010-09-08 10:18:16 UTC
Bumping to be a blocker for 2.32, as this causes data loss for any meta-contact setups which use multi-byte characters in aliases, and will cause libfolks to abort for about half of those cases (where a multi-byte character has been split in half).
Comment 7 Travis Reitter 2010-09-10 16:05:59 UTC
Review of attachment 169749 [details] [review]:

Looks good.
Comment 8 Philip Withnall 2010-09-10 16:10:47 UTC
commit 4148a6a1474791ea0add1d47f913d1f3aec7e733
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Sep 8 11:10:49 2010 +0100

    Warn on key file parse errors, rather than explode
    
    Contrary to popular belief, it is possible to encounter errors when parsing
    key files. In this case, the key-file backend shouldn't explode without a
    helpful error message. Helps: bgo#628930

 backends/key-file/kf-persona.vala |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit 35ebac56b63a4d0a704c1a94ef7271dfcf266803
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Sep 8 11:06:25 2010 +0100

    Fix saving the key file when it contains multi-byte characters
    
    The calculation of the length of the data to be saved was being done in
    characters, not bytes, whereas the I/O function was expecting a length in
    bytes. This caused some number of bytes to be dropped from the end of the
    file, potentially splitting a multibyte character and breaking the file
    encoding (not to mention losing data otherwise). Closes: bgo#628930

 backends/key-file/kf-persona-store.vala |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

commit c2c799bd5bd39de40ef17cdaa7050b6837b088ac
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Sep 8 10:39:47 2010 +0100

    Add more debugging for aliases

 backends/key-file/kf-persona.vala |    3 +++
 folks/individual.vala             |   18 +++++++++++++++++-
 2 files changed, 20 insertions(+), 1 deletions(-)

commit 427b76062a2b677bfc46dac6495e4c19829775c6
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Sep 8 10:31:30 2010 +0100

    Don't save the key file when loading Personas' aliases
    
    We were previously saving the key file for each __alias key loaded, as it was
    loading the alias into Kf.Persona.alias, rather than Kf.Persona._alias,
    causing the key file to be saved each time.
    
    This may have caused or contributed towards the corruption seen in bgo#628930.

 backends/key-file/kf-persona.vala |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

commit ae93e946acb356def0429ba36f1c71b72228930b
Author: Philip Withnall <philip.withnall@collabora.co.uk>
Date:   Wed Sep 8 10:28:53 2010 +0100

    Don't allow setting a Kf.Persona's alias to its current value

 backends/key-file/kf-persona.vala |    3 +++
 1 files changed, 3 insertions(+), 0 deletions(-)
Comment 9 Philip Withnall 2010-11-13 12:10:50 UTC
Commit http://git.gnome.org/browse/folks/commit/?id=89d6c64c59c9f68e7a14696c1debf07b093e871e un-fixes this for Vala <= 0.10, as it unconditionally uses string.length.

Fixed again in http://git.gnome.org/browse/folks/commit/?id=3c5129f844242694b2825abadb1e3bb65254f3f1:

commit 3c5129f844242694b2825abadb1e3bb65254f3f1
Author: Philip Withnall <philip@tecnocode.co.uk>
Date:   Sat Nov 13 12:07:33 2010 +0000

    Ensure we use string's byte length in both Vala 0.10 and 0.12
    
    string.length gives the byte length in Vala 0.12 and string.size() is
    deprecated, however string.length gives the character length in Vala 0.10,
    so we need to conditionally change the code for Vala <= 0.10.
    Re-closes: bgo#628930

 backends/key-file/kf-persona-store.vala |   13 ++++++++++++-
 1 files changed, 12 insertions(+), 1 deletions(-)