Bug 313888 - Solid::Device( "/org/kde/fuse/run/vmblock-fuse" ).parent() returns same device, causing infinite loops in Amarok (ivan/* kdelibs branches)
Summary: Solid::Device( "/org/kde/fuse/run/vmblock-fuse" ).parent() returns same devic...
Status: RESOLVED INTENTIONAL
Alias: None
Product: solid
Classification: Frameworks and Libraries
Component: libsolid (show other bugs)
Version: 4.9.98 RC3
Platform: Ubuntu Linux
: NOR major
Target Milestone: ---
Assignee: Alex Fiestas
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-01-25 16:51 UTC by Matt Ruffalo
Modified: 2013-02-27 16:44 UTC (History)
6 users (show)

See Also:
Latest Commit:
Version Fixed In:


Attachments
xz'd amarok --debug output (2.64 KB, application/octet-stream)
2013-01-25 16:51 UTC, Matt Ruffalo
Details
Device notifier screenshot (12.33 KB, image/jpeg)
2013-01-25 23:06 UTC, Matt Ruffalo
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Matt Ruffalo 2013-01-25 16:51:29 UTC
Created attachment 76717 [details]
xz'd amarok --debug output

I have VMware Workstation installed on all of my machines, and it seems that a recent update to Kubuntu 13.04 (KDE 4.9.98) casues Amarok to enter an infinite loop on startup whenever VMware's vmblock FUSE filesystem is mounted at /run/vmblock-fuse:

$ mount | grep vmware
vmware-vmblock on /run/vmblock-fuse type fuse.vmware-vmblock (rw,nosuid,nodev,default_permissions,allow_other)

When Amarok is started with this FUSE filesystem mounted, it spawns a subprocess that indefinitely uses 100% CPU.

I ran amarok --debug and captured its stderr output (xz compressed and attached here), and this last line repeats forever:

Device "/org/kde/fuse/run/vmblock-fuse" not identified iPod-like, trying parent device

I removed all but the first occurrence of this message in the attached --debug log. Leaving amarok open for ~5 seconds produced 160689 copies of that message.

Unmounting this FUSE filesystem allows Amarok to start correctly, but I have to do this on every boot and I'm concerned that VMware Workstation may misbehave in some serious way without this FUSE mount.
Comment 1 Myriam Schweingruber 2013-01-25 17:38:48 UTC
Moving to component Collections//ipod and iPhone, as fuse is typically used in these devices
Comment 2 Matt Ruffalo 2013-01-25 22:29:19 UTC
This also occurs with a plain sshfs mount; VMware's vmblock-fuse filesystem doesn't seem to be special. Same infinitely-looping message.
Comment 3 Matt Ruffalo 2013-01-25 23:06:02 UTC
Created attachment 76725 [details]
Device notifier screenshot
Comment 4 Matt Ruffalo 2013-01-25 23:07:44 UTC
(In reply to comment #3)
> Created attachment 76725 [details]
> Device notifier screenshot

Ah, interesting: sshfs and VMware vmblock-fuse mounts now appear under Device Notifier. I'm not sure what package update caused this to start happening (and I'd like to disable it), but Amarok's iPod collection plugin still shouldn't loop infinitely when examining these devices.
Comment 5 Matěj Laitl 2013-01-26 10:15:46 UTC
Wow, this is actually a serious bug in Solid, device.parent() should never return the same device, it should return an invalid device in case of no parent. (at least that's how all other Solid backends behave)

Let's try to solve this in KDE 4.10, working-around it in Amarok would be easy, but I'd prefer not to, because this behaviour can break much more apps.
Comment 6 Albert Astals Cid 2013-01-26 12:36:04 UTC
Is this new behaviour in 4.10?
Which solid code is responsible of that? Is this using solid code we ship in the SC or some externally distributed solid backend?
Comment 7 Alex Fiestas 2013-01-26 13:36:50 UTC
You are probably using kdelibs with the patches for plasma active, which include a backend for fuse we are not shipping in the sc.

If you are, assign this bug to Ivan.
Comment 8 Matěj Laitl 2013-01-26 14:58:09 UTC
Okay, the string /org/kde/fuse exists only in the following branches:
ivan/fuse-support
ivan/kparts-activities
ivan/solid-fuse-access

so this was rather a false alarm concerting the 4.10 release. Sorry about the fuss. Matt, you should've stated that you use special kdelibs right away.
Comment 9 Albert Astals Cid 2013-01-26 15:19:44 UTC
Unsubscribing the release-team
Comment 10 Matt Ruffalo 2013-01-26 15:39:31 UTC
(In reply to comment #8)
> Matt, you should've stated that you use special kdelibs right away.

Apologies; I wasn't aware of that. I'm using whatever ships with the current state of Kubuntu 13.04. I seem to repeatedly guess wrong about whether something is a KDE bug or specific to Kubuntu; I'll enter this on a Kubuntu bug tracker of some sort.
Comment 11 Matěj Laitl 2013-01-27 21:18:23 UTC
(In reply to comment #10)
> (In reply to comment #8)
> > Matt, you should've stated that you use special kdelibs right away.
> 
> Apologies; I wasn't aware of that. I'm using whatever ships with the current
> state of Kubuntu 13.04. I seem to repeatedly guess wrong about whether
> something is a KDE bug or specific to Kubuntu; I'll enter this on a Kubuntu
> bug tracker of some sort.

Please do. [1] confirms they add plasma-active patches to their kdelibs. OMG why?

@Ubuntu devs, why do you ship a rather experimental patches in a critical package like kdelibs?

[1] http://changelogs.ubuntu.com/changelogs/pool/main/k/kde4libs/kde4libs_4.9.98-0ubuntu2/changelog
Comment 12 Rohan Garg 2013-01-28 03:02:29 UTC
Uh oh ...
I talked to Marco Martin about which patches we should ship in our archives and he advised that we should be shipping this.

Seems like this one causes alot of issues, will revert it with today's upload, I apologise for the inconvenience.
Comment 13 Rohan Garg 2013-01-28 04:17:48 UTC
Uploaded : https://launchpad.net/ubuntu/+source/kde4libs/4:4.9.98-0ubuntu3

Fix should make its way to you in a couple of hours or so, thanks for reporting the bug and making sure this does not get shipped in the final release.
Comment 14 Alex Fiestas 2013-02-27 16:31:49 UTC
Changed component to libsolid (better than general)
Comment 15 Ivan Čukić 2013-02-27 16:44:19 UTC
The FUSE branch is obsolete (unused, unneeded) even for Plasma Active these days.

If was used for encfs and private activities, and since those no longer exist, the branches are dead.