Closed Bug 822031 Opened 13 years ago Closed 13 years ago

OOM caused by browser process can result in only the main process getting the low-memory event

Categories

(Firefox OS Graveyard :: General, defect)

defect
Not set
normal

Tracking

(Not tracked)

RESOLVED INVALID

People

(Reporter: bjacob, Unassigned)

Details

In bug 820217 we have a game that tries to load 280 M of WebGL textures, resulting in an OOM crash. The problem is that while this OOM is caused by work done by the browser process, only the _main_ process receives a low-memory event. How about saying that as soon at the main process receives a low-memory event, it should propagate it to all other processes immediately? Should that be generalized to saying that as soon as _any_ process receives a low-memory event, it should propagate it to all other processes? How should the propagation be achieved? A key requirement is it happening as fast as possible. Maybe a signal?
> How about saying that as soon at the main process receives a low-memory event, it should propagate > it to all other processes immediately? Each process listens for low memory events itself. That's why the MemoryPressureRunnable at the top of GonkMemoryPressureRunnable fires a "low-memory-no-forward" event. The "no-forward" part indicates that ContentParent shouldn't forward the event to the children. We have each process listen for low-memory instead of having the parent forward the memory-pressure events down to its children specifically because we want to get these events out to the relevant processes as quickly as possible. What I suspect is happening is that the browser is OOMing too quickly for it to notice that it's run out of memory before it crashes. As such, I suspect this bug is invalid.
> That's why the MemoryPressureRunnable at the top of GonkMemoryPressureRunnable Sorry, that should be widget/gonk/GonkMemoryPressureMonitoring.cpp.
OK, that makes sense. It would be nice if we could consistently ensure that processes get a low-memory notification early enough before getting killed, but that's a hard problem to solve.
Status: NEW → RESOLVED
Closed: 13 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.