1

在我的 android 应用程序中,我收到“打开的文件太多”异常。当我执行 lsof 时,我会得到一长串(而且还在不断增长的)开放管道。但是在我的情况下,两个管道端点都在我的应用程序中。另一个奇怪的事情:就在拥有两个管道之前,我总是有一个打开的套接字连接。

07-05 05:22:30.790 W/TAG     (  481): me.app   481     u0_a69   79       ???                ???       ???        ??? socket:[3817]
07-05 05:22:30.790 W/TAG     (  481): me.app   481     u0_a69   80       ???                ???       ???        ??? pipe:[4583]
07-05 05:22:30.790 W/TAG     (  481): me.app   481     u0_a69   81       ???                ???       ???        ??? pipe:[4583]
07-05 05:22:30.790 W/TAG     (  481): me.app   481     u0_a69   82       ???                ???       ???        ??? socket:[4593]
07-05 05:22:30.790 W/TAG     (  481): me.app   481     u0_a69   83       ???                ???       ???        ??? pipe:[4594]
07-05 05:22:30.790 W/TAG     (  481): me.app   481     u0_a69   84       ???                ???       ???        ??? pipe:[4594]
07-05 05:22:30.790 W/TAG     (  481): me.app   481     u0_a69   85       ???                ???       ???        ??? socket:[4600]
07-05 05:22:30.790 W/TAG     (  481): me.app   481     u0_a69   86       ???                ???       ???        ??? pipe:[4601]
07-05 05:22:30.790 W/TAG     (  481): me.app   481     u0_a69   87       ???                ???       ???        ??? pipe:[4601]

我很确定我关闭了所有进程和流。为此,我多次检查了该应用程序并运行了 PMD 和 FindBugs。我使用 HttpUrlConnection 进行 HTTPS 通信,我也很确定我断开了所有连接,以便可以重用它们。

有谁知道,那些管道可能是什么(或者我怎么能找到)?

关于套接字(我不知道这是否相关):当我运行 netstat 时,我得到了很多处于 CLOSE_WAIT 状态的套接字:

tcp6       0     24 ::ffff:10.83.12.3:39006 ::ffff:62.75.242.64:443 CLOSE_WAIT
tcp6       0     24 ::ffff:10.83.12.3:53782 ::ffff:62.75.242.64:443 CLOSE_WAIT
tcp6       0     24 ::ffff:10.83.12.3:49433 ::ffff:62.75.242.64:443 CLOSE_WAIT
tcp6       0     24 ::ffff:10.83.12.3:41807 ::ffff:62.75.242.64:443 CLOSE_WAIT
tcp6       0     24 ::ffff:10.83.12.3:34892 ::ffff:62.75.242.64:443 CLOSE_WAIT
tcp6       0     24 ::ffff:10.83.12.3:53105 ::ffff:62.75.242.64:443 CLOSE_WAIT
tcp6       0     24 ::ffff:10.83.12.3:44466 ::ffff:62.75.242.64:443 CLOSE_WAIT

如上所述,我在 Android 端使用 HttpUrlConnection。服务器是运行 PHP 的 Apache 服务器。SSL 证书有效并由 PositiveSSL 颁发。

这可能是网络问题吗?

4

0 回答 0