У нас есть http-сервер, который реализован на основе Java NIO.
Он работает на Ubuntu 10.04.2 LTS с версией Java "1.6.0_20"
Java (TM) SE Runtime Environment (сборка 1.6.0_20-b02)
Серверная виртуальная машина Java HotSpot (TM) (сборка 16.3-b01, смешанный режим)
Однако, он пропускает файловые дескрипторы, все они являются сокетами домена unix.
Когда используется команда "netstat -anp", мы можем обнаружить, что процесс открывает только два сокета домена unix.
Однако при использовании lsof -p мы можем обнаружить, что существует огромное количество файловых дескрипторов, которые являются сокетом домена unix и имеют то же значение устройства и значение узла, что и значение, найденное в netstat.
Я проверил наш код, и все SocketChannels закрыты должным образом.
Это ошибка Sun JDK?
Как мы можем это исправить?