Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 456662 - sys-fs/udisks-2.0.91 - memory leak in /usr/lib/udisks2/udisksd (with kernel module "vhba" loaded)
Summary: sys-fs/udisks-2.0.91 - memory leak in /usr/lib/udisks2/udisksd (with kernel m...
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Core system (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Freedesktop bugs
Depends on:
Reported: 2013-02-10 15:10 UTC by PM
Modified: 2015-07-04 16:59 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---

udisksd backtrace (file_456662.txt,8.37 KB, text/plain)
2013-02-10 15:11 UTC, PM

Note You need to log in before you can comment on or make changes to this bug.
Description PM 2013-02-10 15:10:40 UTC
I was sitting down, browsing reddit, minding my own business, when suddenly I noticed the system is running out of ram. Turns out /usr/lib/udisks2/udisksd has helped itself to 1.7G of memory and was still going at it, at a rate of about 10MB/second. I managed to freeze the process and take a backtrace. I'll attach it in a moment.

Before that happened I was playing with app-cdr/cdemu, perhaps that's what triggered a bug. I'll try to reproduce it and let you know if I find something.

Reproducible: Didn't try

Portage 2.2.0_alpha161 (default/linux/amd64/13.0/desktop, gcc-4.7.2, glibc-2.16.0, 3.7.4-pf x86_64)
                        System Settings
System uname: Linux-3.7.4-pf-x86_64-Intel-R-_Core-TM-2_Quad_CPU_Q9450_@_2.66GHz-with-gentoo-2.2
KiB Mem:     4044780 total,    194336 free
KiB Swap:    4095996 total,   4056972 free
Timestamp of tree: Sun, 10 Feb 2013 14:00:01 +0000
ld GNU ld (GNU Binutils) 2.23.1
distcc 3.1 x86_64-pc-linux-gnu [disabled]
app-shells/bash:          4.2_p42
dev-java/java-config:     2.1.12-r1
dev-lang/python:          2.7.3-r3, 3.2.3-r2
dev-util/pkgconfig:       0.28
sys-apps/baselayout:      2.2
sys-apps/openrc:          0.11.8
sys-apps/sandbox:         2.6
sys-devel/autoconf:       2.13, 2.69
sys-devel/automake:       1.4_p6-r1, 1.9.6-r3, 1.11.6, 1.12.6, 1.13.1
sys-devel/binutils:       2.23.1
sys-devel/gcc:            4.6.3, 4.7.2
sys-devel/gcc-config:     1.8
sys-devel/libtool:        2.4.2
sys-devel/make:           3.82-r4
sys-kernel/linux-headers: 3.7 (virtual/os-headers)
sys-libs/glibc:           2.16.0
Repositories: gentoo multimedia roslin sunrise bitcoin steam-overlay dupa
Installed sets: @system
ACCEPT_KEYWORDS="amd64 ~amd64"
CFLAGS="-O2 -march=native -pipe -ggdb"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/polkit-1/actions /usr/share/themes/oxygen-gtk/gtk-2.0 /usr/share/themes/oxygen-gtk/gtk-3.0"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -march=native -pipe -ggdb"
EMERGE_DEFAULT_OPTS="--keep-going --quiet-build=n"
FCFLAGS="-O2 -march=native -pipe -ggdb"
FEATURES="assume-digests binpkg-logs compressdebug config-protect-if-modified distlocks ebuild-locks fixlafiles installsources merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS="-O2 -march=native -pipe -ggdb"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTDIR_OVERLAY="/usr/local/portage/layman/multimedia /usr/local/portage/layman/roslin /usr/local/portage/layman/sunrise /usr/local/portage/layman/bitcoin /usr/local/portage/layman/steam /usr/local/portage/moje"
USE="X Xaw3d a52 aac aalib acl acpi alsa amd64 amr amrnb amrwb apng async audiofile automount avahi avresample bash-completion berkdb bfq bineditor bluetooth bluray branding bzip2 cairo cdda cddb cdparanoia cdr chdir clang cli consolekit cracklib crypt css cuda cups curl cxx dbus dirac disk-partition divx djvu dri dts dvd dvdr editor emboss emovix enca encode exchange exif faac faad fam fat ffmpeg fftw firefox firefox3 flac fontconfig fortran g3dvl gd gdbm geoip gif glitz gmedia gnuplot gphoto2 gpm gtk hddtemp iconv id3 id3tag imagemagick inotify iostats ipod jpeg kde kde4 kdehiddenvisibility kipi kompare kpathsea kqemu ladspa lame laptop lastfm latex lcms libass libcaca libnotify libsamplerate lm_sensors lzma lzo mad matroska midi mjpeg mmap mmx mmxext mng modules mp3 mp3tunes mp4 mpeg mplayer mtp mudflap multilib musicbrainz ncurses networkmanager nls nptl nsplugin ntfs nvidia ogg okteta openal opencl opencore-amr opengl openmp optimized-qmake pam pango pch pcre pdf plasma png policykit portage ppds private-headers pulseaudio qt3 qt3support qt4 qthelp raster readline realmedia roe scanner schroedinger sdl secure-delete semantic-desktop sensord session shaders slang sndfile solver soundtouch sourceview sparse spell sse sse2 sse3 sse4 sse41 sse4_1 sse4a ssl ssse3 startup-notification suid svg swat symlink syslog tcpd theora threads tiff truetype udev udisks unicode upnp upower usb vaapi vamp vcd vdpau vorbis wifi wmf wmp wxwidgets wxwindows x264 xcb xcomposite xml xscreensaver xv xvid xvmc zlib" ABI_X86="64" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan sheets stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="pl" PHP_TARGETS="php5-3" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_2" QEMU_SOFTMMU_TARGETS="x86_64 i386" QEMU_USER_TARGETS="x86_64 i386" RUBY_TARGETS="ruby18 ruby19" USERLAND="GNU" VIDEO_CARDS="nvidia" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"

                        Package Settings

sys-fs/udisks-2.0.91 was built with the following:
USE="crypt gptfdisk introspection -debug (-selinux) (-systemd)"
Comment 1 PM 2013-02-10 15:11:16 UTC
Created attachment 338520 [details]
udisksd backtrace
Comment 2 PM 2013-02-10 15:19:35 UTC
It's definitely triggered by cdemu, I killed udisksd and restarted it manually and the console immediately got flooded with this:

16:18:34.732:[19979]:[INFO]: Cleanup check end [udiskscleanup.c:454, udisks_cleanup_check_in_thread()]
16:18:34.735:[19948]:[DEBUG]: uevent change /sys/devices/platform/vhba/host10/target10:0:0/10:0:0:0/block/sr1 [udiskslinuxprovider.c:903, udisks_linux_provider_handle_uevent()]
16:18:34.736:[19979]:[INFO]: Cleanup check start [udiskscleanup.c:416, udisks_cleanup_check_in_thread()]
16:18:34.736:[19979]:[INFO]: Cleanup check end [udiskscleanup.c:454, udisks_cleanup_check_in_thread()]
16:18:34.739:[19948]:[DEBUG]: uevent change /sys/devices/platform/vhba/host10/target10:0:0/10:0:0:0/block/sr1 [udiskslinuxprovider.c:903, udisks_linux_provider_handle_uevent()]
16:18:34.739:[19979]:[INFO]: Cleanup check start [udiskscleanup.c:416, udisks_cleanup_check_in_thread()]
16:18:34.739:[19979]:[INFO]: Cleanup check end [udiskscleanup.c:454, udisks_cleanup_check_in_thread()]
16:18:34.742:[19948]:[DEBUG]: uevent change /sys/devices/platform/vhba/host10/target10:0:0/10:0:0:0/block/sr1 [udiskslinuxprovider.c:903, udisks_linux_provider_handle_uevent()]
16:18:34.742:[19979]:[INFO]: Cleanup check start [udiskscleanup.c:416, udisks_cleanup_check_in_thread()]
16:18:34.743:[19979]:[INFO]: Cleanup check end [udiskscleanup.c:454, udisks_cleanup_check_in_thread()]
16:18:34.746:[19948]:[DEBUG]: uevent change /sys/devices/platform/vhba/host10/target10:0:0/10:0:0:0/block/sr1 [udiskslinuxprovider.c:903, udisks_linux_provider_handle_uevent()]
16:18:34.746:[19979]:[INFO]: Cleanup check start [udiskscleanup.c:416, udisks_cleanup_check_in_thread()]
16:18:34.746:[19979]:[INFO]: Cleanup check end [udiskscleanup.c:454, udisks_cleanup_check_in_thread()]
16:18:34.750:[19948]:[DEBUG]: uevent change /sys/devices/platform/vhba/host10/target10:0:0/10:0:0:0/block/sr1 [udiskslinuxprovider.c:903, udisks_linux_provider_handle_uevent()]
16:18:34.750:[19979]:[INFO]: Cleanup check start [udiskscleanup.c:416, udisks_cleanup_check_in_thread()]
16:18:34.750:[19979]:[INFO]: Cleanup check end [udiskscleanup.c:454, udisks_cleanup_check_in_thread()]
16:18:34.753:[19948]:[DEBUG]: uevent change /sys/devices/platform/vhba/host10/target10:0:0/10:0:0:0/block/sr1 [udiskslinuxprovider.c:903, udisks_linux_provider_handle_uevent()]
16:18:34.753:[19979]:[INFO]: Cleanup check start [udiskscleanup.c:416, udisks_cleanup_check_in_thread()]
16:18:34.753:[19979]:[INFO]: Cleanup check end [udiskscleanup.c:454, udisks_cleanup_check_in_thread()]
16:18:34.756:[19948]:[DEBUG]: uevent change /sys/devices/platform/vhba/host10/target10:0:0/10:0:0:0/block/sr1 [udiskslinuxprovider.c:903, udisks_linux_provider_handle_uevent()]
16:18:34.757:[19979]:[INFO]: Cleanup check start [udiskscleanup.c:416, udisks_cleanup_check_in_thread()]
16:18:34.757:[19979]:[INFO]: Cleanup check end [udiskscleanup.c:454, udisks_cleanup_check_in_thread()]
16:18:34.760:[19948]:[DEBUG]: uevent change /sys/devices/platform/vhba/host10/target10:0:0/10:0:0:0/block/sr1 [udiskslinuxprovider.c:903, udisks_linux_provider_handle_uevent()]
16:18:34.760:[19979]:[INFO]: Cleanup check start [udiskscleanup.c:416, udisks_cleanup_check_in_thread()]
16:18:34.760:[19979]:[INFO]: Cleanup check end [udiskscleanup.c:454, udisks_cleanup_check_in_thread()]
16:18:34.763:[19948]:[DEBUG]: uevent change /sys/devices/platform/vhba/host10/target10:0:0/10:0:0:0/block/sr1 [udiskslinuxprovider.c:903, udisks_linux_provider_handle_uevent()]
16:18:34.763:[19979]:[INFO]: Cleanup check start [udiskscleanup.c:416, udisks_cleanup_check_in_thread()]
16:18:34.763:[19979]:[INFO]: Cleanup check end [udiskscleanup.c:454, udisks_cleanup_check_in_thread()]
16:18:34.766:[19948]:[DEBUG]: uevent change /sys/devices/platform/vhba/host10/target10:0:0/10:0:0:0/block/sr1 [udiskslinuxprovider.c:903, udisks_linux_provider_handle_uevent()]
16:18:34.766:[19979]:[INFO]: Cleanup check start [udiskscleanup.c:416, udisks_cleanup_check_in_thread()]
16:18:34.766:[19979]:[INFO]: Cleanup check end [udiskscleanup.c:454, udisks_cleanup_check_in_thread()]
16:18:34.769:[19948]:[DEBUG]: uevent change /sys/devices/platform/vhba/host10/target10:0:0/10:0:0:0/block/sr1 [udiskslinuxprovider.c:903, udisks_linux_provider_handle_uevent()]
16:18:34.769:[19979]:[INFO]: Cleanup check start [udiskscleanup.c:416, udisks_cleanup_check_in_thread()]
16:18:34.770:[19979]:[INFO]: Cleanup check end [udiskscleanup.c:454, udisks_cleanup_check_in_thread()]
^C16:18:34.771:[19948]:[INFO]: Caught SIGINT. Initiating shutdown [main.c:83, on_sigint()]
16:18:34.771:[19979]:[INFO]: Exiting cleanup thread [udiskscleanup.c:314, udisks_cleanup_thread_func()]
16:18:34.773:[19948]:[NOTICE]: udisks daemon version 2.0.91 exiting

It also started allocating memory like before. /dev/sr1 is a device created by cdemu.
Comment 3 PM 2013-02-10 16:01:55 UTC
Ok, I found a way to reproduce it reliably now. Weirdly, it requires using KDE's device notification applet. You're gonna need: app-cdr/cdemu-daemon-2.0.0, app-cdr/cdemu-2.0.0, sys-fs/udisks-2.0.91, KDE 4.10 and some .iso image. As far as I can tell, any valid image will do.

1. make sure cdemu-daemon isn't running
2. $ cdemu load 0 <iso image>
3. KDE should pop up a notification applet saying that a device has been connected. Click the "eject" button on this applet.
4. $ cdemu unload 0

At this point udisksd will start allocating memory very rapidly. If you kill cdemu-daemon it will stop, but will not give back the memory it already allocated. You can now repeat the above steps without restarting the system or even udisksd and it will start leaking again.

I tried "ejecting" the device using the 'eject' command instead of KDE's applet, but couldn't reproduce it this way.
Comment 4 PM 2013-02-10 16:04:46 UTC
I forgot to mention: you also need the vhba kernel module from sys-fs/vhba-20120422-r1.
Comment 5 Samuli Suominen (RETIRED) gentoo-dev 2013-03-19 19:55:38 UTC
I've seen this before, according to some people at #systemd, this is because of the vhba kernel module
Alexandre, can you take a look as vhba maintainer?
Comment 6 Pacho Ramos gentoo-dev 2015-07-04 16:59:55 UTC
Please test with 2.1.6