GNOME Bugzilla – Bug 705742
Implement rate limiting in AvatarCache.store_avatar()
Last modified: 2014-04-07 20:02:54 UTC
Empathy can sometimes crash during startup due to too many files. I guess it might be due to slow I/O: 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 `empathy'. Program terminated with signal 5, Trace/breakpoint trap.
+ Trace 232369
Thread 31 (Thread 0x7f0ca7fff700 (LWP 1638))
Thread 30 (Thread 0x7f0ca4ff9700 (LWP 1644))
Thread 29 (Thread 0x7f0c87fff700 (LWP 1645))
Thread 28 (Thread 0x7f0ca57fa700 (LWP 1643))
Thread 27 (Thread 0x7f0ca5ffb700 (LWP 1642))
Thread 26 (Thread 0x7f0c86ffd700 (LWP 1647))
Thread 25 (Thread 0x7f0ca6ffd700 (LWP 1640))
Thread 24 (Thread 0x7f0ca77fe700 (LWP 1639))
Thread 8 (Thread 0x7f0cfee00900 (LWP 1586))
Thread 4 (Thread 0x7f0c877fe700 (LWP 1646))
Thread 1 (Thread 0x7f0ca67fc700 (LWP 1641))
From To Syms Read Shared Object Library No linux-vdso.so.1 0x00007f0cfe9da450 0x00007f0cfea2e124 Yes /usr/lib64/empathy/libempathy-gtk-3.8.3.so 0x00007f0cfe76a400 0x00007f0cfe78ab2c Yes /usr/lib64/empathy/libempathy-3.8.3.so 0x00007f0cfe52fb20 0x00007f0cfe541a04 Yes /usr/lib64/libdbus-glib-1.so.2 0x00007f0cfe2fe240 0x00007f0cfe315e0c Yes /usr/lib64/libtelepathy-logger.so.3 0x00007f0cfdf0dc70 0x00007f0cfe029d88 Yes /usr/lib64/libtelepathy-glib.so.0 0x00007f0cfdb79620 0x00007f0cfdc5ed10 Yes /usr/lib64/libxml2.so.2 0x00007f0cfd942d10 0x00007f0cfd944f90 Yes /usr/lib64/libnotify.so.4 0x00007f0cfd738cd0 0x00007f0cfd73c3a0 Yes /usr/lib64/libclutter-gtk-1.0.so.0 0x00007f0cfd0db260 0x00007f0cfd36d4e0 Yes /usr/lib64/libgtk-3.so.0 0x00007f0cfcd37ee0 0x00007f0cfcdef754 Yes /usr/lib64/libgio-2.0.so.0 0x00007f0cfca99650 0x00007f0cfcadc0cc Yes /usr/lib64/libgdk-3.so.0 0x00007f0cfc83ed50 0x00007f0cfc85d068 Yes /usr/lib64/libpango-1.0.so.0 0x00007f0cfc5ec830 0x00007f0cfc619698 Yes /usr/lib64/libgobject-2.0.so.0 0x00007f0cfc2ced50 0x00007f0cfc36728c Yes /usr/lib64/libglib-2.0.so.0 0x00007f0cfc09b750 0x00007f0cfc0a6f64 Yes /lib64/libpthread.so.0 0x00007f0cfbd0c5a0 0x00007f0cfbe379f0 Yes /lib64/libc.so.6 0x00007f0cfbae1610 0x00007f0cfbae62f8 Yes /usr/lib64/libenchant.so.1 0x00007f0cfb8db5c0 0x00007f0cfb8dbe24 Yes /usr/lib64/libchamplain-gtk-0.12.so.0 0x00007f0cfb6a8e20 0x00007f0cfb6c6cd0 Yes /usr/lib64/libchamplain-0.12.so.0 0x00007f0cfb48f7a0 0x00007f0cfb493984 Yes /usr/lib64/libcheese-gtk.so.23 0x00007f0cfb265c50 0x00007f0cfb27dff4 Yes /usr/lib64/libfolks-telepathy.so.25 0x00007f0cfb001370 0x00007f0cfb039e98 Yes /usr/lib64/libfolks.so.25 0x00007f0cfade9040 0x00007f0cfadea460 Yes /usr/lib64/libcanberra-gtk3.so.0 0x00007f0cfaaca3c0 0x00007f0cfab4c82c Yes /usr/lib64/libX11.so.6 0x00007f0cfa89d5a0 0x00007f0cfa8a516c Yes /usr/lib64/libcanberra.so.0 0x00007f0cfa644ba0 0x00007f0cfa675684 Yes /usr/lib64/libgcr-ui-3.so.1 0x00007f0cfa3af930 0x00007f0cfa3f31a4 Yes /usr/lib64/libgcr-base-3.so.1 0x00007f0cf899f310 0x00007f0cf9b91dbc Yes /usr/lib64/libwebkitgtk-3.0.so.0 0x00007f0cf83815e0 0x00007f0cf8392ce0 Yes /usr/lib64/libgdk_pixbuf-2.0.so.0 0x00007f0cf80de540 0x00007f0cf8141970 Yes /usr/lib64/libgee-0.8.so.2 0x00007f0cf7ebbad0 0x00007f0cf7ec2238 Yes /usr/lib64/libgeoclue.so.0 0x00007f0cf7c70a30 0x00007f0cf7c99f88 Yes /usr/lib64/libsecret-1.so.0 0x00007f0cf796b580 0x00007f0cf7a22dcc Yes /usr/lib64/libgnutls.so.28 0x00007f0cf76c1560 0x00007f0cf76fc57c Yes /usr/lib64/libsoup-2.4.so.1 0x00007f0cf747c120 0x00007f0cf747efba Yes /usr/lib64/libgudev-1.0.so.0 0x00007f0cf724b2e0 0x00007f0cf72678e4 Yes /usr/lib64/libgoa-1.0.so.0 0x00007f0cf6f4d6f0 0x00007f0cf6fadcf8 Yes /lib64/libm.so.6 0x00007f0cf6d11bd0 0x00007f0cf6d348c4 Yes /usr/lib64/libdbus-1.so.3 0x00007f0cf6a5ea00 0x00007f0cf6ae49a0 Yes /usr/lib64/libsqlite3.so.0 0x00007f0cf6850090 0x00007f0cf6850b30 Yes /lib64/libdl.so.2 0x00007f0cf663b810 0x00007f0cf6647d40 Yes /lib64/libz.so.1 0x00007f0cf6418e50 0x00007f0cf642cc40 Yes /lib64/liblzma.so.5 0x00007f0cf6109180 0x00007f0cf61b3900 Yes /usr/lib64/libclutter-1.0.so.0 0x00007f0cf5e54110 0x00007f0cf5ea567c Yes /usr/lib64/libcogl.so.12 0x00007f0cf5b30850 0x00007f0cf5bf5b08 Yes /usr/lib64/libcairo.so.2 0x00007f0cf5918cd0 0x00007f0cf59195c4 Yes /usr/lib64/libXinerama.so.1 0x00007f0cf5710110 0x00007f0cf5715628 Yes /usr/lib64/libXrandr.so.2 0x00007f0cf5506070 0x00007f0cf550a9d4 Yes /usr/lib64/libXcursor.so.1 0x00007f0cf52f4190 0x00007f0cf52fd7a0 Yes /usr/lib64/libXext.so.6 0x00007f0cf50ed390 0x00007f0cf50ee258 Yes /usr/lib64/libgmodule-2.0.so.0 0x00007f0cf4ee4120 0x00007f0cf4ee88d8 Yes /usr/lib64/libpangocairo-1.0.so.0 0x00007f0cf4cd1920 0x00007f0cf4cdb604 Yes /usr/lib64/libXi.so.6 0x00007f0cf4acce10 0x00007f0cf4acd7e8 Yes /usr/lib64/libXcomposite.so.1 0x00007f0cf48c9d60 0x00007f0cf48ca67c Yes /usr/lib64/libXdamage.so.1 0x00007f0cf46c4940 0x00007f0cf46c6b88 Yes /usr/lib64/libXfixes.so.3 0x00007f0cf44bd770 0x00007f0cf44be71c Yes (*) /usr/lib64/libcairo-gobject.so.2 0x00007f0cf42a1720 0x00007f0cf42acd24 Yes /usr/lib64/libatk-1.0.so.0 0x00007f0cf4074a10 0x00007f0cf40861a4 Yes /usr/lib64/libatk-bridge-2.0.so.0 0x00007f0cf3e5c840 0x00007f0cf3e63db0 Yes /usr/lib64/libpangoft2-1.0.so.0 0x00007f0cf3bbd390 0x00007f0cf3c28c38 Yes /usr/lib64/libfreetype.so.6 0x00007f0cf397ad30 0x00007f0cf3996de0 Yes /usr/lib64/libfontconfig.so.1 0x00007f0cf3760200 0x00007f0cf376c228 Yes /lib64/libresolv.so.2 0x00007f0cf3555bd0 0x00007f0cf355a154 Yes /usr/lib64/libffi.so.6 0x00007f0cfec5ab60 0x00007f0cfec7405a Yes /lib64/ld-linux-x86-64.so.2 0x00007f0cf3351e90 0x00007f0cf3352310 Yes /usr/lib64/libsoup-gnome-2.4.so.1 0x00007f0cf3145ab0 0x00007f0cf314c254 Yes /usr/lib64/libmemphis-0.2.so.0 0x00007f0cf2f35ac0 0x00007f0cf2f3b9b8 Yes /usr/lib64/libcheese.so.7 0x00007f0cf2d15c10 0x00007f0cf2d23c04 Yes /usr/lib64/libgstpbutils-1.0.so.0 0x00007f0cf2b04810 0x00007f0cf2b05ef4 Yes /usr/lib64/libgstphotography-1.0.so.0 0x00007f0cf28ddbd0 0x00007f0cf28f4848 Yes /usr/lib64/libgnome-desktop-3.so.7 0x00007f0cf26bfce0 0x00007f0cf26c718c Yes /usr/lib64/libclutter-gst-2.0.so.0 0x00007f0cf2472400 0x00007f0cf24a31a0 Yes /usr/lib64/libgstbase-1.0.so.0 0x00007f0cf21951d0 0x00007f0cf2216aac Yes /usr/lib64/libgstreamer-1.0.so.0 0x00007f0cf1f6b730 0x00007f0cf1f6b89c Yes /usr/lib64/libgthread-2.0.so.0 0x00007f0cf1d3ea10 0x00007f0cf1d61588 Yes /usr/lib64/librsvg-2.so.2 0x00007f0cf1b30e90 0x00007f0cf1b331fc Yes /usr/lib64/libcogl-pango.so.12 0x00007f0cf1910ca0 0x00007f0cf1922600 Yes /usr/lib64/libjson-glib-1.0.so.0 0x00007f0cf16b7fb0 0x00007f0cf16e5dd4 Yes /usr/lib64/libzeitgeist-2.0.so.0 0x00007f0cf149b4b0 0x00007f0cf149f5ac Yes /usr/lib64/libvorbisfile.so.3 0x00007f0cf126ff00 0x00007f0cf1286ab0 Yes /usr/lib64/libvorbis.so.0 0x00007f0cf1066ec0 0x00007f0cf10694e8 Yes /usr/lib64/libogg.so.0 0x00007f0cf0e5da10 0x00007f0cf0e61b88 Yes /usr/lib64/libltdl.so.7 0x00007f0cf0c469d0 0x00007f0cf0c52138 Yes /usr/lib64/libxcb.so.1 0x00007f0cf0a0e800 0x00007f0cf0a2b918 Yes /usr/lib64/libgck-1.so.0 0x00007f0cf078ae00 0x00007f0cf07d7a48 Yes /usr/lib64/libgcrypt.so.11 0x00007f0cf054fc70 0x00007f0cf056968c Yes /usr/lib64/libp11-kit.so.0 0x00007f0cefef92e0 0x00007f0cf026f764 Yes /usr/lib64/libjavascriptcoregtk-3.0.so.0 0x00007f0cefc02be0 0x00007f0cefc030f8 Yes /usr/lib64/libharfbuzz-icu.so.0 0x00007f0cef9b63f0 0x00007f0cef9e880c Yes /usr/lib64/libharfbuzz.so.0 0x00007f0cef7a8180 0x00007f0cef7aba80 Yes /usr/lib64/libgailutil-3.so.0 0x00007f0cef59b630 0x00007f0cef5a05d4 Yes /usr/lib64/libgstapp-1.0.so.0 0x00007f0cef35bb90 0x00007f0cef383c34 Yes /usr/lib64/libgstaudio-1.0.so.0 0x00007f0cef119390 0x00007f0cef13ac14 Yes /usr/lib64/libgstvideo-1.0.so.0 0x00007f0ceeeba4e0 0x00007f0ceeef05d0 Yes /usr/lib64/libjpeg.so.62 0x00007f0ceec86520 0x00007f0ceeca7f28 Yes /usr/lib64/libxslt.so.1 0x00007f0ceea335c0 0x00007f0ceea64ef4 Yes /usr/lib64/libGL.so.1 0x00007f0cee7eacc0 0x00007f0cee80ccac Yes /usr/lib64/libpng16.so.16 0x00007f0cee47dce0 0x00007f0cee581ed0 Yes /usr/lib64/libicui18n.so.51 0x00007f0cee0bf2e0 0x00007f0cee16c578 Yes /usr/lib64/libicuuc.so.51 0x00007f0cede23b40 0x00007f0cede58f04 Yes /usr/lib64/libwebp.so.4 0x00007f0cedc11fb0 0x00007f0cedc17c68 Yes /usr/lib64/libXrender.so.1 0x00007f0ced9bd620 0x00007f0ced9f727c Yes /usr/lib64/libXt.so.6 0x00007f0ced6ff530 0x00007f0ced7628da Yes /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.1/libstdc++.so.6 0x00007f0ced47a400 0x00007f0ced49441c Yes /usr/lib64/libnettle.so.4 0x00007f0ced24b9b0 0x00007f0ced255c14 Yes /usr/lib64/libhogweed.so.2 0x00007f0cecfdb100 0x00007f0ced02c140 Yes /usr/lib64/libgmp.so.10 0x00007f0cecdbecd0 0x00007f0cecdc7420 Yes /usr/lib64/libudev.so.1 0x00007f0cecbb58a0 0x00007f0cecbb869c Yes /lib64/librt.so.1 0x00007f0cec926370 0x00007f0cec99cb2c Yes /usr/lib64/libpixman-1.so.0 0x00007f0cec703210 0x00007f0cec71254c Yes /usr/lib64/libEGL.so.1 0x00007f0cec4f9c90 0x00007f0cec4fa354 Yes /usr/lib64/libxcb-shm.so.0 0x00007f0cec2f2ed0 0x00007f0cec2f5990 Yes /usr/lib64/libxcb-render.so.0 0x00007f0cec0d5950 0x00007f0cec0e3eb8 Yes /usr/lib64/libatspi.so.0 0x00007f0cebeb9990 0x00007f0cebec55a0 Yes /lib64/libbz2.so.1 0x00007f0cebc92360 0x00007f0cebcaaecc Yes /usr/lib64/libexpat.so.1 0x00007f0ceba6e700 0x00007f0ceba85d14 Yes /usr/lib64/libxkbfile.so.1 0x00007f0ceb83ba40 0x00007f0ceb857354 Yes /usr/lib64/libgsttag-1.0.so.0 0x00007f0ceb62dc60 0x00007f0ceb62e76c Yes /usr/lib64/libgstbasevideo-1.0.so.0 0x00007f0ceb3f9b80 0x00007f0ceb417d08 Yes /usr/lib64/libcroco-0.6.so.3 0x00007f0ceb1ec050 0x00007f0ceb1ecc6c Yes /usr/lib64/libXau.so.6 0x00007f0ceafe66b0 0x00007f0ceafe7f48 Yes /usr/lib64/libXdmcp.so.6 0x00007f0ceade0b40 0x00007f0ceade1198 Yes /usr/lib64/libgpg-error.so.0 0x00007f0ceabc4cf0 0x00007f0ceabd7498 Yes /usr/lib64/libgraphite2.so.3 0x00007f0cea950780 0x00007f0cea999fc0 Yes /usr/lib64/liborc-0.4.so.0 0x00007f0cea723ee0 0x00007f0cea72c810 Yes /usr/lib64/libglapi.so.0 0x00007f0cea519670 0x00007f0cea51977c Yes /usr/lib64/libX11-xcb.so.1 0x00007f0cea30bfa0 0x00007f0cea311eb8 Yes /usr/lib64/libxcb-glx.so.0 0x00007f0cea0fcd10 0x00007f0cea0fda28 Yes /usr/lib64/libxcb-dri2.so.0 0x00007f0ce9ef61d0 0x00007f0ce9ef8988 Yes /usr/lib64/libXxf86vm.so.1 0x00007f0ce9cecd30 0x00007f0ce9cf1b34 Yes /usr/lib64/libdrm.so.2 0x00007f0ce9ad5ac0 0x00007f0ce9ae4ee8 Yes /usr/lib/gcc/x86_64-pc-linux-gnu/4.8.1/libgcc_s.so.1 0x00007f0ce83875e0 0x00007f0ce83876c8 Yes (*) /usr/lib64/libicudata.so.51 0x00007f0ce8180080 0x00007f0ce8183f70 Yes /usr/lib64/libSM.so.6 0x00007f0ce7f67af0 0x00007f0ce7f7463c Yes /usr/lib64/libICE.so.6 0x00007f0ce7d5db60 0x00007f0ce7d5f390 Yes /usr/lib64/libxcb-xfixes.so.0 0x00007f0ce7b56ce0 0x00007f0ce7b58128 Yes /usr/lib64/libgbm.so.1 0x00007f0ce7951750 0x00007f0ce7952b70 Yes /lib64/libuuid.so.1 0x00007f0ce1258e40 0x00007f0ce1264c78 Yes /usr/lib64/gio/modules/libgioremote-volume-monitor.so 0x00007f0ce10491e0 0x00007f0ce104d5b0 Yes /usr/lib64/gio/modules/libdconfsettings.so 0x00007f0ce0e1f5e0 0x00007f0ce0e38828 Yes /usr/lib64/gio/modules/libgvfsdbus.so 0x00007f0ce0be99e0 0x00007f0ce0c002e8 Yes /usr/lib64/libgvfscommon.so.0 0x00007f0ce01d0cf0 0x00007f0ce01d2204 Yes /usr/lib64/gtk-3.0/3.0.0/theming-engines/libadwaita.so 0x00007f0cdbdfb470 0x00007f0cdbdfd400 Yes /usr/lib64/gtk-3.0/modules/libcanberra-gtk-module.so 0x00007f0cdbb3c600 0x00007f0cdbbd1744 Yes /usr/lib64/dri/i965_dri.so 0x00007f0cdb5d0cc0 0x00007f0cdb7baa5c Yes /usr/lib64/libdricore9.1.6.so.1 0x00007f0cdb33e4b0 0x00007f0cdb351258 Yes /usr/lib64/libdrm_intel.so.1 0x00007f0cdb134880 0x00007f0cdb138610 Yes /usr/lib64/libpciaccess.so.0 0x00007f0cda72ea00 0x00007f0cda72f40c Yes /usr/lib64/pango/1.8.0/modules/pango-basic-fc.so 0x00007f0cd8334cb0 0x00007f0cd833507c Yes /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-svg.so 0x00007f0cd812f490 0x00007f0cd81313a8 Yes /usr/lib64/gtk-3.0/3.0.0/immodules/im-ibus.so 0x00007f0ccde6cb90 0x00007f0ccde8c928 Yes /usr/lib64/libibus-1.0.so.5 0x00007f0ccd056c00 0x00007f0ccd058744 Yes /usr/lib64/folks/39/backends/eds/eds.so 0x00007f0ccce29c90 0x00007f0ccce4684c Yes /usr/lib64/libfolks-eds.so.25 0x00007f0cccba0060 0x00007f0cccbeb0ac Yes /usr/lib64/libedataserver-1.2.so.17 0x00007f0ccc95b300 0x00007f0ccc96afc8 Yes /usr/lib64/libebook-1.2.so.14 0x00007f0ccc7357f0 0x00007f0ccc742150 Yes /usr/lib64/libebook-contacts-1.2.so.0 0x00007f0ccc4073f0 0x00007f0ccc4b582c Yes /usr/lib64/libcamel-1.2.so.44 0x00007f0ccc1762b0 0x00007f0ccc1a7d98 Yes /usr/lib64/libebackend-1.2.so.6 0x00007f0cc7dd6080 0x00007f0cc7dee958 Yes /usr/lib64/libedata-book-1.2.so.19 0x00007f0cc7b88d90 0x00007f0cc7bb2b30 Yes /usr/lib64/libssl3.so 0x00007f0cc7959d10 0x00007f0cc797125c Yes /usr/lib64/libsmime3.so 0x00007f0cc762ac90 0x00007f0cc770a534 Yes /usr/lib64/libnss3.so 0x00007f0cc73dfcf0 0x00007f0cc73fe970 Yes /usr/lib64/libnspr4.so 0x00007f0cc71ce790 0x00007f0cc71cf2f4 Yes /lib64/libcom_err.so.2 0x00007f0cc6f94100 0x00007f0cc6fbf458 Yes /usr/lib64/libgssapi_krb5.so.2 0x00007f0cc6c32e00 0x00007f0cc6d4aac0 Yes /usr/lib64/libdb-4.8.so 0x00007f0cc69ece10 0x00007f0cc69fab64 Yes /usr/lib64/libnssutil3.so 0x00007f0cc67dc910 0x00007f0cc67ddf18 Yes /usr/lib64/libplc4.so 0x00007f0cc65d82d0 0x00007f0cc65d9218 Yes /usr/lib64/libplds4.so 0x00007f0cc632f1b0 0x00007f0cc637f798 Yes /usr/lib64/libkrb5.so.3 0x00007f0cc60daee0 0x00007f0cc60f8580 Yes /usr/lib64/libk5crypto.so.3 0x00007f0cc5ece4b0 0x00007f0cc5ed2ac8 Yes /usr/lib64/libkrb5support.so.0 0x00007f0cc5cc83c0 0x00007f0cc5cc8ccc Yes /lib64/libkeyutils.so.1 0x00007f0cc5ac3750 0x00007f0cc5ac4db4 Yes /usr/lib64/folks/39/backends/telepathy/telepathy.so 0x00007f0cc58bd4b0 0x00007f0cc58be694 Yes /usr/lib64/folks/39/backends/tracker/tracker.so 0x00007f0cc568cf70 0x00007f0cc56ab2e8 Yes /usr/lib64/libfolks-tracker.so.25 0x00007f0cc5464930 0x00007f0cc5475358 Yes /usr/lib64/libtracker-sparql-0.16.so.0 0x00007f0cc51eef60 0x00007f0cc523e818 Yes /usr/lib64/tracker-0.16/libtracker-data.so.0 0x00007f0cc4fb0750 0x00007f0cc4fc0b58 Yes /usr/lib64/tracker-0.16/libtracker-common.so.0 0x00007f0cc4d8f170 0x00007f0cc4d97510 Yes /usr/lib64/folks/39/backends/key-file/key-file.so 0x00007f0cc4b7d320 0x00007f0cc4b8400c Yes /usr/lib64/folks/39/backends/ofono/ofono.so 0x00007f0cc4972790 0x00007f0cc4973eb4 Yes /usr/lib64/folks/39/backends/libsocialweb/libsocialweb.so 0x00007f0cc47681e0 0x00007f0cc476c550 Yes /usr/lib64/libfolks-libsocialweb.so.25 0x00007f0cc45596b0 0x00007f0cc455e7dc Yes /usr/lib64/libsocialweb-client.so.2 0x00007f0cc4339e70 0x00007f0cc434c4c8 Yes /usr/lib64/evolution-data-server/camel-providers/libcamellocal.so 0x00007f0cc412de40 0x00007f0cc412e088 Yes /usr/lib64/evolution-data-server/camel-providers/libcamelimapx.so 0x00007f0cbedf7af0 0x00007f0cbedfae38 Yes /usr/lib64/evolution-data-server/camel-providers/libcamelsmtp.so 0x00007f0cbebefb00 0x00007f0cbebf12f0 Yes /usr/lib64/evolution-data-server/camel-providers/libcamelsendmail.so 0x00007f0cbe9df120 0x00007f0cbe9e78f8 Yes /usr/lib64/evolution-data-server/camel-providers/libcamelnntp.so 0x00007f0cbe7c1b70 0x00007f0cbe7cf090 Yes /usr/lib64/evolution-data-server/camel-providers/libcamelews.so 0x00007f0cbe57f860 0x00007f0cbe59e1fc Yes /usr/lib64/evolution-data-server/libeews-1.2.so.0 0x00007f0cbe363e90 0x00007f0cbe36743c Yes /usr/lib64/evolution-data-server/libewsutils.so.0 0x00007f0cbe13baf0 0x00007f0cbe1531bc Yes /usr/lib64/evolution/3.10/libemail-engine.so 0x00007f0cbdee1bc0 0x00007f0cbdf0a420 Yes /usr/lib64/libical.so.0 0x00007f0cbdc9cae0 0x00007f0cbdcb4878 Yes /usr/lib64/libedata-cal-1.2.so.22 0x00007f0cbd910a70 0x00007f0cbda1096c Yes /usr/lib64/evolution/3.10/libevolution-util.so 0x00007f0cbd674450 0x00007f0cbd699918 Yes /usr/lib64/libecal-1.2.so.16 0x00007f0cbd4476f0 0x00007f0cbd4540cc Yes /usr/lib64/evolution/3.10/libgnomecanvas.so 0x00007f0cbd219cf0 0x00007f0cbd22ef88 Yes /usr/lib64/libgtkhtml-editor-4.0.so.0 0x00007f0cbcf5d640 0x00007f0cbcfc8978 Yes /usr/lib64/libgtkhtml-4.0.so.0 0x00007f0cbcd1ff00 0x00007f0cbcd26a1c Yes /usr/lib64/evolution-data-server/camel-providers/libcamelpop3.so 0x00007f0cbcb126e0 0x00007f0cbcb17254 Yes /lib64/libnss_compat.so.2 0x00007f0cbc8fdca0 0x00007f0cbc9091f4 Yes /lib64/libnsl.so.1 0x00007f0cbc6f0720 0x00007f0cbc6f66c4 Yes /lib64/libnss_nis.so.2 0x00007f0cbc4e37e0 0x00007f0cbc4eab48 Yes /lib64/libnss_files.so.2 0x00007f0cbc2dcbe0 0x00007f0cbc2dec2c Yes /usr/lib64/gdk-pixbuf-2.0/2.10.0/loaders/libpixbufloader-jpeg.so (*): Shared library is missing debugging information. $1 = 0x0 $2 = 0x0 rax 0x6 6 rbx 0x0 0 rcx 0x13810 79888 rdx 0x81 129 rsi 0x0 0 rdi 0x1 1 rbp 0x7f0cfc3672ae 0x7f0cfc3672ae rsp 0x7f0ca67fb8a0 0x7f0ca67fb8a0 r8 0x0 0 r9 0x7f0c90000070 139691932254320 r10 0x0 0 r11 0x0 0 r12 0x4 4 r13 0x7f0cfc302df0 139693747351024 r14 0x2 2 r15 0x2 2 rip 0x7f0cfc30355d 0x7f0cfc30355d <g_logv+525> eflags 0x246 [ PF ZF 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 g_logv: 0x00007f0cfc303350 <+0>: push %r15 0x00007f0cfc303352 <+2>: mov %esi,%eax 0x00007f0cfc303354 <+4>: push %r14 0x00007f0cfc303356 <+6>: push %r13 0x00007f0cfc303358 <+8>: push %r12 0x00007f0cfc30335a <+10>: push %rbp 0x00007f0cfc30335b <+11>: push %rbx 0x00007f0cfc30335c <+12>: mov %esi,%ebx 0x00007f0cfc30335e <+14>: sub $0x78,%rsp 0x00007f0cfc303362 <+18>: and $0xfffffffc,%eax 0x00007f0cfc303365 <+21>: mov %eax,0xc(%rsp) 0x00007f0cfc303369 <+25>: jne 0x7f0cfc303380 <g_logv+48> 0x00007f0cfc30336b <+27>: add $0x78,%rsp 0x00007f0cfc30336f <+31>: pop %rbx 0x00007f0cfc303370 <+32>: pop %rbp 0x00007f0cfc303371 <+33>: pop %r12 0x00007f0cfc303373 <+35>: pop %r13 0x00007f0cfc303375 <+37>: pop %r14 0x00007f0cfc303377 <+39>: pop %r15 0x00007f0cfc303379 <+41>: retq 0x00007f0cfc30337a <+42>: nopw 0x0(%rax,%rax,1) 0x00007f0cfc303380 <+48>: mov %rdi,%rbp 0x00007f0cfc303383 <+51>: mov %rcx,%rsi 0x00007f0cfc303386 <+54>: mov %rdx,%rdi 0x00007f0cfc303389 <+57>: callq 0x7f0cfc3193f0 <g_strdup_vprintf> 0x00007f0cfc30338e <+62>: mov 0x2dbdb3(%rip),%rdi # 0x7f0cfc5df148 <expected_messages> 0x00007f0cfc303395 <+69>: mov %rax,0x10(%rsp) 0x00007f0cfc30339a <+74>: test %rdi,%rdi 0x00007f0cfc30339d <+77>: je 0x7f0cfc30341b <g_logv+203> 0x00007f0cfc30339f <+79>: mov (%rdi),%r14 0x00007f0cfc3033a2 <+82>: mov %rdi,%rsi 0x00007f0cfc3033a5 <+85>: callq 0x7f0cfc318b50 <g_slist_delete_link> 0x00007f0cfc3033aa <+90>: mov %rbp,%rsi 0x00007f0cfc3033ad <+93>: mov %rax,0x2dbd94(%rip) # 0x7f0cfc5df148 <expected_messages> 0x00007f0cfc3033b4 <+100>: mov (%r14),%rdi 0x00007f0cfc3033b7 <+103>: callq 0x7f0cfc2ce670 <strcmp@plt> 0x00007f0cfc3033bc <+108>: test %eax,%eax 0x00007f0cfc3033be <+110>: jne 0x7f0cfc30367d <g_logv+813> 0x00007f0cfc3033c4 <+116>: mov 0x8(%r14),%eax 0x00007f0cfc3033c8 <+120>: mov 0xc(%rsp),%edx 0x00007f0cfc3033cc <+124>: and %eax,%edx 0x00007f0cfc3033ce <+126>: mov %eax,%esi 0x00007f0cfc3033d0 <+128>: cmp %edx,%eax 0x00007f0cfc3033d2 <+130>: je 0x7f0cfc303686 <g_logv+822> 0x00007f0cfc3033d8 <+136>: lea 0x30(%rsp),%r15 0x00007f0cfc3033dd <+141>: mov %r15,%rdi 0x00007f0cfc3033e0 <+144>: callq 0x7f0cfc3028d0 <mklevel_prefix> 0x00007f0cfc3033e5 <+149>: mov 0x10(%r14),%rdx 0x00007f0cfc3033e9 <+153>: lea 0x6d4c8(%rip),%rdi # 0x7f0cfc3708b8 0x00007f0cfc3033f0 <+160>: mov %r15,%rsi 0x00007f0cfc3033f3 <+163>: xor %eax,%eax 0x00007f0cfc3033f5 <+165>: callq 0x7f0cfc319420 <g_strdup_printf> 0x00007f0cfc3033fa <+170>: mov 0xc(%rsp),%esi 0x00007f0cfc3033fe <+174>: mov %rax,%r14 0x00007f0cfc303401 <+177>: xor %ecx,%ecx 0x00007f0cfc303403 <+179>: mov %rax,%rdx 0x00007f0cfc303406 <+182>: mov %rbp,%rdi 0x00007f0cfc303409 <+185>: callq 0x7f0cfc302df0 <g_log_default_handler> 0x00007f0cfc30340e <+190>: mov %r14,%rdi 0x00007f0cfc303411 <+193>: callq 0x7f0cfc302160 <g_free> 0x00007f0cfc303416 <+198>: orl $0x2,0xc(%rsp) 0x00007f0cfc30341b <+203>: movslq 0xc(%rsp),%r15 0x00007f0cfc303420 <+208>: mov $0x40,%r14d 0x00007f0cfc303426 <+214>: jmp 0x7f0cfc303439 <g_logv+233> 0x00007f0cfc303428 <+216>: nopl 0x0(%rax,%rax,1) 0x00007f0cfc303430 <+224>: test %r14d,%r14d 0x00007f0cfc303433 <+227>: je 0x7f0cfc30358f <g_logv+575> 0x00007f0cfc303439 <+233>: sub $0x1,%r14d 0x00007f0cfc30343d <+237>: bt %r14,%r15 0x00007f0cfc303441 <+241>: jae 0x7f0cfc303430 <g_logv+224> 0x00007f0cfc303443 <+243>: mov %ebx,%eax 0x00007f0cfc303445 <+245>: and $0x1,%ebx 0x00007f0cfc303448 <+248>: mov %r15,%r12 0x00007f0cfc30344b <+251>: and $0x2,%eax 0x00007f0cfc30344e <+254>: mov %ebx,0x2c(%rsp) 0x00007f0cfc303452 <+258>: mov %eax,0x28(%rsp) 0x00007f0cfc303456 <+262>: nopw %cs:0x0(%rax,%rax,1) 0x00007f0cfc303460 <+272>: mov $0x1,%r15d 0x00007f0cfc303466 <+278>: mov %r14d,%ecx 0x00007f0cfc303469 <+281>: shl %cl,%r15d 0x00007f0cfc30346c <+284>: test %r15d,0xc(%rsp) 0x00007f0cfc303471 <+289>: je 0x7f0cfc30356b <g_logv+539> 0x00007f0cfc303477 <+295>: lea 0x2dbd3a(%rip),%rdi # 0x7f0cfc5df1b8 <g_messages_lock> 0x00007f0cfc30347e <+302>: or 0x28(%rsp),%r15d 0x00007f0cfc303483 <+307>: or 0x2c(%rsp),%r15d 0x00007f0cfc303488 <+312>: callq 0x7f0cfc33b640 <g_mutex_lock> 0x00007f0cfc30348d <+317>: lea 0x2dbcec(%rip),%rdi # 0x7f0cfc5df180 <g_log_depth> 0x00007f0cfc303494 <+324>: callq 0x7f0cfc33b9f0 <g_private_get> 0x00007f0cfc303499 <+329>: lea 0x93d5e(%rip),%rdi # 0x7f0cfc3971fe 0x00007f0cfc3034a0 <+336>: test %rbp,%rbp 0x00007f0cfc3034a3 <+339>: mov %rax,%rbx 0x00007f0cfc3034a6 <+342>: cmovne %rbp,%rdi 0x00007f0cfc3034aa <+346>: callq 0x7f0cfc302720 <g_log_find_domain_L> 0x00007f0cfc3034af <+351>: mov %r15d,%edx 0x00007f0cfc3034b2 <+354>: lea 0x1(%rbx),%esi 0x00007f0cfc3034b5 <+357>: or $0x1,%edx 0x00007f0cfc3034b8 <+360>: test %ebx,%ebx 0x00007f0cfc3034ba <+362>: cmovne %edx,%r15d 0x00007f0cfc3034be <+366>: test %rax,%rax 0x00007f0cfc3034c1 <+369>: mov %esi,0x20(%rsp) 0x00007f0cfc3034c5 <+373>: je 0x7f0cfc303673 <g_logv+803> 0x00007f0cfc3034cb <+379>: mov 0x8(%rax),%ecx 0x00007f0cfc3034ce <+382>: lea 0x2db397(%rip),%rdx # 0x7f0cfc5de86c <g_log_always_fatal> 0x00007f0cfc3034d5 <+389>: lea -0x9dc(%rip),%r13 # 0x7f0cfc302b00 <_g_log_fallback_handler> 0x00007f0cfc3034dc <+396>: or (%rdx),%ecx 0x00007f0cfc3034de <+398>: mov %r15d,%edx 0x00007f0cfc3034e1 <+401>: or $0x2,%edx 0x00007f0cfc3034e4 <+404>: test %r15d,%ecx 0x00007f0cfc3034e7 <+407>: cmovne %edx,%r15d 0x00007f0cfc3034eb <+411>: xor %ecx,%ecx 0x00007f0cfc3034ed <+413>: mov %r15d,%esi 0x00007f0cfc3034f0 <+416>: and $0x1,%esi 0x00007f0cfc3034f3 <+419>: mov %esi,0x24(%rsp) 0x00007f0cfc3034f7 <+423>: je 0x7f0cfc3035c0 <g_logv+624> 0x00007f0cfc3034fd <+429>: lea 0x2dbcb4(%rip),%rdi # 0x7f0cfc5df1b8 <g_messages_lock> 0x00007f0cfc303504 <+436>: mov %rcx,0x18(%rsp) 0x00007f0cfc303509 <+441>: callq 0x7f0cfc33b670 <g_mutex_unlock> 0x00007f0cfc30350e <+446>: mov 0x20(%rsp),%esi 0x00007f0cfc303512 <+450>: lea 0x2dbc67(%rip),%rdi # 0x7f0cfc5df180 <g_log_depth> 0x00007f0cfc303519 <+457>: callq 0x7f0cfc33ba10 <g_private_set> 0x00007f0cfc30351e <+462>: mov 0x18(%rsp),%rcx 0x00007f0cfc303523 <+467>: mov 0x10(%rsp),%rdx 0x00007f0cfc303528 <+472>: mov %r15d,%esi 0x00007f0cfc30352b <+475>: mov %rbp,%rdi 0x00007f0cfc30352e <+478>: callq *%r13 0x00007f0cfc303531 <+481>: mov %r15d,%eax 0x00007f0cfc303534 <+484>: and $0x6,%eax 0x00007f0cfc303537 <+487>: cmp $0x2,%eax 0x00007f0cfc30353a <+490>: je 0x7f0cfc303610 <g_logv+704> 0x00007f0cfc303540 <+496>: and $0x2,%r15d 0x00007f0cfc303544 <+500>: je 0x7f0cfc30355d <g_logv+525> 0x00007f0cfc303546 <+502>: nopw %cs:0x0(%rax,%rax,1) 0x00007f0cfc303550 <+512>: mov 0x24(%rsp),%esi 0x00007f0cfc303554 <+516>: test %esi,%esi 0x00007f0cfc303556 <+518>: jne 0x7f0cfc3036c0 <g_logv+880> 0x00007f0cfc30355c <+524>: int3 => 0x00007f0cfc30355d <+525>: lea 0x2dbc1c(%rip),%rdi # 0x7f0cfc5df180 <g_log_depth> 0x00007f0cfc303564 <+532>: mov %ebx,%esi 0x00007f0cfc303566 <+534>: callq 0x7f0cfc33ba10 <g_private_set> 0x00007f0cfc30356b <+539>: test %r14d,%r14d 0x00007f0cfc30356e <+542>: jle 0x7f0cfc30358f <g_logv+575> 0x00007f0cfc303570 <+544>: sub $0x1,%r14d 0x00007f0cfc303574 <+548>: bt %r14,%r12 0x00007f0cfc303578 <+552>: jae 0x7f0cfc30358a <g_logv+570> 0x00007f0cfc30357a <+554>: jmpq 0x7f0cfc303460 <g_logv+272> 0x00007f0cfc30357f <+559>: nop 0x00007f0cfc303580 <+560>: sub $0x1,%r14d 0x00007f0cfc303584 <+564>: bt %r14,%r12 0x00007f0cfc303588 <+568>: jb 0x7f0cfc3035b0 <g_logv+608> 0x00007f0cfc30358a <+570>: test %r14d,%r14d 0x00007f0cfc30358d <+573>: jne 0x7f0cfc303580 <g_logv+560> 0x00007f0cfc30358f <+575>: mov 0x10(%rsp),%rdi 0x00007f0cfc303594 <+580>: callq 0x7f0cfc302160 <g_free> 0x00007f0cfc303599 <+585>: add $0x78,%rsp 0x00007f0cfc30359d <+589>: pop %rbx 0x00007f0cfc30359e <+590>: pop %rbp 0x00007f0cfc30359f <+591>: pop %r12 0x00007f0cfc3035a1 <+593>: pop %r13 0x00007f0cfc3035a3 <+595>: pop %r14 0x00007f0cfc3035a5 <+597>: pop %r15 0x00007f0cfc3035a7 <+599>: retq 0x00007f0cfc3035a8 <+600>: nopl 0x0(%rax,%rax,1) 0x00007f0cfc3035b0 <+608>: test %r14d,%r14d 0x00007f0cfc3035b3 <+611>: jns 0x7f0cfc303460 <g_logv+272> 0x00007f0cfc3035b9 <+617>: jmp 0x7f0cfc30358f <g_logv+575> 0x00007f0cfc3035bb <+619>: nopl 0x0(%rax,%rax,1) 0x00007f0cfc3035c0 <+624>: test %r15d,%r15d 0x00007f0cfc3035c3 <+627>: je 0x7f0cfc303660 <g_logv+784> 0x00007f0cfc3035c9 <+633>: test %rax,%rax 0x00007f0cfc3035cc <+636>: nopl 0x0(%rax) 0x00007f0cfc3035d0 <+640>: je 0x7f0cfc303660 <g_logv+784> 0x00007f0cfc3035d6 <+646>: mov 0x10(%rax),%rax 0x00007f0cfc3035da <+650>: test %rax,%rax 0x00007f0cfc3035dd <+653>: jne 0x7f0cfc3035f1 <g_logv+673> 0x00007f0cfc3035df <+655>: jmp 0x7f0cfc303660 <g_logv+784> 0x00007f0cfc3035e1 <+657>: nopl 0x0(%rax) 0x00007f0cfc3035e8 <+664>: mov 0x18(%rax),%rax 0x00007f0cfc3035ec <+668>: test %rax,%rax 0x00007f0cfc3035ef <+671>: je 0x7f0cfc303660 <g_logv+784> 0x00007f0cfc3035f1 <+673>: mov 0x4(%rax),%edx 0x00007f0cfc3035f4 <+676>: and %r15d,%edx 0x00007f0cfc3035f7 <+679>: cmp %edx,%r15d 0x00007f0cfc3035fa <+682>: jne 0x7f0cfc3035e8 <g_logv+664> 0x00007f0cfc3035fc <+684>: mov 0x10(%rax),%rcx 0x00007f0cfc303600 <+688>: mov 0x8(%rax),%r13 0x00007f0cfc303604 <+692>: jmpq 0x7f0cfc3034fd <g_logv+429> 0x00007f0cfc303609 <+697>: nopl 0x0(%rax) 0x00007f0cfc303610 <+704>: mov 0x2dbb41(%rip),%rax # 0x7f0cfc5df158 <fatal_log_func> 0x00007f0cfc303617 <+711>: test %rax,%rax 0x00007f0cfc30361a <+714>: je 0x7f0cfc303540 <g_logv+496> 0x00007f0cfc303620 <+720>: mov %r15d,%esi 0x00007f0cfc303623 <+723>: mov 0x2dbb26(%rip),%rcx # 0x7f0cfc5df150 <fatal_log_data> 0x00007f0cfc30362a <+730>: mov 0x10(%rsp),%rdx 0x00007f0cfc30362f <+735>: mov %rbp,%rdi 0x00007f0cfc303632 <+738>: callq *%rax 0x00007f0cfc303634 <+740>: and $0x2,%r15d 0x00007f0cfc303638 <+744>: je 0x7f0cfc30355d <g_logv+525> 0x00007f0cfc30363e <+750>: test %eax,%eax 0x00007f0cfc303640 <+752>: jne 0x7f0cfc303550 <g_logv+512> 0x00007f0cfc303646 <+758>: lea 0x2dbb33(%rip),%rdi # 0x7f0cfc5df180 <g_log_depth> 0x00007f0cfc30364d <+765>: mov %ebx,%esi 0x00007f0cfc30364f <+767>: callq 0x7f0cfc33ba10 <g_private_set> 0x00007f0cfc303654 <+772>: jmpq 0x7f0cfc30356b <g_logv+539> 0x00007f0cfc303659 <+777>: nopl 0x0(%rax) 0x00007f0cfc303660 <+784>: mov 0x2dbaf9(%rip),%rcx # 0x7f0cfc5df160 <default_log_data> 0x00007f0cfc303667 <+791>: mov 0x2db462(%rip),%r13 # 0x7f0cfc5dead0 <default_log_func> 0x00007f0cfc30366e <+798>: jmpq 0x7f0cfc3034fd <g_logv+429> 0x00007f0cfc303673 <+803>: mov $0x5,%ecx 0x00007f0cfc303678 <+808>: jmpq 0x7f0cfc3034ce <g_logv+382> 0x00007f0cfc30367d <+813>: mov 0x8(%r14),%esi 0x00007f0cfc303681 <+817>: jmpq 0x7f0cfc3033d8 <g_logv+136> 0x00007f0cfc303686 <+822>: mov 0x10(%r14),%rdi 0x00007f0cfc30368a <+826>: mov 0x10(%rsp),%rsi 0x00007f0cfc30368f <+831>: callq 0x7f0cfc30b3f0 <g_pattern_match_simple> 0x00007f0cfc303694 <+836>: test %eax,%eax 0x00007f0cfc303696 <+838>: je 0x7f0cfc30367d <g_logv+813> 0x00007f0cfc303698 <+840>: mov (%r14),%rdi 0x00007f0cfc30369b <+843>: callq 0x7f0cfc302160 <g_free> 0x00007f0cfc3036a0 <+848>: mov 0x10(%r14),%rdi 0x00007f0cfc3036a4 <+852>: callq 0x7f0cfc302160 <g_free> 0x00007f0cfc3036a9 <+857>: mov %r14,%rdi 0x00007f0cfc3036ac <+860>: callq 0x7f0cfc302160 <g_free> 0x00007f0cfc3036b1 <+865>: mov 0x10(%rsp),%rdi 0x00007f0cfc3036b6 <+870>: callq 0x7f0cfc302160 <g_free> 0x00007f0cfc3036bb <+875>: jmpq 0x7f0cfc30336b <g_logv+27> 0x00007f0cfc3036c0 <+880>: callq 0x7f0cfc2ce130 <abort@plt> End of assembler dump. Empathy at the moment of crash had 604 files opened of form .cache/folks/avatars/.goutputstream-...
Re-assigning to folks as it's opening files from Folks's cache.
Created attachment 273652 [details] [review] core: Rate-limit AvatarCache.store_avatar() to prevent FD exhaustion If connecting to a new EDS address book, or doing something else which may cause a torrent of AvatarCache.store_avatar() calls, it is possible to hit the operating system’s file descriptor limit, which causes further store operations to fail. Implement a simple FIFO rate limit on concurrent AvatarCache.store_avatar() calls to try and ensure this won’t happen. It is still possible if the process calls store_avatar() several times while already near the FD limit, but then failure is pretty inevitable anyway, and is already handled gracefully. The changes are implemented in a self-contained wrapper function around store_avatar(), and only result in memory allocations in the queueing case. A test case is included. This does not affect the AvatarCache API or ABI.
This is caused by too many concurrent calls to AvatarCache.store_avatar(), which then opens two FDs (one to read the avatar from its current location, which is probably actually a network socket; and one to store it locally on disk). These FDs are closed correctly afterwards, but if too many operations are started in parallel, FD exhaustion will occur. The above is a simple patch to implement FIFO rate limiting on AvatarCache.store_avatar(). It includes a test case (shock! horror!). What this patch does *not* fix is any case in Empathy where AvatarCache.load_avatar() is called many times in parallel. Any FD exhaustion occurring as a result of that can’t be fixed in folks because folks returns a LoadableIcon — the g_loadable_icon_load() call will be inside Empathy somewhere. I haven’t investigated whether this could actually be a problem in Empathy though. Certainly the stack trace in comment #0 shows the problem being caused by AvatarCache.store_avatar() calls. (Thanks for the detailed bug report, by the way, Maciej!) Sorry it took so long to get round to this. I was hoping to avoid fixing it by eliminating AvatarCache entirely (it should really be implemented in EDS and Tracker, rather than in folks), but that’s a much bigger job.
Created attachment 273653 [details] [review] core: Rate-limit AvatarCache.store_avatar() to prevent FD exhaustion If connecting to a new EDS address book, or doing something else which may cause a torrent of AvatarCache.store_avatar() calls, it is possible to hit the operating system’s file descriptor limit, which causes further store operations to fail. Implement a simple FIFO rate limit on concurrent AvatarCache.store_avatar() calls to try and ensure this won’t happen. It is still possible if the process calls store_avatar() several times while already near the FD limit, but then failure is pretty inevitable anyway, and is already handled gracefully. The changes are implemented in a self-contained wrapper function around store_avatar(), and only result in memory allocations in the queueing case. A test case is included. This does not affect the AvatarCache API or ABI.
Review of attachment 273653 [details] [review]: Looks good to me.
Attachment 273653 [details] pushed as 2001d7a - core: Rate-limit AvatarCache.store_avatar() to prevent FD exhaustion