Closed Bug 867813 Opened 11 years ago Closed 10 years ago

ABORT: corrupted actor state: file ipc/ipdl/PGrallocBuffer.cpp, line 34

Categories

(Firefox OS Graveyard :: General, defect)

x86_64
Linux
defect
Not set
normal

Tracking

(Not tracked)

RESOLVED WORKSFORME

People

(Reporter: dhylands, Unassigned)

References

Details

Lately, when killing a child process, I often see an ABORT in the main process and the main process restarts.

ABORT: corrupted actor state: file <leading-dir-removed>/ipc/ipdl/PGrallocBuffer.cpp, line 34

I see this on my unagi, running debug builds using master.
Master could be affected by gfx layer fefactoring.
Dave, is this the scenario where we kill a process because of the memory pressure or something like that?  Benoit, Bas, is this something that makes sense?
Flags: needinfo?
No memory pressure. I'm just launching a single app, and then when I decide to update it, it needs to kill the old app.

I'm seeing the ABORT when I kill the old app. Obviously, memory pressure is one of the common ways to trigger an app being killed, but in this case, it's just me killing it.

In particular, I'm doing:

    BUILD_APP_NAME=ds-test ./flash.sh gaia

which winds up doing:

    adb shell kill PID
Flags: needinfo?
I could also reproduced this issue in my leo device.
Can you put in the detailed STR?  I'm a bit fuzzy on the "kill the old app" - just doing the flash as above twice doesn't trigger this for me, but it seems that it's easy to reproduce for the others.
So I did the following today:

BRANCH=master ./config.sh unagi
./build.sh && ./flash.sh

Launch an app (I tried Gallery and Settings)

adb shell b2g-ps
adb shell kill PID

and I'm now seeing this everytime:

ABORT: bad Shmem: file /home/work/B2G-unagi/objdir-gecko-debug-birch/ipc/ipdl/PLayerTransactionParent.cpp, line 718

So it's crashing a little differently now than when I reported this problem. It's also crashing each and everytime, whereas a few days ago it was only crashing about 50% of the time.
Oh yeah - I was doing a build with:

export B2G_DEBUG=1

in my .userconfig (may or may not be relevant)
Still have trouble reproducing, but perhaps because I keep running into the crash in bug 868180 instead.
I get the same as in comment 6 all the time now, e.g. starting the camera app.

Also, we now consistently fail to allocate gralloc buffers, so we're effectively never using gralloc anymore, see bug 868556.
Depends on: 868556
Benoit, can you still get this crash?
Flags: needinfo?(bjacob)
"Corrupted actor state" means one of these use-after-free-of-IPDL-actor bugs that we had typically when we were using SurfaceDescriptors unsafely. 

I haven't seen such crashes in a very long time, and given how many similar crashes have been fixed, how often they used to happen, and how long it's been since I saw one the last time, I assume that this has been fixed.
Flags: needinfo?(bjacob)
OK, but I don't want to close it until somebody that could crash it before confirms they can't crash it anymore :)
Flags: needinfo?(dhylands)
I just tested with my unagi running a debug build on master and I'm not seeing the problem any more.
Flags: needinfo?(dhylands)
Status: NEW → RESOLVED
Closed: 10 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.