No description
Find a file
Tom Cherry 65ab7fed70 logd: don't send logs before the start time on the first flushTo()
Logs in logd's buffer are not in time order.

If a client connects and requests logs from a given timestamp, we
start at the beginning of the buffer and find the first entry that has
happened since that timestamp and use its sequence number to flush
logs from.  This ensures that we get all logs accumulated in the
buffer since that time stamp and not just the most recent.

However there may be other logs in the buffer that happened before the
timestamp and have likely been already served to the client, therefore
we do not flush those.

We only do this for the first flush, since once we have flushed all of
the logs in the buffer, if another log comes in with a timestamp
earlier than the requested timestamp, it must be out of order and not
seen yet, since it is new even to logd.

Note! This is still broken.  There is a race that logs before the
timestamp may come in out of order since the last time the client
disconnected and before it reconnects.  The *only* solution to this
problem is that clients need to request logs after a given sequence
number.  That will be done as a separate liblog API change, while
these changes put in the ground work to make that possible.

Note 2: the security log implementation, which is one of the most
important users of this, already captures logs from seconds before the
last previous log to work around issues with timestamps.  That
workaround mitigates the above issue.

Test: logs work with logcat -t
Change-Id: If1a62a90c082d98c4cf2eb5c92ae3b7e89850cf2
2020-04-09 17:23:52 +00:00
adb Merge changes from topic "adbd_lz4" 2020-04-07 21:30:30 +00:00
base liblog: correct new APIs per the API review 2020-03-25 18:36:10 +00:00
bootstat Improve logging in bootstat. 2020-04-02 13:03:21 +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 Remove EXCLUDE_FS_CONFIG_STRUCTURES 2020-03-04 15:34:09 -08:00
debuggerd Merge "Read fault address on arm64 using proposed kernel API." 2020-03-30 21:40:58 +00:00
deprecated-adf remove deprecated bp 'subdirs' 2020-01-14 12:18:40 -08:00
diagnose_usb Revert "Revert "Set apex_available property"" 2020-03-26 00:23:56 +00:00
fastboot Merge "Rename vts-core to vts" 2020-04-07 05:11:55 +00:00
fs_mgr Merge "get_mounted_entry_for_userdata: Realpath block devices from fstabs" 2020-04-07 12:01:29 +00:00
gatekeeperd Use optional for nullable types 2020-02-24 09:31:47 +09:00
healthd healthd: Don't take device-scoped battery as the main system battery. 2020-03-16 12:50:42 +09:00
include
init Merge "Remove vts10 tests from vts suite" 2020-04-06 21:24:46 +00: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 Revert "Revert "Set apex_available property"" 2020-03-26 00:23:56 +00:00
libbacktrace Remove use of static libdexfile to avoid linking in ART internal code. 2020-03-19 22:23:54 +00:00
libbinderwrapper
libcrypto_utils Set apex_available property 2020-03-09 16:38:02 +09:00
libcutils Merge "Rename vts-core to vts" 2020-04-07 05:11:55 +00:00
libdiskconfig
libgrallocusage Replace -Weverything with -Wextra 2019-11-08 13:09:00 -08:00
libkeyutils Refactor mini-keyctl and split a static library 2019-09-26 10:45:38 -07:00
liblog Merge "Remove vts10 tests from vts suite" 2020-04-06 21:24:46 +00:00
libmodprobe libmodprobe: parse kernel command line for module options 2019-12-27 13:39:23 -08:00
libnetutils add nodad argument to ifc_act_on_address() and add it to header file 2020-01-26 06:35:30 -08:00
libpackagelistparser Add require_root to adbd_test and libpackagelistparser_test 2019-09-24 09:13:32 -07:00
libpixelflinger Remove mips pixelflinger. 2020-03-07 05:51:52 +00:00
libprocessgroup Convert vts configs to Android.bp 2020-03-07 21:21:33 -08:00
libprocinfo libprocinfo: remove error msg for unknown process state. 2020-01-17 15:55:13 -08:00
libqtaguid
libsparse Make ramdisk_available. 2020-01-22 16:47:14 -08:00
libstats don't include liblog to APEXes 2020-03-11 09:20:08 +00:00
libsuspend
libsync libsystem/libsync: Update OWNERS 2020-02-28 10:50:50 -08:00
libsystem Set apex_available property 2020-03-09 16:38:02 +09:00
libsysutils NetlinkEvent - ignore captive portal and pref64 nd user opts 2020-03-31 20:25:33 -07:00
libunwindstack Fix off-by-one in ReadBuildIDFromMemory. 2020-03-31 10:29:38 -07:00
libusbhost Prevent infinite loop on zero length USB descriptors 2020-02-21 11:11:02 -08:00
libutils Set apex_available property 2020-03-09 16:38:02 +09:00
libvndksupport remove deprecated bp 'subdirs' 2020-01-14 12:18:40 -08:00
libziparchive Allow ExtractToMemory to accept an empty buffer for empty entries 2020-04-07 12:25:16 -07:00
llkd Merge changes Ibb4b4ca4,I31572afa 2020-01-17 15:39:45 +00:00
logcat Remove ANDROID_LOG_RDONLY, etc 2020-03-23 13:43:27 -07:00
logd logd: don't send logs before the start time on the first flushTo() 2020-04-09 17:23:52 +00:00
logwrapper logwrap: add missing O_CLOEXEC 2020-02-26 10:29:04 -08:00
property_service Rename ro.device_owner system property 2020-02-19 10:34:36 +00:00
qemu_pipe Revert "Revert "Set apex_available property"" 2020-03-26 00:23:56 +00:00
reboot adb: replace reboot service with exec of /system/bin/reboot. 2019-10-23 14:33:36 -07:00
rootdir Manually unmount /data_mirror mounts in the right order 2020-04-07 15:43:10 +00:00
run-as run-as: improve error messages. 2020-03-04 18:11:18 -08: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-17 09:31:01 -07:00
toolbox toolbox: add modprobe 2019-08-06 13:58:13 -07:00
trusty trusty: keymaster: Remove legacy support 2020-02-26 00:43:23 +00:00
usbd Remove libhwbinder/libhidltransport deps 2019-09-05 14:17:42 -07:00
watchdogd
.clang-format
.clang-format-2
.clang-format-4
.gitignore
Android.bp remove deprecated bp 'subdirs' 2020-01-14 12:18:40 -08:00
CleanSpec.mk snapshotctl don't auto-merge. 2020-03-03 13:19:49 -08:00
MODULE_LICENSE_APACHE2
NOTICE
OWNERS
PREUPLOAD.cfg
TEST_MAPPING Implement the functions to parse zip64 structs 2020-03-24 15:06:57 -07:00