No description
Find a file
Martijn Coenen dd0440f4e5 Abort FUSE filesystem when Zygote restarts.
The FUSE filesystem is implemented by a Zygote child. If Zygote dies,
all of its children die along with it, including the FUSE daemon. The
FUSE filesystem is cleaned up automatically whenever the /dev/fuse file
descriptor of the FUSE daemon is closed. However, due to the way the
binder driver holds on to the 'struct files' of processes in the kernel,
the closing of FDs of all of Zygote's children is serialized.

That in turn means that, if a process has a file with dirty pages on
FUSE, and that FD is closed *before* the FUSE FD, the FUSE kernel driver
will happily issue a request to the FUSE daemon to serve that request.
But since the FUSE userspace daemon is already dead, it will never get
served. And because the closing of all FDs is serialized, we will never
close the FUSE fd to unblock this request.

Solve this particular case by manually aborting the FUSE filesystem when
Zygote restarts. Because we now explicitly close the FUSE fd, the FUSE
filesystem will be cleaned up, all outstanding requests to it will be
cancelled, and new ones will be skipped.

Bug: 153411204
Test: kill zygote manually
Change-Id: I2cb6c1a03cc1a932461ff33558894a428ff35180
2020-05-28 19:11:01 +02:00
adb Optimizing install-multi-package to use ABB. 2020-05-19 04:26:42 +00:00
base Avoid zero-initializing our most-used buffers. 2020-04-29 16:49:13 -07:00
bootstat Improve logging in bootstat. 2020-04-02 20:07:04 +01:00
cli-test cli-test: a tool for testing command-line programs. 2019-12-13 12:23:51 -08:00
code_coverage build code_coverage.policy with Android.bp 2020-02-11 10:33:38 -08:00
cpio Switch from dist-for-goals to dist in Android.bp 2018-11-19 23:06:12 -08:00
debuggerd Remove use of static libdexfile to avoid linking in ART internal code. 2020-03-24 21:48:00 +00:00
deprecated-adf remove deprecated bp 'subdirs' 2020-01-14 12:18:40 -08:00
diagnose_usb Set apex_available property 2020-04-20 16:07:35 +09:00
fastboot fastbootd: Support TCP protocol. 2020-05-19 19:11:25 +00:00
fs_mgr Merge "emmc_optimized means stable_inodes" into rvc-dev 2020-05-23 22:20:06 +00:00
gatekeeperd Remove libhwbinder/libhidltransport deps 2019-09-05 14:17:42 -07:00
healthd BatteryMonitor: report current_now in uA 2020-04-09 14:41:51 -07:00
include Move android_filesystem_config.h => fs_config.h 2017-08-02 16:31:19 -07:00
init init: support wait timeout with more precision 2020-05-19 13:25:07 -07:00
janitors Add the two best build system janitors. 2019-03-25 10:25:13 -07:00
libappfuse Close /dev/fuse FD before calling onClosed 2019-05-31 17:06:52 +01:00
libasyncio Set apex_available property 2020-04-20 16:07:35 +09:00
libbacktrace backtrace: Set min_sdk_version 2020-05-18 06:33:37 +00:00
libbinderwrapper Make libbinderwrapper available in /vendor partition 2018-04-06 08:41:21 +09:00
libcrypto_utils Set apex_available property 2020-04-20 16:06:02 +09:00
libcutils libcutils: Set min_sdk_version 2020-05-11 17:43:04 +09:00
libdiskconfig Rename target.linux[_x86[_64]] to target.linux_glibc[_x86[_64]] 2017-10-02 10:44:29 -07:00
libgrallocusage gralloc: Set min_sdk_version 2020-05-11 17:44:29 +09:00
libkeyutils Refactor mini-keyctl and split a static library 2019-09-26 10:45:38 -07:00
liblog liblog: require root for multi_connect_dgram_socket test 2020-05-01 10:27:21 -07:00
libmodprobe first_stage_init: load modules in modules.load.recovery in recovery 2020-04-08 10:49:13 -07:00
libnetutils libnetutils/packet.c - create socket with close-on-exec 2020-05-11 15:58:02 -07:00
libpackagelistparser Add require_root to adbd_test and libpackagelistparser_test 2019-09-24 09:13:32 -07:00
libprocessgroup Merge changes Idaa27ce2,I06644a72,I453c63fe into rvc-dev 2020-05-12 09:00:50 +00:00
libprocinfo Set apex_available property 2020-04-29 17:01:15 +09:00
libqtaguid Redirect qtaguid native call to netd fwmark client 2017-11-09 18:02:22 -08:00
libsparse Make ramdisk_available. 2020-01-22 16:47:14 -08:00
libstats Remove statsd enable check when logging 2020-05-19 21:52:14 +00:00
libsuspend Remove libsuspend from VNDK. 2018-08-14 13:39:55 -07:00
libsync Rename # vndk tag to # llndk 2019-11-13 14:32:44 +09:00
libsystem Set min_sdk_version to be part of mainline modules 2020-05-13 12:10:36 +09:00
libsysutils Set min_sdk_version to be part of mainline modules 2020-05-13 12:10:36 +09:00
libunwindstack Merge "Set apex_available property" into rvc-dev 2020-05-18 04:24:55 +00:00
libusbhost Revert "Mark libs as double_loadable" 2019-03-11 14:10:34 +00:00
libutils Set min_sdk_version to be part of mainline modules 2020-05-13 12:10:36 +09:00
libvndksupport remove deprecated bp 'subdirs' 2020-01-14 12:18:40 -08:00
libziparchive Set apex_available property 2020-04-29 17:01:15 +09:00
llkd llkd: Print thread group before panic the kernel 2020-04-27 16:11:53 +08:00
logcat logcatd: unset pinning log files 2020-04-23 13:53:37 -07:00
logd logd: disable flaky logd.timeout test 2020-04-30 08:39:09 -07:00
logwrapper logwrap: add missing O_CLOEXEC 2020-02-27 09:41:24 -08:00
property_service Rename ro.device_owner system property 2020-02-19 10:34:36 +00:00
qemu_pipe Set apex_available property 2020-04-20 16:07:35 +09:00
reboot adb: replace reboot service with exec of /system/bin/reboot. 2019-10-23 14:33:36 -07:00
rootdir Abort FUSE filesystem when Zygote restarts. 2020-05-28 19:11:01 +02:00
run-as run-as: improve diagnostics on failure. 2019-03-13 11:16:03 -07:00
sdcard Move layout_version to /data/misc/installd 2019-08-21 10:12:18 -07:00
set-verity-state set-verity-state: Link to libfs_mgr_binder. 2019-12-30 13:42:57 -08:00
shell_and_utilities Update shell_and_utilities docs for R. 2020-01-16 15:54:16 -08:00
storaged storaged: ignore SIGPIPE 2020-03-18 13:53:15 -07:00
toolbox Control audio HAL services in start/stop 2020-04-23 10:42:55 -07:00
trusty Merge "First working version of the confirmationui HAL service" 2020-01-21 16:40:03 +00:00
usbd Remove libhwbinder/libhidltransport deps 2019-09-05 14:17:42 -07:00
watchdogd Move watchdogd out of init 2018-08-02 12:25:58 -07:00
.clang-format Add a 2 width option of clang format. 2017-03-10 13:01:39 -08:00
.clang-format-2 Move clang-formats to build. 2019-01-18 14:26:33 -08:00
.clang-format-4 Move clang-formats to build. 2019-01-18 14:26:33 -08:00
.gitignore Ignore adb/*.pyc files 2015-08-11 12:59:58 -07:00
Android.bp remove deprecated bp 'subdirs' 2020-01-14 12:18:40 -08:00
CleanSpec.mk snapshotctl don't auto-merge. 2020-03-05 08:41:42 -08:00
MODULE_LICENSE_APACHE2 auto import from //depot/cupcake/@135843 2013-07-30 13:56:49 -07:00
NOTICE Fix omission in NOTICE file. 2013-07-30 13:56:55 -07:00
OWNERS Move per-file OWNERS directives to their directories. 2018-06-06 11:49:40 +09:00
PREUPLOAD.cfg Add a PREUPLOAD.cfg file to run git-clang-format on every commit 2017-03-08 16:51:26 +08:00
TEST_MAPPING Move adb RSA utilities into its own library. 2020-02-11 20:49:20 -08:00