GNOME Bugzilla – Bug 726122
g_volume_mount() doesn't close error pipe when spawned mount command is finished
Last modified: 2014-03-13 12:06:14 UTC
eject_mount_do() function creates new task to notify caller when asynchronous mount operation is finished. Task has two attached sources: (1) error_channel_source which tracks error pipe of spawned mount command (2) command pid watch source. Both sources has references to task. So there are 3 references to task. When mount command is finished and eject_mount_cb() is called then two of references are released: (1) by g_object_unref(task) call; (2) when child_watch source is destroyed from context. Error channel source reference is not released so: (1) task is not released; (2) eject_mount_op_free() callback is not called; (3) error stream pipe is not closed. On my machine it also leads to high CPU usage.
hi. Bug 724916 has some patches that I think will fix this issue. Can you please test them? *** This bug has been marked as a duplicate of bug 724916 ***
Tested with patches from bug 724916. Issue is fixed.