Amarok is bugging udisks-daemon

Ralf Engels ralf-engels at gmx.de
Sun Jul 24 11:58:13 CEST 2011


Hi Andreas,

Previously Amarok was frequently checking the modification time of all
collection directories to check for changes.

Since 2.4.1 we are using the KDirWatcher. That's probably what you are
seeing.

The solution of constantly checking modification times is very
primitive.
The KDirWatcher is not much smarter it seems. For example it seems to
have a limit of around 8000 watched directories. It also takes ages to
recursively add some directories.

I would guess that the errors you are seeing are from this mechanism.
However I am just using it. Maybe you could talk to some KDE people.

Cheers,
Ralf


> Date: Sun, 24 Jul 2011 09:42:02 +0200
> From: Myriam Schweingruber <myriam at kde.org>
> Subject: Fwd: Amarok is bugging udisks-daemon
> To: Amarok Developers <amarok-devel at kde.org>
> Message-ID:
> 	<CAGzoOB87jPZ=LptGWvgPgxf2ZT9bqDQyWSaMhCnoKGJmeWQ83A at mail.gmail.com>
> Content-Type: text/plain; charset=UTF-8
> 
> FYI
> 
> Could somebody answer this? Don't forget to Cc the sender, he
> submitted this through the web interface.
> 
> Regards, Myriam
> 
> 
> ---------- Forwarded message ----------
> From: Andreas Roth <aroth at arsoft-online.com>
> Date: Fri, Jul 22, 2011 at 09:49
> Subject: Amarok is bugging udisks-daemon
> To: amarok at kde.org
> 
> 
> Hi,
> 
> two or three days ago i noticed that the udisks-daemon is constantly active.
> It takes about 1-5% of CPU. At the same time the dbus-daemon also takes the
> same amount of CPU.
> I found out that these daemons are quite active only when amarok is running.
> When i close amarok, the daemon activity returns to normal (nearly zero). I
> also tried to disable all plugins in amarok and disable the 'watch for file
> changes' on the collection scanner.
> I've run a strace against the udisks-daemon and writes the following message
> to stderr:
> write(2, "\n** (udisks-daemon:2797): WARNING **: Property get or set does not
> have an interface string as first arg\n\n", 106)
> The other functions which are repeated are:
> ...
> sendmsg(3, {msg_name(0)=NULL,
> msg_iov(2)=[{"l\2\1\1\10\0\0\0\30\216\f\0\37\0\0\0\6\1s\0\5\0\0\0:1.69\0\0\0\5\1u\0\202\355\0\0\10\1g\0\1v\0\0",
> 48}, {"\1b\0\0\0\0\0\0", 8}], msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) =
> 56
> recvmsg(3, {msg_name(0)=NULL,
> msg_iov(1)=[{"l\1\0\0010\0\0\0\203\355\0\0\236\0\0\0\1\1o\0$\0\0\0/org/freedesktop/UDisks/devices/sda5\0\0\0\0\6\1s\0\26\0\0\0org.freedesktop.UDisks\0\0\2\1s\0\37\0\0\0org.freedesktop.DBus.Properties\0\3\1s\0\3\0\0\0Get\0\0\0\0\0\10\1g\0\2ss\0\7\1s\0\5\0\0\0:1.69\0\0\0\35\0\0\0org.freedesktop.UDisks.Device\0\0\0\7\0\0\0IdUsage\0OpticalDisc\0\0e\0\0\1\0\1?
> \0\0\0\21\2\0\0\236\0\0\0\1\1o\0#\0\0\0/org/freedesktop/UDisks/devices/sdb\0\0\0\0\0\6\1s\0\26\0\0\0org.freedesktop.UDisks\0\0\2\1s\0\37\0\0\0org.freedesktop.DBus.Properties\0\3\1s\0\3\0\0\0Get\0\0\0\0\0\10\1g\0\2ss\0\7\1s\0\5\0\0\0:1.22\0\0\0\35\0\0\0org.freedesktop.UDisks.Device\0\0\0\26\0\0\0DeviceIsMediaAvailable\0\0\0\0\1\0\1@\0\0\0\1\32\0\0\0\0\0\0\210H\267G\316\177\0\0\210H\267G\316\177\0\0
> \32\7\2\0\0\0\0
> \32\7\2\0\0\0\0devices/sdb\0\0\0\0\0\6\1s\0\26\0\0\0org.freedesktop.UDisks\0\0\2\1s\0\37\0\0\0org.freedesktop.DBus.Properties\0\3\1s\0\3\0\0\0Get\0\0\0\0\0\10\1g\0\2ss\0\7\1s\0\5\0\0\0:1.41\0\0\0\35\0\0\0org.freedesktop.UDisks.Device\0\0\0\27\0\0\0DriveMediaCompatibility\0\0\0\236\0\0\0\1\1o\0#\0\0\0/org/freedesktop/UDisks/devices/sdb\0\0\0\0\0\6\1s\0\26\0\0\0org.freedesktop.UDisks\0\0\2\1s\0\37\0\0\0org.freedesktop.DBus.Properties\0\3\1s\0\3\0\0\0Get\0\0\0\0\0\10\1g\0\2ss\0\7\1s\0\5\0\0\0\0\0\7\1s\0\5\0\0\0:1.39\0\0\0\35\0\0\0org.freedesktop.UDisks.Device\0\0\0\r\0\0\0DeviceIsDrive\0l\1\0\1@\0\0\0\214'\0\0\236\0\0\0\1\1o\0#\0\0\0/org/freedesktop/UDisks/devices/sdb\0\0\0\0\0\6\1s\0\26\0\0\0o"...,
> 2048}], msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 224
> recvmsg(3, 0x7fffab844e40, MSG_CMSG_CLOEXEC) = -1 EAGAIN (Resource temporarily
> unavailable)
> sendmsg(3, {msg_name(0)=NULL,
> msg_iov(2)=[{"l\2\1\1\r\0\0\0\31\216\f\0\37\0\0\0\6\1s\0\5\0\0\0:1.69\0\0\0\5\1u\0\203\355\0\0\10\1g\0\1v\0\0",
> 48}, {"\1s\0\0\4\0\0\0raid\0", 13}], msg_controllen=0, msg_flags=0},
> MSG_NOSIGNAL) = 61
> recvmsg(3, {msg_name(0)=NULL,
> msg_iov(1)=[{"l\1\0\1\0\0\0\0\205\355\0\0\226\0\0\0\1\1o\0$\0\0\0/org/freedesktop/UDisks/devices/sdb8\0\0\0\0\6\1s\0\26\0\0\0org.freedesktop.UDisks\0\0\2\1s\0\37\0\0\0org.freedesktop.DBus.Properties\0\3\1s\0\6\0\0\0GetAll\0\0\7\1s\0\5\0\0\0:1.69\0\0\0:1.69\0\0\0\35\0\0\0org.freedesktop.UDisks.Device\0\0\0\7\0\0\0IdUsage\0\0pticalDisc\0\0e\0\0\1\0\1?
> \0\0\0\21\2\0\0\236\0\0\0\1\1o\0#\0\0\0/org/freedesktop/UDisks/devices/sdb\0\0\0\0\0\6\1s\0\26\0\0\0org.freedesktop.UDisks\0\0\2\1s\0\37\0\0\0org.freedesktop.DBus.Properties\0\3\1s\0\3\0\0\0Get\0\0\0\0\0\10\1g\0\2ss\0\7\1s\0\5\0\0\0:1.22\0\0\0\35\0\0\0org.freedesktop.UDisks.Device\0\0\0\26\0\0\0DeviceIsMediaAvailable\0\0\0\0\1\0\1@\0\0\0\1\32\0\0\0\0\0\0\210H\267G\316\177\0\0\210H\267G\316\177\0\0
> \32\7\2\0\0\0\0
> \32\7\2\0\0\0\0devices/sdb\0\0\0\0\0\6\1s\0\26\0\0\0org.freedesktop.UDisks\0\0\2\1s\0\37\0\0\0org.freedesktop.DBus.Properties\0\3\1s\0\3\0\0\0Get\0\0\0\0\0\10\1g\0\2ss\0\7\1s\0\5\0\0\0:1.41\0\0\0\35\0\0\0org.freedesktop.UDisks.Device\0\0\0\27\0\0\0DriveMediaCompatibility\0\0\0\236\0\0\0\1\1o\0#\0\0\0/org/freedesktop/UDisks/devices/sdb\0\0\0\0\0\6\1s\0\26\0\0\0org.freedesktop.UDisks\0\0\2\1s\0\37\0\0\0org.freedesktop.DBus.Properties\0\3\1s\0\3\0\0\0Get\0\0\0\0\0\10\1g\0\2ss\0\7\1s\0\5\0\0\0\0\0\7\1s\0\5\0\0\0:1.39\0\0\0\35\0\0\0org.freedesktop.UDisks.Device\0\0\0\r\0\0\0DeviceIsDrive\0l\1\0\1@\0\0\0\214'\0\0\236\0\0\0\1\1o\0#\0\0\0/org/freedesktop/UDisks/devices/sdb\0\0\0\0\0\6\1s\0\26\0\0\0o"...,
> 2048}], msg_controllen=0, msg_flags=MSG_CMSG_CLOEXEC}, MSG_CMSG_CLOEXEC) = 168
> recvmsg(3, 0x7fffab844e40, MSG_CMSG_CLOEXEC) = -1 EAGAIN (Resource temporarily
> unavailable)
> sendmsg(3, {msg_name(0)=NULL,
> msg_iov(2)=[{"l\3\1\1d\0\0\0\32\216\f\0W\0\0\0\6\1s\0\5\0\0\0:1.69\0\0\0\4\1s\0(\0\0\0org.freedesktop.DBus.Error.UnknownMethod\0\0\0\0\0\0\0\0\5\1u\0\205\355\0\0\10\1g\0\1s\0\0",
> 104}, {"_\0\0\0Method \"GetAll\" with signature \"\" on interface
> \"org.freedesktop.DBus.Properties\" doesn't exist\n\0", 100}],
> msg_controllen=0, msg_flags=0}, MSG_NOSIGNAL) = 204
> ...
> 
> What's really strange to me it the response from udisks-daemon telling the
> GetAll method does not exist on org.freedesktop.DBus.Properties. What does
> this mean?
> 
> Regards,
> Andreas
> 
> _______________________________________________
> Amarok mailing list
> Amarok at kde.org
> https://mail.kde.org/mailman/listinfo/amarok
> 
> 
> 
> -- 
> Protect your freedom and join the Fellowship of FSFE:
> http://www.fsfe.org
> Please don't send me proprietary file formats,
> use ISO standard ODF instead (ISO/IEC 26300)
> 




More information about the Amarok-devel mailing list