platform_system_core/adb
Josh Gao a8776b4913 adb: fix sync.
adbd's file sync service doesn't handle a full socket gracefully,
immediately terminating the service as soon as it fails to write a
response. This would generally be fine if the socket's buffer were as
large as it claims (212992 by default with a 64-bit kernel), but this
buffer size is a giant lie, as each write has 576 bytes of overhead
that's used up in the send buffer. When setting the send buffer size,
the kernel helpfully doubles the value to attempt to account for the
overhead, but when writing 8 byte responses, only 2% of the buffer
actually gets used for responses, so we run out of buffer after 364
files instead of the 26624 that would be expected.

Fix this by processing the responses as they become available, and
calculate a maximum limit to how many sends we dispatch before we stop
and wait for responses to come in.

Bug: http://b/150827486
Test: manually modified adbd to respond with giant error messages, and
      modified adb to not read responses until we choose to block
Change-Id: Ieb8c935662864211e2fd16c337ffed0992990086
(cherry picked from commit 672cdfeeff)
2020-03-23 17:36:15 -07:00
..
apex Mark updatable APEXes 2020-02-24 18:39:23 +09:00
client adb: fix sync. 2020-03-23 17:36:15 -07:00
crypto Remove pairing_auth, pairing_connection from recovery. 2020-02-28 19:02:28 +00:00
daemon Reland "adb: turn CHECKs into an error + transport restart." 2020-03-02 22:59:54 -08:00
fastdeploy adbd: remove static dependency on libcutils. 2020-02-24 17:58:06 -08:00
fdevent [adb] Optimize fdevent machinery 2020-03-18 23:20:00 -07:00
libs adbd: remove static dependency on libcutils. 2020-02-24 17:58:06 -08:00
pairing_auth Remove pairing_auth, pairing_connection from recovery. 2020-02-28 19:02:28 +00:00
pairing_connection Remove pairing_auth, pairing_connection from recovery. 2020-02-28 19:02:28 +00:00
proto [adbwifi] Add adb protos. 2020-02-11 20:49:15 -08:00
sysdeps Allow the adb server to bind on ::1 2019-11-07 08:32:01 -08:00
tls Remove pairing_auth, pairing_connection from recovery. 2020-02-28 19:02:28 +00:00
tools Add stub code to read MS OS 2.0 descriptors. 2019-09-06 14:45:11 -07:00
.clang-format
adb.bash Adb and fastboot completion supports zsh users. 2018-07-17 14:19:35 +08:00
adb.cpp adbd: add runtime-configurable logging. 2020-03-02 12:44:54 -08:00
adb.h [adbwifi] Add A_STLS command. 2020-02-21 21:07:13 +00:00
adb_auth.h [adbwifi] Add A_STLS command. 2020-02-21 21:07:13 +00:00
adb_integration_test_adb.xml Add adb integration test to general-tests 2018-08-08 12:08:50 -07:00
adb_integration_test_device.xml Add adb_integration_test_device to general-tests 2018-10-12 13:48:14 -07:00
adb_io.cpp Revert "Revert "Add a way to turn off unique_fd's operator int."" 2019-05-06 16:18:02 -07:00
adb_io.h Revert "Revert "Add a way to turn off unique_fd's operator int."" 2019-05-06 16:18:02 -07:00
adb_io_test.cpp switch to using android-base/file.h instead of android-base/test_utils.h 2018-11-14 09:35:34 -08:00
adb_listeners.cpp adb: convert more stuff to unique_fd. 2019-01-23 17:11:13 -08:00
adb_listeners.h
adb_listeners_test.cpp adb: move fdevent to its own folder. 2019-07-08 14:37:27 -07:00
adb_mdns.h add a version TXT record to adb secure mdns services 2020-02-18 05:13:06 +00:00
adb_trace.cpp Incremental installations in adb, client/host side. 2020-02-19 08:01:06 -08:00
adb_trace.h adbd: remove static dependency on libcutils. 2020-02-24 17:58:06 -08:00
adb_unique_fd.cpp adb: actually enable fdsan. 2018-08-06 18:50:10 -07:00
adb_unique_fd.h Revert "Revert "Add a way to turn off unique_fd's operator int."" 2019-05-06 16:18:02 -07:00
adb_utils.cpp Allow overriding the log path. 2019-07-30 12:26:31 -07:00
adb_utils.h [adb] Use STL for ParseUInt() implementation 2019-08-02 11:33:41 -07:00
adb_utils_test.cpp Revert "Revert "Add a way to turn off unique_fd's operator int."" 2019-05-06 16:18:02 -07:00
adb_wifi.h [adbwifi] Add adbwifi_libs, TLS connection, and MDNS implementation. 2020-02-21 21:06:40 +00:00
Android.bp [adb incremental] send priority blocks first 2020-03-17 20:19:49 -07:00
benchmark_device.py adb: add benchmarks for sink/source. 2019-02-28 15:53:48 -08:00
bugreport_test.cpp adb: Avoid extra std::string copies 2019-03-26 12:00:19 -07:00
file_sync_protocol.h adb: extract syncmsg structs. 2020-03-23 17:36:06 -07:00
MODULE_LICENSE_APACHE2
NOTICE Revert "Revert "Revert "adb: append the libwinpthread COPYING to adb's NOTICE.""" 2018-11-29 23:14:02 +00:00
OVERVIEW.TXT adb: fix obsolete documentation. 2018-06-22 13:12:19 -07:00
OWNERS
protocol.txt [adbwifi] Add A_STLS command. 2020-02-21 21:07:13 +00:00
security_log_tags.h
services.cpp [adbwifi] Add adbwifi_libs, TLS connection, and MDNS implementation. 2020-02-21 21:06:40 +00:00
services.h Support adb rescue wipe command 2019-04-29 15:21:50 -07:00
SERVICES.TXT adb: fix obsolete documentation. 2018-06-22 13:12:19 -07:00
shell_protocol.h Revert "Revert "Add a way to turn off unique_fd's operator int."" 2019-05-06 16:18:02 -07:00
shell_service_protocol.cpp Revert "Revert "Add a way to turn off unique_fd's operator int."" 2019-05-06 16:18:02 -07:00
shell_service_protocol_test.cpp adb: split shell_service.h into client/daemon/protocol parts. 2018-07-25 18:08:44 -07:00
SOCKET-ACTIVATION.txt Revert "Revert "Support socket activation of adb server"" 2019-12-11 08:20:20 +00:00
socket.h adb: move fdevent to its own folder. 2019-07-08 14:37:27 -07:00
socket_spec.cpp Merge "Enable "localfilesystem" UNIX domain socket for ADB." 2019-12-18 05:34:30 +00:00
socket_spec.h Enable "localfilesystem" UNIX domain socket for ADB. 2019-12-04 10:05:05 +09:00
socket_spec_test.cpp Enable "localfilesystem" UNIX domain socket for ADB. 2019-12-04 10:05:05 +09:00
socket_test.cpp adb: move fdevent to its own folder. 2019-07-08 14:37:27 -07:00
sockets.cpp Enable "localfilesystem" UNIX domain socket for ADB. 2019-12-04 10:05:05 +09:00
sockets.dia
SYNC.TXT
sysdeps.h [adb] Fix incremental installation on Windows 2020-03-18 22:28:01 -07:00
sysdeps_test.cpp adb: win32: silence wine test failure. 2019-07-16 15:22:51 -07:00
sysdeps_unix.cpp Incremental installations in adb, client/host side. 2020-02-19 08:01:06 -08:00
sysdeps_win32.cpp [adbwifi] Add adbwifi_libs, TLS connection, and MDNS implementation. 2020-02-21 21:06:40 +00:00
sysdeps_win32_test.cpp switch to using android-base/file.h instead of android-base/test_utils.h 2018-11-14 09:35:34 -08:00
test_adb.py adb: don't hardcode ports in test_adb. 2020-03-02 12:44:50 -08:00
test_device.py adbd: add a perfunctory abb test. 2020-02-07 15:59:49 -08:00
trace.sh
transport.cpp [adbwifi] Add A_STLS command. 2020-02-21 21:07:13 +00:00
transport.h [adbwifi] Add A_STLS command. 2020-02-21 21:07:13 +00:00
transport_benchmark.cpp Revert "adb: make benchmarks build on the host." 2018-11-13 11:28:29 -08:00
transport_fd.cpp [adbwifi] Add A_STLS command. 2020-02-21 21:07:13 +00:00
transport_local.cpp [adbwifi] Add A_STLS command. 2020-02-21 21:07:13 +00:00
transport_test.cpp adb: move fdevent to its own folder. 2019-07-08 14:37:27 -07:00
transport_usb.cpp [adbwifi] Add A_STLS command. 2020-02-21 21:07:13 +00:00
types.cpp [adb] Optimize adbd's usb reading 2019-11-28 18:24:01 -08:00
types.h adb: fix use after free of atransport. 2019-12-13 13:28:21 -08:00
types_test.cpp [adb] Optimize adbd's usb reading 2019-11-28 18:24:01 -08:00
usb.h adb: make adb reconnect perform a USB reset. 2019-03-28 15:47:44 -07:00