Clean up ProcessRecord when reuse a pid.
When Zygote starts a process with a pid, system_server may have this
pid associate with a old process which is killed by the OS but
system_server has not finished cleanup. In this case, clean up the old
ProcessRecord so the new process can use the pid.
This problem is exposed because the asynchronous process start change.
attachApplicationLocked() may happen before handleProcessStartedLocked() and
the mPidsSelfLocked may still have the old ProcessRecord associate with
the new process's pid.
Test: POC test steps in b/131105245.
(cherry picked from commit 3d47e0ceca4e6528a1bec2a7e94a833b8951d93a)
1 file changed