【Android】FileDescription文件描述符泄漏

【笔记】【Android】FileDescription文件描述符泄漏

记一次在公司项目中的crash

现象

  • 项目App应用场景为类似自助售货机一样具备长时间稳定运行要求, 在压力测试中发现, 发现App会在一段时间后崩溃停止工作, 看日志是libc.so报错abort….SIGABRT信号。

排查

  • 通过LeakCanary、Bugly等均无法捕捉到有用的信息 。
  • 再通过测试运行App但不操作的情况 , 发现在App运行但不操作时再长时间都不存在崩溃 , 随后进行单元测试 , 通过对测试结果的整理 , 发现会导致崩溃的单元均调用到同一个硬件 (通过硬件厂商的库使用 , 非直接使用串口通信) , 怀疑是内存泄漏问题 , 但是通过排查发现均有正常调用close方法和释放资源。
  • 最后通过搜索crash日志找到一个类似的问题, 对方的crash信息如下图。

图片描述

  • 其中比较重要的信息是
09-29 10:46:47.714 25962-25962/? A/DEBUG: Abort message: 'FORTIFY: FD_SET: file descriptor >= FD_SETSIZE'
  • fd数>=FD_SETSIZE
  • 虽然无法确认我这边的原因和对方的一样 , 但是也继续顺着下去排查问题
  • 首先查看file descriptor
  • 文件描述符FileDescription 下面简称fd
  • 查看设备fd资源数adb命令
adb connect (设备)
adb shell
su
cd /proc/(应用pid)/fd
ls -l
  • 查看系统的FD_SETSIZE值命令
adb shell ulimit -n
  • 一般系统的FD_SETSIZE值为1024
  • 正常情况下, 程序的fd资源是这样子的
total 0
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 0 -> /dev/null
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 1 -> /dev/null
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 10 -> /system/framework/core-oj.jar
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 11 -> /system/framework/core-libart.jar
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 12 -> /system/framework/conscrypt.jar
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 13 -> /system/framework/okhttp.jar
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 14 -> /system/framework/core-junit.jar
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 15 -> /system/framework/bouncycastle.jar
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 16 -> /system/framework/ext.jar
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 17 -> /system/framework/framework.jar
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 18 -> /system/framework/telephony-common.jar
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 19 -> /system/framework/voip-common.jar
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 2 -> /dev/null
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 20 -> /system/framework/ims-common.jar
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 21 -> /system/framework/apache-xml.jar
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 22 -> /system/framework/org.apache.http.legacy.boot.jar
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 23 -> socket:[38040239]
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 24 -> /system/framework/framework-res.apk
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 25 -> /dev/urandom
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 26 -> socket:[38041527]
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 27 -> pipe:[38041528]
l-wx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 28 -> pipe:[38041528]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 29 -> anon_inode:[eventfd]
l-wx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 3 -> /dev/cpuctl/tasks
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 30 -> anon_inode:[eventpoll]
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 31 -> /data/app/com.tuodi.workstation-1/base.apk
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 32 -> socket:[38040244]
l-wx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 33 -> /dev/pmsg0
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 34 -> /storage/emulated/0/BasicEducation.db
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 35 -> anon_inode:[eventfd]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 36 -> anon_inode:[eventpoll]
l-wx------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 37 -> /data/data/com.tuodi.workstation/app_bugly/sys_log_1631932418354.txt
l-wx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 38 -> /data/data/com.tuodi.workstation/app_bugly/jni_log_1631932418354.txt
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 39 -> anon_inode:inotify
l-wx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 4 -> /dev/cpuctl/bg_non_interactive/tasks
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 40 -> /data/data/com.tuodi.workstation/databases/bugly_db_
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 41 -> /dev/ttyS1  //安卓开发板串口地址
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 42 -> /dev/ttyS2  //安卓开发板串口地址
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 43 -> /dev/ashmem
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 44 -> /dev/ashmem
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 45 -> /dev/ashmem
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 46 -> socket:[38041880]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 48 -> anon_inode:[eventfd]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 49 -> socket:[38042893]
l-wx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 5 -> /sys/kernel/debug/tracing/trace_marker
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 50 -> socket:[38042895]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 51 -> anon_inode:[eventpoll]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 53 -> /dev/mali0
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 54 -> socket:[38040349]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 55 -> socket:[38041863]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 56 -> /dev/dri/renderD128
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 57 -> anon_inode:dmabuf
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 58 -> /dev/ashmem
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 59 -> anon_inode:[eventfd]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 6 -> /dev/null
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 60 -> anon_inode:[eventfd]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 61 -> anon_inode:[eventfd]
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 62 -> anon_inode:malitl_10271_0x8c670ee0
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 63 -> anon_inode:malitl_10271_0x8c653ed8
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 64 -> anon_inode:malitl_10271_0x8bb90f28
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 67 -> anon_inode:dmabuf
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 68 -> /dev/ashmem
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 69 -> anon_inode:dmabuf
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 7 -> /dev/null
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 70 -> /dev/ashmem
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 72 -> anon_inode:dmabuf
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 73 -> /dev/ashmem
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 74 -> anon_inode:dmabuf
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 75 -> /dev/ashmem
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 8 -> /dev/null
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:06 9 -> /dev/binder
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 41 -> /dev/ttyS1  //安卓开发板串口地址
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 10:33 42 -> /dev/ttyS2  //安卓开发板串口地址
  • 其中这两个句柄被两个使用串口硬件占用
  • 简化单元逻辑, 模拟开关100次串口(模拟运行一段时间)
total 0
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 0 -> /dev/null
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 1 -> /dev/null
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 10 -> /system/framework/core-oj.jar
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 100 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 101 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 102 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 103 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 104 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 105 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 106 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 107 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 108 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 109 -> /dev/ttyS1
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 11 -> /system/framework/core-libart.jar
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 110 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 111 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 112 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 113 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 114 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 115 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 116 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 117 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 118 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 119 -> /dev/ttyS1
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 12 -> /system/framework/conscrypt.jar
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 120 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 121 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 122 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 123 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 124 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 125 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 126 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 127 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 128 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 129 -> anon_inode:[eventfd]
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 13 -> /system/framework/okhttp.jar
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 130 -> anon_inode:[eventpoll]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 131 -> /dev/mali0
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 132 -> socket:[38199762]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 133 -> socket:[38200807]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 134 -> /dev/dri/renderD128
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 135 -> anon_inode:dmabuf
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 136 -> /dev/ashmem
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 137 -> anon_inode:[eventfd]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 138 -> anon_inode:[eventfd]
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 139 -> anon_inode:malitl_20820_0x8beb7ee0
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 14 -> /system/framework/core-junit.jar
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 140 -> anon_inode:[eventfd]
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 141 -> anon_inode:malitl_20820_0x8ef6eed8
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 142 -> anon_inode:malitl_20820_0x8b5d0f28
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 143 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 144 -> socket:[38199794]
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 145 -> anon_inode:dmabuf
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 146 -> /dev/ashmem
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 147 -> anon_inode:dmabuf
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 148 -> /dev/ashmem
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 149 -> /dev/ttyS1
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 15 -> /system/framework/bouncycastle.jar
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 150 -> anon_inode:dmabuf
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 151 -> /dev/ashmem
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 152 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 153 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 154 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 155 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 156 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 157 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 158 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 159 -> /dev/ttyS1
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 16 -> /system/framework/ext.jar
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 160 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 161 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 162 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 163 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 164 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 165 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 166 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 167 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 168 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 169 -> /dev/ttyS1
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 17 -> /system/framework/framework.jar
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 170 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 171 -> /dev/ttyS1
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 175 -> anon_inode:dmabuf
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 176 -> /dev/ashmem
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 18 -> /system/framework/telephony-common.jar
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 19 -> /system/framework/voip-common.jar
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 2 -> /dev/null
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 20 -> /system/framework/ims-common.jar
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 21 -> /system/framework/apache-xml.jar
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 22 -> /system/framework/org.apache.http.legacy.boot.jar
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 23 -> /data/app/com.tuodi.workstation-1/base.apk
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 24 -> /system/framework/framework-res.apk
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 25 -> /dev/urandom
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 26 -> socket:[38199523]
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 27 -> pipe:[38199524]
l-wx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 28 -> pipe:[38199524]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 29 -> anon_inode:[eventfd]
l-wx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 3 -> /dev/cpuctl/tasks
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 30 -> anon_inode:[eventpoll]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 31 -> socket:[38198723]
l-wx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 32 -> /dev/pmsg0
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 33 -> socket:[38197028]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 34 -> /storage/emulated/0/BasicEducation.db
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 35 -> anon_inode:[eventfd]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 36 -> anon_inode:[eventpoll]
l-wx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 37 -> /data/data/com.tuodi.workstation/app_bugly/sys_log_1631936440331.txt
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 38 -> anon_inode:inotify
l-wx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 39 -> /data/data/com.tuodi.workstation/app_bugly/jni_log_1631936440331.txt
l-wx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 4 -> /dev/cpuctl/bg_non_interactive/tasks
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 40 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 41 -> /data/data/com.tuodi.workstation/databases/bugly_db_
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:40 42 -> /dev/ashmem
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 43 -> /dev/ttyS2
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 44 -> socket:[38198755]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 45 -> socket:[38197066]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 46 -> /dev/ashmem
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 47 -> socket:[38197068]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 48 -> /dev/ttyS1
lr-x------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 49 -> pipe:[38198758]
l-wx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 5 -> /sys/kernel/debug/tracing/trace_marker
l-wx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 50 -> pipe:[38198758]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 51 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 52 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 53 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 54 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 55 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 56 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 57 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 58 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 59 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 6 -> /dev/null
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 60 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 61 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 62 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 63 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 64 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 65 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 66 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 67 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 68 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 69 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 7 -> /dev/null
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 70 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 71 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 72 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 73 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 74 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 75 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 76 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 77 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 78 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 79 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 8 -> /dev/null
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 80 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 81 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 82 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 83 -> socket:[38198870]
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 84 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 85 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 86 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 87 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 88 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 89 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 9 -> /dev/binder
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 90 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 91 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 92 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 93 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 94 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 95 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 96 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 97 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 98 -> /dev/ttyS1
lrwx------ 1 u0_a86 u0_a86 64 2021-09-18 11:42 99 -> /dev/ttyS1
  • 通过这样测试发现开启后确实增加了句柄,并在关闭后不会释放句柄 , 当值到达1024时App崩溃。
  • 而在其他直接通过串口通信的硬件中 , 打开会增加句柄 , 关闭也会释放句柄。
  • 最终排查发现为厂家的库在close的时候未释放

待更新

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇