Summary: | [GTK] Subprocess leak | ||
---|---|---|---|
Product: | WebKit | Reporter: | Michael Catanzaro <mcatanzaro> |
Component: | WebKitGTK | Assignee: | Nobody <webkit-unassigned> |
Status: | NEW --- | ||
Severity: | Normal | CC: | bugs-noreply, clopez, mcatanzaro |
Priority: | P2 | ||
Version: | Other | ||
Hardware: | PC | ||
OS: | Linux |
Description
Michael Catanzaro
2016-06-17 20:53:47 PDT
Plot twist: I closed Epiphany, and all of the above processes terminated. (I had assumed they were from some previously-closed instance of Epiphany.) So somehow we got one UI process with two network processes, and a bunch of web processes that did not correspond to any open tabs. Looking at the output of "pstree -pa" it looks like all the WebKit process inherit from pid1 rather than from the UI process (epiphany or minibrowser). I mean when everything is working as expected. So unless I'm missing something, it don't looks like the webkit process are childs of the UI process Yes, that's intentional; we spawn an intermediary process that spawns the real subprocess and then immediately quits, to ensure the real subprocess gets parented by pid 1 so that the UI process doesn't have to worry about reaping it. To avoid that, we would have to pass G_SPAWN_DO_NOT_REAP_CHILD to g_spawn_async in ProcessLauncherGtk.cpp (and also reap the child processes when they quit). |