GNOME Bugzilla – Bug 720740
GSettings binding is not thread safe
Last modified: 2018-05-24 16:10:32 UTC
[Thread 0x86588b40 (LWP 2992) exited] ** GLib-GIO:ERROR:gsettings.c:2328:g_settings_binding_free: assertion failed: (!binding->running) Program received signal SIGABRT, Aborted. 0xb7fdc424 in __kernel_vsyscall () (gdb) bt
+ Trace 232944
No idea what is going on here. I was on another desktop when it happened AFAIK - just arrived back to see Evo. had gone ... Other threads quiescent, or checking mail ...
[New LWP 28613] [New LWP 28565] [New LWP 28564] [New LWP 28600] [New LWP 28598] [New LWP 28601] [New LWP 28614] [New LWP 28587] [New LWP 28605] [New LWP 28599] [New LWP 28586] [New LWP 28597] [New LWP 28563] [New LWP 28606] [New LWP 28604] [New LWP 28562] [New LWP 28596] [New LWP 28560] [New LWP 28602] warning: Could not load shared library symbols for linux-vdso.so.1. Do you need "set solib-search-path" or "set sysroot"? [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib64/libthread_db.so.1". Core was generated by `evolution'. Program terminated with signal 6, Aborted.
+ Trace 232978
Thread 1 (Thread 0x7f6b0bfff700 (LWP 28613))
From To Syms Read Shared Object Library No linux-vdso.so.1 0x00007f6b519e0450 0x00007f6b519f3f00 Yes /usr/lib64/evolution/3.10/libevolution-shell.so 0x00007f6b516524d0 0x00007f6b51752ecc Yes /usr/lib64/evolution/3.10/libevolution-util.so 0x00007f6b513a8bc0 0x00007f6b513d1420 Yes /usr/lib64/libical.so.0 0x00007f6b51176750 0x00007f6b51181f64 Yes /lib64/libpthread.so.0 0x00007f6b50ef23e0 0x00007f6b50f3e38c Yes /usr/lib64/libedataserver-1.2.so.18 0x00007f6b50ba3f60 0x00007f6b50c5244c Yes /usr/lib64/libcamel-1.2.so.45 0x00007f6b4efa4b70 0x00007f6b5006f52c Yes /usr/lib64/libwebkitgtk-3.0.so.0 0x00007f6b4e52f820 0x00007f6b4e7dd450 Yes /usr/lib64/libgtk-3.so.0 0x00007f6b4e17ba60 0x00007f6b4e237934 Yes /usr/lib64/libgio-2.0.so.0 0x00007f6b4df00860 0x00007f6b4df2e318 Yes /usr/lib64/libgobject-2.0.so.0 0x00007f6b4dbe4010 0x00007f6b4dc797ac Yes /usr/lib64/libglib-2.0.so.0 0x00007f6b4d83e5a0 0x00007f6b4d9699f0 Yes /lib64/libc.so.6 0x00007f6b4d5c77f0 0x00007f6b4d5fa538 Yes /usr/lib64/libebackend-1.2.so.7 0x00007f6b4d3317f0 0x00007f6b4d37240c Yes /usr/lib64/libgdk-3.so.0 0x00007f6b4d0d6d60 0x00007f6b4d0f52a8 Yes /usr/lib64/libpango-1.0.so.0 0x00007f6b4ceb36f0 0x00007f6b4cec0090 Yes /usr/lib64/evolution/3.10/libgnomecanvas.so 0x00007f6b4cc90300 0x00007f6b4cc9ffc8 Yes /usr/lib64/libebook-1.2.so.14 0x00007f6b4ca69830 0x00007f6b4ca76520 Yes /usr/lib64/libebook-contacts-1.2.so.0 0x00007f6b4c8234a0 0x00007f6b4c8487e8 Yes /usr/lib64/libecal-1.2.so.16 0x00007f6b4c5c7f10 0x00007f6b4c5f1548 Yes /usr/lib64/libsecret-1.so.0 0x00007f6b4c286620 0x00007f6b4c364350 Yes /usr/lib64/libxml2.so.2 0x00007f6b4c024a20 0x00007f6b4c042980 Yes /usr/lib64/libgnome-desktop-3.so.8 0x00007f6b4bd8b300 0x00007f6b4bdc6ebc Yes /usr/lib64/libsoup-2.4.so.1 0x00007f6b4bb26cf0 0x00007f6b4bb3bf88 Yes /usr/lib64/libgtkhtml-editor-4.0.so.0 0x00007f6b4b86a640 0x00007f6b4b8d5978 Yes /usr/lib64/libgtkhtml-4.0.so.0 0x00007f6b4b630190 0x00007f6b4b6349e8 Yes /usr/lib64/libpangocairo-1.0.so.0 0x00007f6b4b412900 0x00007f6b4b41e0e4 Yes /usr/lib64/libatk-1.0.so.0 0x00007f6b4b1ebaf0 0x00007f6b4b1fd760 Yes /usr/lib64/libgdk_pixbuf-2.0.so.0 0x00007f6b4afe2390 0x00007f6b4afe3258 Yes /usr/lib64/libgmodule-2.0.so.0 0x00007f6b4acd9960 0x00007f6b4ad9ec48 Yes /usr/lib64/libcairo.so.2 0x00007f6b4a9d46f0 0x00007f6b4aa34cf8 Yes /lib64/libm.so.6 0x00007f6b51c01b60 0x00007f6b51c1b05a Yes /lib64/ld-linux-x86-64.so.2 0x00007f6b4a759990 0x00007f6b4a79d014 Yes /usr/lib64/libgcr-base-3.so.1 0x00007f6b4a4f8040 0x00007f6b4a521930 Yes /usr/lib64/libssl3.so 0x00007f6b4a2c8d10 0x00007f6b4a2e006c Yes /usr/lib64/libsmime3.so 0x00007f6b49f9ac90 0x00007f6b4a079f34 Yes /usr/lib64/libnss3.so 0x00007f6b49d4fcf0 0x00007f6b49d6e760 Yes /usr/lib64/libnspr4.so 0x00007f6b49a91060 0x00007f6b49b1b240 Yes /usr/lib64/libsqlite3.so.0 0x00007f6b49871810 0x00007f6b4987dd40 Yes /lib64/libz.so.1 0x00007f6b4966c800 0x00007f6b4966d364 Yes /lib64/libcom_err.so.2 0x00007f6b49432100 0x00007f6b4945d278 Yes /usr/lib64/libgssapi_krb5.so.2 0x00007f6b48d46e80 0x00007f6b4913933c Yes /usr/lib64/libjavascriptcoregtk-3.0.so.0 0x00007f6b48a1a610 0x00007f6b48a1f2f8 Yes /usr/lib64/libenchant.so.1 0x00007f6b48814c80 0x00007f6b48815198 Yes /usr/lib64/libharfbuzz-icu.so.0 0x00007f6b485c8040 0x00007f6b485f9a5c Yes /usr/lib64/libharfbuzz.so.0 0x00007f6b483b1ad0 0x00007f6b483b8238 Yes /usr/lib64/libgeoclue.so.0 0x00007f6b4819f660 0x00007f6b481a4724 Yes /usr/lib64/libgstapp-1.0.so.0 0x00007f6b47f5fb40 0x00007f6b47f86fc4 Yes /usr/lib64/libgstaudio-1.0.so.0 0x00007f6b47d37020 0x00007f6b47d45a34 Yes /usr/lib64/libgstpbutils-1.0.so.0 0x00007f6b47af30d0 0x00007f6b47b156c4 Yes /usr/lib64/libgstvideo-1.0.so.0 0x00007f6b47898e60 0x00007f6b478cdab0 Yes /usr/lib64/libgstbase-1.0.so.0 0x00007f6b475b08e0 0x00007f6b47639cec Yes /usr/lib64/libgstreamer-1.0.so.0 0x00007f6b473374e0 0x00007f6b4736cb50 Yes /usr/lib64/libjpeg.so.62 0x00007f6b47104520 0x00007f6b47125448 Yes /usr/lib64/libxslt.so.1 0x00007f6b46eb0780 0x00007f6b46ee2454 Yes /usr/lib64/libGL.so.1 0x00007f6b46c94090 0x00007f6b46c94b30 Yes /lib64/libdl.so.2 0x00007f6b46a5de20 0x00007f6b46a7a0d0 Yes /usr/lib64/libfontconfig.so.1 0x00007f6b467c0cb0 0x00007f6b46829c88 Yes /usr/lib64/libfreetype.so.6 0x00007f6b46583ca0 0x00007f6b465a57bc Yes /usr/lib64/libpng16.so.16 0x00007f6b46217ce0 0x00007f6b4631ad40 Yes /usr/lib64/libicui18n.so.51 0x00007f6b45e5b2e0 0x00007f6b45f06eb8 Yes /usr/lib64/libicuuc.so.51 0x00007f6b45bbfb40 0x00007f6b45bf4f04 Yes /usr/lib64/libwebp.so.4 0x00007f6b459b4e10 0x00007f6b459b57e8 Yes /usr/lib64/libXcomposite.so.1 0x00007f6b457b1d60 0x00007f6b457b267c Yes /usr/lib64/libXdamage.so.1 0x00007f6b455a7fb0 0x00007f6b455adc68 Yes /usr/lib64/libXrender.so.1 0x00007f6b45353620 0x00007f6b4538d27c Yes /usr/lib64/libXt.so.6 0x00007f6b450213a0 0x00007f6b450a380c Yes /usr/lib64/libX11.so.6 0x00007f6b44d58530 0x00007f6b44dbb65a Yes /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/libstdc++.so.6 0x00007f6b44afacd0 0x00007f6b44afb5c4 Yes /usr/lib64/libXinerama.so.1 0x00007f6b448f2110 0x00007f6b448f7628 Yes /usr/lib64/libXrandr.so.2 0x00007f6b446e8070 0x00007f6b446ec9d4 Yes /usr/lib64/libXcursor.so.1 0x00007f6b444d6190 0x00007f6b444df7a0 Yes /usr/lib64/libXext.so.6 0x00007f6b442c4920 0x00007f6b442ce604 Yes /usr/lib64/libXi.so.6 0x00007f6b440bd940 0x00007f6b440bfb88 Yes /usr/lib64/libXfixes.so.3 0x00007f6b43eb6790 0x00007f6b43eb77cc Yes (*) /usr/lib64/libcairo-gobject.so.2 0x00007f6b43c91bc0 0x00007f6b43ca3034 Yes /usr/lib64/libatk-bridge-2.0.so.0 0x00007f6b43a798a0 0x00007f6b43a80f10 Yes /usr/lib64/libpangoft2-1.0.so.0 0x00007f6b4385f200 0x00007f6b4386b228 Yes /lib64/libresolv.so.2 0x00007f6b43654bd0 0x00007f6b43659154 Yes /usr/lib64/libffi.so.6 0x00007f6b432fee00 0x00007f6b43416ad0 Yes /usr/lib64/libdb-4.8.so 0x00007f6b430d3180 0x00007f6b430d6a70 Yes /usr/lib64/libgailutil-3.so.0 0x00007f6b42ea6190 0x00007f6b42ebebc8 Yes /usr/lib64/libedata-book-1.2.so.20 0x00007f6b42bc1d00 0x00007f6b42c5ed48 Yes /usr/lib64/libgcrypt.so.20 0x00007f6b42997e50 0x00007f6b429abc40 Yes /lib64/liblzma.so.5 0x00007f6b42775700 0x00007f6b4278cd14 Yes /usr/lib64/libxkbfile.so.1 0x00007f6b4256a8a0 0x00007f6b4256d69c Yes /lib64/librt.so.1 0x00007f6b422da1b0 0x00007f6b42351930 Yes /usr/lib64/libpixman-1.so.0 0x00007f6b420b6930 0x00007f6b420c5e8c Yes /usr/lib64/libEGL.so.1 0x00007f6b41eaefb0 0x00007f6b41eaf834 Yes /usr/lib64/libxcb-shm.so.0 0x00007f6b41ca7ed0 0x00007f6b41caa990 Yes /usr/lib64/libxcb-render.so.0 0x00007f6b41a8ec90 0x00007f6b41a9ab88 Yes /usr/lib64/libxcb.so.1 0x00007f6b41856700 0x00007f6b41873638 Yes /usr/lib64/libgck-1.so.0 0x00007f6b41617d10 0x00007f6b4163192c Yes /usr/lib64/libp11-kit.so.0 0x00007f6b413e9e10 0x00007f6b413f7a84 Yes /usr/lib64/libnssutil3.so 0x00007f6b411d9910 0x00007f6b411daf18 Yes /usr/lib64/libplc4.so 0x00007f6b40fd52d0 0x00007f6b40fd6168 Yes /usr/lib64/libplds4.so 0x00007f6b40d2d1b0 0x00007f6b40d7cdd8 Yes /usr/lib64/libkrb5.so.3 0x00007f6b40ad8ee0 0x00007f6b40af6310 Yes /usr/lib64/libk5crypto.so.3 0x00007f6b408cc4b0 0x00007f6b408d0ac8 Yes /usr/lib64/libkrb5support.so.0 0x00007f6b406c63c0 0x00007f6b406c6ccc Yes /lib64/libkeyutils.so.1 0x00007f6b3ef795e0 0x00007f6b3ef796c8 Yes (*) /usr/lib64/libicudata.so.51 0x00007f6b3ed65ac0 0x00007f6b3ed74da8 Yes /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.2/libgcc_s.so.1 0x00007f6b3eb47cf0 0x00007f6b3eb5a398 Yes /usr/lib64/libgraphite2.so.3 0x00007f6b3e927b20 0x00007f6b3e939204 Yes /usr/lib64/libdbus-glib-1.so.2 0x00007f6b3e6edef0 0x00007f6b3e70a114 Yes /usr/lib64/libgsttag-1.0.so.0 0x00007f6b3e46e790 0x00007f6b3e4bafe0 Yes /usr/lib64/liborc-0.4.so.0 0x00007f6b3e241fe0 0x00007f6b3e24aa50 Yes /usr/lib64/libglapi.so.0 0x00007f6b3e037670 0x00007f6b3e03777c Yes /usr/lib64/libX11-xcb.so.1 0x00007f6b3de29fa0 0x00007f6b3de2feb8 Yes /usr/lib64/libxcb-glx.so.0 0x00007f6b3dc1ad10 0x00007f6b3dc1ba28 Yes /usr/lib64/libxcb-dri2.so.0 0x00007f6b3da141d0 0x00007f6b3da16988 Yes /usr/lib64/libXxf86vm.so.1 0x00007f6b3d80ade0 0x00007f6b3d80fb54 Yes /usr/lib64/libdrm.so.2 0x00007f6b3d5e1360 0x00007f6b3d5f9ecc Yes /usr/lib64/libexpat.so.1 0x00007f6b3d3ce990 0x00007f6b3d3da5a0 Yes /lib64/libbz2.so.1 0x00007f6b3d1c6080 0x00007f6b3d1c9f70 Yes /usr/lib64/libSM.so.6 0x00007f6b3cfadaf0 0x00007f6b3cfba63c Yes /usr/lib64/libICE.so.6 0x00007f6b3cd8ab00 0x00007f6b3cd99b98 Yes /usr/lib64/libatspi.so.0 0x00007f6b3cb44bd0 0x00007f6b3cb677c4 Yes /usr/lib64/libdbus-1.so.3 0x00007f6b3c937b40 0x00007f6b3c938198 Yes /usr/lib64/libgpg-error.so.0 0x00007f6b3c731e00 0x00007f6b3c733880 Yes /usr/lib64/libxcb-xfixes.so.0 0x00007f6b3c52acf0 0x00007f6b3c52c148 Yes /usr/lib64/libgbm.so.1 0x00007f6b3c31ad90 0x00007f6b3c323512 Yes /usr/lib64/libudev.so.1 0x00007f6b3c114050 0x00007f6b3c114c6c Yes /usr/lib64/libXau.so.6 0x00007f6b3bf0e6b0 0x00007f6b3bf0ff48 Yes /usr/lib64/libXdmcp.so.6 0x00007f6b3bd09790 0x00007f6b3bd0abb0 Yes /lib64/libuuid.so.1 0x00007f6b3544de50 0x00007f6b35459d38 Yes /usr/lib64/gio/modules/libgioremote-volume-monitor.so 0x00007f6b3523e1f0 0x00007f6b35242600 Yes /usr/lib64/gio/modules/libdconfsettings.so 0x00007f6b35014610 0x00007f6b3502d868 Yes /usr/lib64/gio/modules/libgvfsdbus.so 0x00007f6b34dde7a0 0x00007f6b34df53a8 Yes /usr/lib64/libgvfscommon.so.0 0x00007f6b343c5ce0 0x00007f6b343c7204 Yes /usr/lib64/gtk-3.0/3.0.0/theming-engines/libadwaita.so 0x00007f6b341bf470 0x00007f6b341c1400 Yes /usr/lib64/gtk-3.0/modules/libcanberra-gtk-module.so 0x00007f6b2fdfd040 0x00007f6b2fdfe460 Yes /usr/lib64/libcanberra-gtk3.so.0 0x00007f6b2fbf9730 0x00007f6b2fbf989c Yes /usr/lib64/libgthread-2.0.so.0 0x00007f6b2f9ec5a0 0x00007f6b2f9f416c Yes /usr/lib64/libcanberra.so.0 0x00007f6b2f7e24b0 0x00007f6b2f7e65ac Yes /usr/lib64/libvorbisfile.so.3 0x00007f6b2f5b6f00 0x00007f6b2f5cdab0 Yes /usr/lib64/libvorbis.so.0 0x00007f6b2f3adec0 0x00007f6b2f3b04e8 Yes /usr/lib64/libogg.so.0 0x00007f6b2f1a4a10 0x00007f6b2f1a8b88 Yes /usr/lib64/libltdl.so.7 0x00007f6b2d783ec0 0x00007f6b2d796578 Yes /usr/lib64/evolution-data-server/camel-providers/libcamellocal.so 0x00007f6b2d577e40 0x00007f6b2d578088 Yes /usr/lib64/evolution-data-server/camel-providers/libcamelimapx.so 0x00007f6b2d370af0 0x00007f6b2d373df8 Yes /usr/lib64/evolution-data-server/camel-providers/libcamelsmtp.so 0x00007f6b2d168b00 0x00007f6b2d16a2f0 Yes /usr/lib64/evolution-data-server/camel-providers/libcamelsendmail.so 0x00007f6b2cf58ee0 0x00007f6b2cf61658 Yes /usr/lib64/evolution-data-server/camel-providers/libcamelnntp.so 0x00007f6b2cd45020 0x00007f6b2cd4bfbc Yes /usr/lib64/evolution-data-server/camel-providers/libcamelpop3.so 0x00007f6b2cb2a010 0x00007f6b2cb37040 Yes /usr/lib64/evolution/3.10/modules/module-itip-formatter.so 0x00007f6b2c846650 0x00007f6b2c8e2a58 Yes /usr/lib64/evolution/3.10/libevolution-calendar.so 0x00007f6b2c574600 0x00007f6b2c5d971c Yes /usr/lib64/evolution/3.10/libevolution-mail.so 0x00007f6b2c314470 0x00007f6b2c329e10 Yes /usr/lib64/evolution/3.10/libevolution-mail-formatter.so 0x00007f6b2c0ddb70 0x00007f6b2c0f532c Yes /usr/lib64/evolution/3.10/libemail-engine.so 0x00007f6b1fde46e0 0x00007f6b1fdf5b54 Yes /usr/lib64/evolution/3.10/libevolution-mail-composer.so 0x00007f6b1fbc9a30 0x00007f6b1fbce70c Yes /usr/lib64/evolution/3.10/libevolution-smime.so 0x00007f6b1f9b6dc0 0x00007f6b1f9bbcd4 Yes /usr/lib64/evolution/3.10/libessmime.so 0x00007f6b1f77c4f0 0x00007f6b1f79eb20 Yes /usr/lib64/evolution/3.10/libecontacteditor.so 0x00007f6b1f55d110 0x00007f6b1f561adc Yes /usr/lib64/evolution/3.10/libecontactlisteditor.so 0x00007f6b1f353620 0x00007f6b1f353e28 Yes /usr/lib64/evolution/3.10/libeabutil.so 0x00007f6b1f14e1c0 0x00007f6b1f14f7ac Yes /usr/lib64/evolution/3.10/modules/module-backup-restore.so 0x00007f6b1ef475c0 0x00007f6b1ef48330 Yes /usr/lib64/evolution/3.10/modules/module-audio-inline.so 0x00007f6b1ed14a40 0x00007f6b1ed32b78 Yes /usr/lib64/evolution/3.10/modules/module-addressbook.so 0x00007f6b1eaf4530 0x00007f6b1eaf89f4 Yes /usr/lib64/evolution/3.10/libevolution-addressbook-importers.so 0x00007f6b1e8eb320 0x00007f6b1e8ec9c0 Yes /usr/lib64/evolution/3.10/modules/module-prefer-plain.so 0x00007f6b1e6e6980 0x00007f6b1e6e6ba4 Yes /usr/lib64/evolution/3.10/modules/module-book-config-local.so 0x00007f6b1e4e35d0 0x00007f6b1e4e4348 Yes /usr/lib64/evolution/3.10/modules/module-cal-config-local.so 0x00007f6b1e2df090 0x00007f6b1e2df464 Yes /usr/lib64/evolution/3.10/modules/module-book-config-google.so 0x00007f6b1e0d92e0 0x00007f6b1e0db250 Yes /usr/lib64/evolution/3.10/modules/module-startup-wizard.so 0x00007f6b1ded1d60 0x00007f6b1ded2774 Yes /usr/lib64/evolution/3.10/modules/module-gravatar.so 0x00007f6b1dcce020 0x00007f6b1dcce5c4 Yes /usr/lib64/evolution/3.10/modules/module-offline-alert.so 0x00007f6b1dac4d20 0x00007f6b1dac8df0 Yes /usr/lib64/evolution/3.10/modules/module-cal-config-caldav.so 0x00007f6b1d8bbf10 0x00007f6b1d8bc3b0 Yes /usr/lib64/libsoup-gnome-2.4.so.1 0x00007f6b1d6b7700 0x00007f6b1d6b89b4 Yes /usr/lib64/evolution/3.10/modules/module-contact-photos.so 0x00007f6b1d4871b0 0x00007f6b1d4a231c Yes /usr/lib64/evolution/3.10/modules/module-calendar.so 0x00007f6b1d2688a0 0x00007f6b1d26b834 Yes /usr/lib64/evolution/3.10/libevolution-calendar-importers.so 0x00007f6b1d055310 0x00007f6b1d05b7e8 Yes /usr/lib64/libicalvcal.so.0 0x00007f6b1ce27370 0x00007f6b1ce401b0 Yes /usr/lib64/evolution/3.10/modules/module-vcard-inline.so 0x00007f6b1cc11380 0x00007f6b1cc120e4 Yes /usr/lib64/evolution/3.10/modules/module-cal-config-weather.so 0x00007f6b1c9f5d30 0x00007f6b1ca03d10 Yes /usr/lib64/libgweather-3.so.6 0x00007f6b1c7e2300 0x00007f6b1c7e6384 Yes /usr/lib64/evolution/3.10/modules/module-settings.so 0x00007f6b1c5dad30 0x00007f6b1c5dbf04 Yes /usr/lib64/evolution/3.10/modules/module-mdn.so 0x00007f6b1c3bbe70 0x00007f6b1c3cc2b0 Yes /usr/lib64/evolution/3.10/modules/module-mail.so 0x00007f6b1c1a1b20 0x00007f6b1c1a41d4 Yes /usr/lib64/evolution/3.10/libevolution-mail-importers.so 0x00007f6b1bf9a140 0x00007f6b1bf9af14 Yes /usr/lib64/evolution/3.10/modules/module-cal-config-contacts.so 0x00007f6b1bd911a0 0x00007f6b1bd9505c Yes /usr/lib64/evolution/3.10/modules/module-mail-config.so 0x00007f6b1bb8ad30 0x00007f6b1bb8b300 Yes /usr/lib64/evolution/3.10/modules/module-plugin-lib.so 0x00007f6b1b986b90 0x00007f6b1b987d44 Yes /usr/lib64/evolution/3.10/modules/module-plugin-manager.so 0x00007f6b1b7818f0 0x00007f6b1b782034 Yes /usr/lib64/evolution/3.10/modules/module-mailto-handler.so 0x00007f6b1b57df80 0x00007f6b1b57e344 Yes /usr/lib64/evolution/3.10/modules/module-web-inspector.so 0x00007f6b1b37a880 0x00007f6b1b37ae84 Yes /usr/lib64/evolution/3.10/modules/module-book-config-webdav.so 0x00007f6b1b172b40 0x00007f6b1b175b64 Yes /usr/lib64/evolution/3.10/modules/module-book-config-ldap.so 0x00007f6b1af33330 0x00007f6b1af5d280 Yes /usr/lib64/libldap-2.4.so.2 0x00007f6b1ad17fe0 0x00007f6b1ad1ede4 Yes /usr/lib64/liblber-2.4.so.2 0x00007f6b1aabff00 0x00007f6b1aaf9f30 Yes /usr/lib64/libssl.so.1.0.0 0x00007f6b1a73a1c0 0x00007f6b1a81c638 Yes /usr/lib64/libcrypto.so.1.0.0 0x00007f6b1a4cc150 0x00007f6b1a4ce8e0 Yes /usr/lib64/evolution/3.10/modules/module-cal-config-google.so 0x00007f6b1a22f230 0x00007f6b1a289adc Yes /usr/lib64/libgdata.so.13 0x00007f6b1a00ac90 0x00007f6b1a00d33c Yes /usr/lib64/liboauth.so.0 0x00007f6b19ddb2f0 0x00007f6b19df7b14 Yes /usr/lib64/libgoa-1.0.so.0 0x00007f6b19bca820 0x00007f6b19bcae14 Yes /usr/lib64/evolution/3.10/modules/module-cal-config-webcal.so 0x00007f6b199c6180 0x00007f6b199c6eb4 Yes /usr/lib64/evolution/3.10/modules/module-bogofilter.so 0x00007f6b197c03c0 0x00007f6b197c1d74 Yes /usr/lib64/evolution/3.10/modules/module-composer-autosave.so 0x00007f6b1957dc40 0x00007f6b195aa06c Yes /usr/lib64/libsoftokn3.so 0x00007f6b19302580 0x00007f6b19353470 Yes /usr/lib64/libfreebl3.so 0x00007f6b19082a40 0x00007f6b190913d0 Yes /usr/lib64/libnssckbi.so 0x00007f6b113920c0 0x00007f6b11393a0c Yes /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-png.so 0x00007f6b111886e0 0x00007f6b1118d254 Yes /lib64/libnss_compat.so.2 0x00007f6b10f73ca0 0x00007f6b10f7f1f4 Yes /lib64/libnsl.so.1 0x00007f6b10d66720 0x00007f6b10d6c6c4 Yes /lib64/libnss_nis.so.2 0x00007f6b10b597e0 0x00007f6b10b60b48 Yes /lib64/libnss_files.so.2 0x00007f6b10151300 0x00007f6b10154158 Yes /lib64/libnss_dns.so.2 0x00007f6b085f4f10 0x00007f6b085f6f1c Yes /usr/lib64/enchant/libenchant_myspell.so 0x00007f6b083a9a00 0x00007f6b083cbe80 Yes /usr/lib64/libhunspell-1.3.so.0 0x00007f6b0819b980 0x00007f6b0819ceb0 Yes /usr/lib/nsbrowser/plugins/libgnome-shell-browser-plugin.so 0x00007f6af05dcca0 0x00007f6af05ee640 Yes /usr/lib64/libjson-glib-1.0.so.0 0x00007f6af0391b40 0x00007f6af03c0556 Yes (*) /opt/google/talkplugin/libnpgoogletalk.so 0x00007f6acb2353e0 0x00007f6acb47dbd0 Yes /usr/lib64/libgtk-x11-2.0.so.0 0x00007f6af00ec560 0x00007f6af014053c Yes /usr/lib64/libgdk-x11-2.0.so.0 0x00007f6aca9825d0 0x00007f6acadcf186 Yes (*) /opt/google/talkplugin/libnpgtpo3dautoplugin.so 0x00007f6b08048d60 0x00007f6b0807c6c8 Yes (*) /opt/google/talkplugin/lib/libCgGL.so 0x00007f6aca016d90 0x00007f6aca3029c8 Yes (*) /opt/google/talkplugin/lib/libCg.so 0x00007f6ac87f4530 0x00007f6ac95282d8 Yes (*) /usr/lib/nsbrowser/plugins/libflashplayer.so 0x00007f6ac8408000 0x00007f6ac8431066 Yes (*) /opt/google/talkplugin/libnpo1d.so 0x00007f6ac81f9b00 0x00007f6ac81faa88 Yes /usr/lib64/gio/modules/libgiognomeproxy.so 0x00007f6a83df7670 0x00007f6a83df892c Yes /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-xpm.so 0x00007f6a83bf3a00 0x00007f6a83bf440c Yes /usr/lib64/pango/1.8.0/modules/pango-basic-fc.so 0x00007f6a839ed460 0x00007f6a839ef81c Yes /usr/lib64/evolution/3.10/plugins/liborg-gnome-mail-to-task.so 0x00007f6a837e4ff0 0x00007f6a837e581c Yes /usr/lib64/evolution/3.10/plugins/liborg-gnome-mailing-list-actions.so 0x00007f6a835dd600 0x00007f6a835e028c Yes /usr/lib64/evolution/3.10/plugins/liborg-gnome-templates.so 0x00007f6b099f6e40 0x00007f6b099f838c Yes /usr/lib64/evolution/3.10/plugins/liborg-gnome-mail-notification.so 0x00007f6b08df4d10 0x00007f6b08df6f90 Yes /usr/lib64/libnotify.so.4 (*): Shared library is missing debugging information. $1 = 0x0 $2 = 0x7f6b0c00df50 "GLib-GIO:ERROR:/var/tmp/portage/dev-libs/glib-2.38.2/work/glib-2.38.2/gio/gsettings.c:2328:g_settings_binding_free: assertion failed: (!binding->running)" rax 0x0 0 rbx 0x7f6b0c00e030 140097739612208 rcx 0xffffffffffffffff -1 rdx 0x6 6 rsi 0x6fc5 28613 rdi 0x6f90 28560 rbp 0x7f6b4def3360 0x7f6b4def3360 <__glib_assert_msg> rsp 0x7f6b0bffe9c8 0x7f6b0bffe9c8 r8 0x0 0 r9 0x20 32 r10 0x8 8 r11 0x206 518 r12 0x9a 154 r13 0x7f6b4e237978 140098849175928 r14 0x7f6b4e255b68 140098849299304 r15 0x185571a 25515802 rip 0x7f6b4d854239 0x7f6b4d854239 <__GI_raise+57> eflags 0x206 [ PF IF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 Dump of assembler code for function __GI_raise: 0x00007f6b4d854200 <+0>: mov %fs:0x2d4,%eax 0x00007f6b4d854208 <+8>: mov %eax,%ecx 0x00007f6b4d85420a <+10>: mov %fs:0x2d0,%esi 0x00007f6b4d854212 <+18>: test %esi,%esi 0x00007f6b4d854214 <+20>: jne 0x7f6b4d854248 <__GI_raise+72> 0x00007f6b4d854216 <+22>: mov $0xba,%eax 0x00007f6b4d85421b <+27>: syscall 0x00007f6b4d85421d <+29>: mov %eax,%ecx 0x00007f6b4d85421f <+31>: mov %eax,%fs:0x2d0 0x00007f6b4d854227 <+39>: mov %eax,%esi 0x00007f6b4d854229 <+41>: movslq %edi,%rdx 0x00007f6b4d85422c <+44>: movslq %esi,%rsi 0x00007f6b4d85422f <+47>: movslq %ecx,%rdi 0x00007f6b4d854232 <+50>: mov $0xea,%eax 0x00007f6b4d854237 <+55>: syscall => 0x00007f6b4d854239 <+57>: cmp $0xfffffffffffff000,%rax 0x00007f6b4d85423f <+63>: ja 0x7f6b4d85425a <__GI_raise+90> 0x00007f6b4d854241 <+65>: repz retq 0x00007f6b4d854243 <+67>: nopl 0x0(%rax,%rax,1) 0x00007f6b4d854248 <+72>: test %eax,%eax 0x00007f6b4d85424a <+74>: jg 0x7f6b4d854229 <__GI_raise+41> 0x00007f6b4d85424c <+76>: mov %eax,%ecx 0x00007f6b4d85424e <+78>: neg %ecx 0x00007f6b4d854250 <+80>: test $0x7fffffff,%eax 0x00007f6b4d854255 <+85>: cmove %esi,%ecx 0x00007f6b4d854258 <+88>: jmp 0x7f6b4d854229 <__GI_raise+41> 0x00007f6b4d85425a <+90>: mov 0x36cbf7(%rip),%rdx # 0x7f6b4dbc0e58 0x00007f6b4d854261 <+97>: neg %eax 0x00007f6b4d854263 <+99>: mov %eax,%fs:(%rdx) 0x00007f6b4d854266 <+102>: or $0xffffffffffffffff,%rax 0x00007f6b4d85426a <+106>: retq End of assembler dump.
Thanks for a bug report. It would be interesting to get a reproducer for this, because it seems to me quite odd, maybe a memory corruption after certain set of actions or "the correct timing" being involved here. The second backtrace calls g_object_unref (formatter); at e-mail-request.c line 216, thus I agree the two may be related. The first backtrace seem to get a notification on a "citation-color" key change, while the object of 'formatter' is having the last reference, thus it's unreffed and finalized, still inside the g_settings_binding_key_changed(), which may, from my point of view, raise the assertion. Evolution doesn't free bindings on its own, they are usually kept untouched until respective objects are freed, thus this can be, partially, g_settings_binding issue, not doing proper object reference holding. It's only a guess, I'll try to prove or disprove the idea.
Created attachment 268319 [details] minimal test.c This is a minimal test program to reproduce the crash. The trick is that I added a 1.4 second sleep into listener_set_value(), thus the unref_in_thread() has a chance to unref the listener (from another than the main thread) before the code under settings_backend_changed at gsettings.c:348 or g_settings_binding_key_changed at gsettings.c:2418 is over, which triggers the assertion. I believe the solution comes to g_settings_binding_key_changed(), or basically anything that touches `binding->running`, to ref corresponding objects before it sets the binding->running to TRUE, and unref it only after the binding->running is returned back to FALSE.
I'm inclined to WONTFIX this... I don't think GSettings bindings were ever intended to be used from multiple threads at the same time. That was never documented, of course, so maybe we should do that at least...
(In reply to comment #4) > I'm inclined to WONTFIX this... > > I don't think GSettings bindings were ever intended to be used from multiple > threads at the same time. That was never documented, of course, so maybe we > should do that at least... I guess you mean move back to Evolution as it's using the GSettings bindings from multiple threads.
No, Evolution doesn't _use_ GSettings bindings from multiple threads. It creates an object in one thread, this object installs its GSetting bindings during its creation, then it unrefs this object in the same thread where it created it. It's the GSetting binding itself jumping into the main loop and doing stuff _in the other thread_. I'm afraid that not making GSettings bindings thread safe is the same as simply dropping it from GLib, because having a constraint like this, to actually use GSettings bindings exclusively from the main thread, like it being a UI/gtk-related object, makes it effectively useless for any bigger applications, like Evolution is.
There is absolutely no special-casing of the global default main context in GSettings. Are you creating the binding from the same thread that you created the GSettings from? GSettings will always dispatch change notifications (including for bindings) from the thread running the main context under which it was created (as is the convention)...
Here [1] is the object created, and here [2] it is killed, the same file, the same function, the same thread. This function is run by g_simple_async_result_run_in_thread() more lines below. The object itself creates its GSettings binding here [3], which, I agree, is awfully hidden in the background under "extensions", which are run during the object's GObject::constructed method. We do not push our own thread default context at [1], because that would break other things around (it did in other request handler in the past). The thing is that there is not much control about the bindings, being hidden under custom extensions, or added directly during the object creation). Does GSettings binding use GBindings in the background? If yes, does it mean it is also affected by the thread unsafety? I've a feeling (but no prove) that GBindings are thread safe. [1] https://git.gnome.org/browse/evolution/tree/mail/e-mail-request.c#n115 [2] https://git.gnome.org/browse/evolution/tree/mail/e-mail-request.c#n215 [3] https://git.gnome.org/browse/evolution/tree/modules/settings/e-settings-mail-formatter.c#n68
(In reply to comment #8) > We do not push our own thread default context > at [1], because that would break other things around (it did in other request > handler in the past). You must do this, or everything will dispatch via the default main context and then you will have bugs like this one. > Does GSettings binding use GBindings in the background? If yes, does it mean it > is also affected by the thread unsafety? I've a feeling (but no prove) that > GBindings are thread safe. GSettings does not use GObject property bindings and the same issues are not at play here. GSettings brings its own event dispatch mechanism, whereas with GObject it depends on the thread that the source object fires its "notify" signal from.
I was caught out by this in sound-juicer a few months ago where I was creating the GSettings object, bound object and binding then using the bound object and freeing it and the settings object all in the same thread which wasn't the default thread for the main context. GIO was new to me and it would have been helpful if the documentation had included something along the lines of (assuming I've understood correctly) "The bound property will be updated from the thread running the main context of the thread that created the GSettings object. If a program accesses the bound object from another thread then the object should implement the appropriate locking or atomic access for all accesses to the resources associated with the bound property. Furthermore the bound object must be freed in the thread running the main context of the thread that created the GSettings object to prevent the binding from trying to update the bound property after the bound object has been freed." It might also be nice to mention that the locking the property may block the main loop and so it might be a good idea to create a new main context for the bindings. In cases where it's not possible to determine where the last reference to the bound object will be dropped it would be interesting to compare the cost of always acquiring the main context for unreferencing the bound object vs using GWeakRef in g_settings_bind. The latter would certainly be easier for application programmers.
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/glib/issues/806.