remote-android / redroid-doc

redroid (Remote-Android) is a multi-arch, GPU enabled, Android in Cloud solution. Track issues / docs here
4.14k stars 297 forks source link

Unstable network #537

Open wangjk920221 opened 9 months ago

wangjk920221 commented 9 months ago

Describe the bug envrionment: ubuntu 20.04 5.15.0-40-generic redroid/redroid-11-latest

I'm newer to redroid, succeed in docker build and the vm runs well. But when launched other apps like wechat, sometimes it stay in the loading page and adb log seems like network connection problem.

image

adb logs: 12-14 06:06:00.001 344 344 D KeyguardClockSwitch: Updating clock: 606 12-14 06:06:07.337 153 176 E Netd : Failed to dump IPv4 sockets struct tcp_info: No such file or directory 12-14 06:06:07.337 153 176 E TcpSocketMonitor: Failed to poll TCP socket info: No such file or directory 12-14 06:06:37.337 153 176 E Netd : Failed to dump IPv4 sockets struct tcp_info: No such file or directory 12-14 06:06:37.337 153 176 E TcpSocketMonitor: Failed to poll TCP socket info: No such file or directory 12-14 06:06:48.188 220 925 W BestClock: java.time.DateTimeException: Missing NTP fix 12-14 06:06:48.188 153 153 E TrafficController: Cannot read the old configuration from map: Read value of map -1 failed: Operation not permitted 12-14 06:06:48.189 220 925 E BpfNetworkStats: get ifaceIndexName map fd failed: Operation not permitted 12-14 06:06:48.189 220 925 E NetworkStats: problem reading network stats 12-14 06:06:48.189 220 925 E NetworkStats: java.lang.IllegalStateException: java.io.IOException: Failed to parse network stats 12-14 06:06:48.189 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.readNetworkStatsUidDetail(NetworkStatsService.java:1866) 12-14 06:06:48.189 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.getNetworkStatsUidDetail(NetworkStatsService.java:1880) 12-14 06:06:48.189 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.recordSnapshotLocked(NetworkStatsService.java:1389) 12-14 06:06:48.189 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.performPollLocked(NetworkStatsService.java:1508) 12-14 06:06:48.189 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.performPoll(NetworkStatsService.java:1459) 12-14 06:06:48.189 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.openSessionInternal(NetworkStatsService.java:656) 12-14 06:06:48.189 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.openSessionForUsageStats(NetworkStatsService.java:627) 12-14 06:06:48.189 220 925 E NetworkStats: at android.net.INetworkStatsService$Stub.onTransact(INetworkStatsService.java:218) 12-14 06:06:48.189 220 925 E NetworkStats: at android.os.Binder.execTransactInternal(Binder.java:1154) 12-14 06:06:48.189 220 925 E NetworkStats: at android.os.Binder.execTransact(Binder.java:1123) 12-14 06:06:48.189 220 925 E NetworkStats: Caused by: java.io.IOException: Failed to parse network stats 12-14 06:06:48.189 220 925 E NetworkStats: at com.android.server.net.NetworkStatsFactory.readNetworkStatsDetail(NetworkStatsFactory.java:339) 12-14 06:06:48.189 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.readNetworkStatsUidDetail(NetworkStatsService.java:1864) 12-14 06:06:48.189 220 925 E NetworkStats: ... 9 more 12-14 06:06:48.191 220 246 I DropBoxManagerService: add tag=system_server_wtf isTagEnabled=true flags=0x2 12-14 06:06:48.220 220 246 W DropBoxManagerService: Dropping: system_server_wtf (1668 > 0 bytes) 12-14 06:07:00.001 344 344 D KeyguardClockSwitch: Updating clock: 607 12-14 06:07:07.338 153 176 E Netd : Failed to dump IPv4 sockets struct tcp_info: No such file or directory 12-14 06:07:07.338 153 176 E TcpSocketMonitor: Failed to poll TCP socket info: No such file or directory 12-14 06:07:37.338 153 176 E Netd : Failed to dump IPv4 sockets struct tcp_info: No such file or directory 12-14 06:07:37.338 153 176 E TcpSocketMonitor: Failed to poll TCP socket info: No such file or directory 12-14 06:07:48.190 220 925 W BestClock: java.time.DateTimeException: Missing NTP fix 12-14 06:07:48.190 153 153 E TrafficController: Cannot read the old configuration from map: Read value of map -1 failed: Operation not permitted 12-14 06:07:48.190 220 925 E BpfNetworkStats: get ifaceIndexName map fd failed: Operation not permitted 12-14 06:07:48.190 220 925 E NetworkStats: problem reading network stats 12-14 06:07:48.190 220 925 E NetworkStats: java.lang.IllegalStateException: java.io.IOException: Failed to parse network stats 12-14 06:07:48.190 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.readNetworkStatsUidDetail(NetworkStatsService.java:1866) 12-14 06:07:48.190 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.getNetworkStatsUidDetail(NetworkStatsService.java:1880) 12-14 06:07:48.190 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.recordSnapshotLocked(NetworkStatsService.java:1389) 12-14 06:07:48.190 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.performPollLocked(NetworkStatsService.java:1508) 12-14 06:07:48.190 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.performPoll(NetworkStatsService.java:1459) 12-14 06:07:48.190 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.openSessionInternal(NetworkStatsService.java:656) 12-14 06:07:48.190 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.openSessionForUsageStats(NetworkStatsService.java:627) 12-14 06:07:48.190 220 925 E NetworkStats: at android.net.INetworkStatsService$Stub.onTransact(INetworkStatsService.java:218) 12-14 06:07:48.190 220 925 E NetworkStats: at android.os.Binder.execTransactInternal(Binder.java:1154) 12-14 06:07:48.190 220 925 E NetworkStats: at android.os.Binder.execTransact(Binder.java:1123) 12-14 06:07:48.190 220 925 E NetworkStats: Caused by: java.io.IOException: Failed to parse network stats 12-14 06:07:48.190 220 925 E NetworkStats: at com.android.server.net.NetworkStatsFactory.readNetworkStatsDetail(NetworkStatsFactory.java:339) 12-14 06:07:48.190 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.readNetworkStatsUidDetail(NetworkStatsService.java:1864) 12-14 06:07:48.190 220 925 E NetworkStats: ... 9 more 12-14 06:07:48.192 220 246 I DropBoxManagerService: add tag=system_server_wtf isTagEnabled=true flags=0x2 12-14 06:07:48.210 220 246 W DropBoxManagerService: Dropping: system_server_wtf (1668 > 0 bytes) 12-14 06:08:00.001 344 344 D KeyguardClockSwitch: Updating clock: 608 12-14 06:08:07.338 153 176 E Netd : Failed to dump IPv4 sockets struct tcp_info: No such file or directory 12-14 06:08:07.338 153 176 E TcpSocketMonitor: Failed to poll TCP socket info: No such file or directory 12-14 06:08:37.338 153 176 E Netd : Failed to dump IPv4 sockets struct tcp_info: No such file or directory 12-14 06:08:37.338 153 176 E TcpSocketMonitor: Failed to poll TCP socket info: No such file or directory 12-14 06:08:48.188 220 925 W BestClock: java.time.DateTimeException: Missing NTP fix 12-14 06:08:48.188 153 153 E TrafficController: Cannot read the old configuration from map: Read value of map -1 failed: Operation not permitted 12-14 06:08:48.189 220 925 E BpfNetworkStats: get ifaceIndexName map fd failed: Operation not permitted 12-14 06:08:48.189 220 925 E NetworkStats: problem reading network stats 12-14 06:08:48.189 220 925 E NetworkStats: java.lang.IllegalStateException: java.io.IOException: Failed to parse network stats 12-14 06:08:48.189 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.readNetworkStatsUidDetail(NetworkStatsService.java:1866) 12-14 06:08:48.189 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.getNetworkStatsUidDetail(NetworkStatsService.java:1880) 12-14 06:08:48.189 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.recordSnapshotLocked(NetworkStatsService.java:1389) 12-14 06:08:48.189 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.performPollLocked(NetworkStatsService.java:1508) 12-14 06:08:48.189 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.performPoll(NetworkStatsService.java:1459) 12-14 06:08:48.189 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.openSessionInternal(NetworkStatsService.java:656) 12-14 06:08:48.189 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.openSessionForUsageStats(NetworkStatsService.java:627) 12-14 06:08:48.189 220 925 E NetworkStats: at android.net.INetworkStatsService$Stub.onTransact(INetworkStatsService.java:218) 12-14 06:08:48.189 220 925 E NetworkStats: at android.os.Binder.execTransactInternal(Binder.java:1154) 12-14 06:08:48.189 220 925 E NetworkStats: at android.os.Binder.execTransact(Binder.java:1123) 12-14 06:08:48.189 220 925 E NetworkStats: Caused by: java.io.IOException: Failed to parse network stats 12-14 06:08:48.189 220 925 E NetworkStats: at com.android.server.net.NetworkStatsFactory.readNetworkStatsDetail(NetworkStatsFactory.java:339) 12-14 06:08:48.189 220 925 E NetworkStats: at com.android.server.net.NetworkStatsService.readNetworkStatsUidDetail(NetworkStatsService.java:1864) 12-14 06:08:48.189 220 925 E NetworkStats: ... 9 more 12-14 06:08:48.191 220 246 I DropBoxManagerService: add tag=system_server_wtf isTagEnabled=true flags=0x2 12-14 06:08:48.208 220 246 W DropBoxManagerService: Dropping: system_server_wtf (1668 > 0 bytes) 12-14 06:09:00.001 344 344 D KeyguardClockSwitch: Updating clock: 609 12-14 06:09:06.849 153 189 E TrafficController: Failed to get current configuration: Operation not permitted, fd: -1 12-14 06:09:06.850 153 189 I chatty : uid=0(root) Binder:153_2 identical 2 lines 12-14 06:09:06.850 153 189 E TrafficController: Failed to get current configuration: Operation not permitted, fd: -1 12-14 06:09:06.853 153 20220 E TrafficController: Failed to get current configuration: Operation not permitted, fd: -1 12-14 06:09:06.853 153 20220 W resolv : Failed to tag socket: Operation not permitted 12-14 06:09:06.853 153 20221 E TrafficController: Failed to get current configuration: Operation not permitted, fd: -1 12-14 06:09:06.853 153 20221 W resolv : Failed to tag socket: Operation not permitted 12-14 06:09:06.862 550 20218 D NetworkMonitor/100: PROBE_DNS www.google.com 13ms OK 202.160.128.195 12-14 06:09:06.865 153 189 E TrafficController: Failed to get current configuration: Operation not permitted, fd: -1 12-14 06:09:06.865 550 20218 I NetworkManagementSocketTagger: tagSocketFd(45, -127, -1) failed with errno-22 12-14 06:09:06.903 550 20219 D NetworkMonitor/100: PROBE_DNS connectivitycheck.gstatic.com 54ms OK 203.208.40.34 12-14 06:09:06.906 153 189 E TrafficController: Failed to get current configuration: Operation not permitted, fd: -1 12-14 06:09:07.077 550 20219 D NetworkMonitor/100: PROBE_HTTP http://connectivitycheck.gstatic.com/generate_204 time=172ms ret=204 request={Connection=[close], User-Agent=[Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.32 Safari/537.36]} headers={null=[HTTP/1.1 204 No Content], Connection=[close], Content-Length=[0], Cross-Origin-Resource-Policy=[cross-origin], Date=[Thu, 14 Dec 2023 06:09:06 GMT], X-Android-Received-Millis=[1702534147077], X-Android-Response-Source=[NETWORK 204], X-Android-Selected-Protocol=[http/1.1], X-Android-Sent-Millis=[1702534146962]} 12-14 06:09:07.339 153 176 E Netd : Failed to dump IPv4 sockets struct tcp_info: No such file or directory 12-14 06:09:07.339 153 176 E TcpSocketMonitor: Failed to poll TCP socket info: No such file or directory 12-14 06:09:09.850 153 20360 E TrafficController: Failed to get current configuration: Operation not permitted, fd: -1 12-14 06:09:09.850 153 20360 W resolv : Failed to tag socket: Operation not permitted 12-14 06:09:09.900 153 189 E TrafficController: Failed to get current configuration: Operation not permitted, fd: -1 12-14 06:09:16.876 550 20218 D NetworkMonitor/100: PROBE_HTTPS https://www.google.com/generate_204 Probe failed with exception java.net.SocketTimeoutException: failed to connect to www.google.com/202.160.128.195 (port 443) from /172.17.0.2 (port 34168) after 10000ms 12-14 06:09:19.911 550 20217 D NetworkMonitor/100: PROBE_FALLBACK http://play.googleapis.com/generate_204 Probe failed with exception java.net.SocketTimeoutException: failed to connect to play.googleapis.com/142.251.43.10 (port 80) from /172.17.0.2 (port 39864) after 10000ms 12-14 06:09:19.912 550 20217 D NetworkMonitor/100: isCaptivePortal: isSuccessful()=false isPortal()=false RedirectUrl=null isPartialConnectivity()=true Time=13064ms 12-14 06:09:19.912 220 298 D ConnectivityService: [100 ETHERNET] validation failed 12-14 06:09:37.339 153 176 E Netd : Failed to dump IPv4 sockets struct tcp_info: No such file or directory 12-14 06:09:37.339 153 176 E TcpSocketMonitor: Failed to poll TCP socket info: No such file or directory

zhouziyang commented 9 months ago
12-14 06:09:16.876 550 20218 D NetworkMonitor/100: PROBE_HTTPS https://www.google.com/generate_204 Probe failed with exception java.net.SocketTimeoutException: failed to connect to [www.google.com/202.160.128.195](http://www.google.com/202.160.128.195) (port 443) from /172.17.0.2 (port 34168) after 10000ms
12-14 06:09:19.911 550 20217 D NetworkMonitor/100: PROBE_FALLBACK http://play.googleapis.com/generate_204 Probe failed with exception java.net.SocketTimeoutException: failed to connect to play.googleapis.com/142.251.43.10 (port 80) from /172.17.0.2 (port 39864) after 10000ms
12-14 06:09:19.912 550 20217 D NetworkMonitor/100: isCaptivePortal: isSuccessful()=false isPortal()=false RedirectUrl=null isPartialConnectivity()=true Time=13064ms
12-14 06:09:19.912 220 298 D ConnectivityService: [100 ETHERNET] validation failed

It seems network probe failed, then network is disabled.

TTsdzb commented 8 months ago

If you're running in China mainland, you can run a proxy on your host machine, and set androidboot.redroid_net_proxy_*. That works fine for me.

0fanzhe commented 1 month ago

@TTsdzb I use androidboot.redroid_netproxy, but I still can't use the network. If I don't use androidboot.redroid_netproxy, I can occasionally log in to wechat, but the network is not very stable, so I can't use videos, but I can send messages

comd: docker run -itd --rm --privileged -v ~/redroid:/data -p 5555:5555 --name redroid redroid-14-libndk_x86 androidboot.redroid_net_ndns=1 androidboot.redroid_net_dns1=114.114.114.114 androidboot.redroid_net_proxy_type=static androidboot.redroid_net_proxy_host=127.0.0.1 androidboot.redroid_net_proxy_port=7890

log: 07-26 07:15:07.964 581 3022 D TrafficStats: tagSocket(59) with statsTag=0xffffff81, statsUid=-1 07-26 07:15:07.964 581 3023 D TrafficStats: tagSocket(5) with statsTag=0xffffff81, statsUid=-1 07-26 07:15:07.965 581 3023 D TrafficStats: tagSocket(5) with statsTag=0xffffff81, statsUid=-1 07-26 07:15:07.965 581 3022 D TrafficStats: tagSocket(59) with statsTag=0xffffff81, statsUid=-1 07-26 07:15:07.968 178 3024 I resolv : ResNSendHandler::run: 0 / {100 983140 100 983140 1073 1} 07-26 07:15:07.968 178 3025 I resolv : ResNSendHandler::run: 0 / {100 983140 100 983140 1073 1} 07-26 07:15:07.968 178 3024 I resolv : resolv_cache_lookup: FOUND IN CACHE entry=0x75ccb7749730 07-26 07:15:07.968 178 3025 I resolv : resolv_cache_lookup: FOUND IN CACHE entry=0x75ccb7749730 07-26 07:15:07.969 581 3022 D NetworkMonitor/100: PROBE_DNS 127.0.0.1 5ms FAIL in type ADDRCONFIG java.net.UnknownHostException 07-26 07:15:07.969 581 3023 D NetworkMonitor/100: PROBE_DNS 127.0.0.1 4ms FAIL in type ADDRCONFIG java.net.UnknownHostException 07-26 07:15:07.969 581 3022 D TrafficStats: tagSocket(5) with statsTag=0xffffff81, statsUid=-1 07-26 07:15:07.970 581 3023 D TrafficStats: tagSocket(59) with statsTag=0xffffff81, statsUid=-1 07-26 07:15:07.971 581 3022 D NetworkMonitor/100: PROBE_HTTPS https://www.google.com/generate_204 Probe failed with exception java.net.ConnectException: Failed to connect to /127.0.0.1:7890 07-26 07:15:07.971 581 3023 D NetworkMonitor/100: PROBE_HTTP http://connectivitycheck.gstatic.com/generate_204 Probe failed with exception java.net.ConnectException: Failed to connect to /127.0.0.1:7890 07-26 07:15:07.971 581 3021 D TrafficStats: tagSocket(5) with statsTag=0xffffff81, statsUid=-1 07-26 07:15:07.972 581 3021 D NetworkMonitor/100: PROBE_FALLBACK http://play.googleapis.com/generate_204 Probe failed with exception java.net.ConnectException: Failed to connect to /127.0.0.1:7890 07-26 07:15:07.973 581 3021 D NetworkMonitor/100: isCaptivePortal: isSuccessful()=false isPortal()=false RedirectUrl=null isPartialConnectivity()=false Time=9ms 07-26 07:15:07.973 239 383 D ConnectivityService: [100 ETHERNET] validation failed

zhouziyang commented 1 month ago

@0fanzhe Try change androidboot.redroid_net_proxy_host=127.0.0.1 to androidboot.redroid_net_proxy_host=<Host IP>; redroid is running inside a separated network namespace, and 127.0.0.1 is referring to redroid container itself.