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?
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
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.
Benoit, can you still get this crash?
"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.
OK, but I don't want to close it until somebody that could crash it before confirms they can't crash it anymore :)
I just tested with my unagi running a debug build on master and I'm not seeing the problem any more.