Пакет NodeJS Activedirectory пропускает сокеты в Unix - PullRequest
0 голосов
/ 01 ноября 2019

Прежде всего позвольте мне начать с того, что я не являюсь экспертом по NodeJS или Unix (.Net и Windows - моя сильная сторона), поэтому извините, если я задаю вопросы, на которые я должен знать ответы.

Для проекта, над которым я работаю, мы используем сервер NodeJs, который использует пакет activedirectory. Мы обращаемся к серверу AD / LDAPS, чтобы получить пользователя и проверить некоторые атрибуты. Вот код, о котором идет речь:

var adConfig = {
    url: "ldaps://" + adServer,
    baseDN: "DC=ad,DC=onsemi,DC=com",
    username: config.ldaps_username,
    password: config.ldaps_password,
    tlsOptions: {
        rejectUnauthorized: false
    }
};

var ad = new activeDirectory(adConfig);
ad.findUser(userId, true, (error, user) => {
    ...
}

Для каждых 10 прогонов этот код, по-видимому, содержит около 150 сокетов. Я проверил открытые сокеты с помощью команды "lsof | grep node", и это тип новых дополнений, которые я получаю из первоначального базового вызова:

node      14493 14498      mesiapp  mem       REG              253,2    105824   2101177 /usr/lib64/libresolv-2.17.so
node      14493 14498      mesiapp  mem       REG              253,2     31408   2101165 /usr/lib64/libnss_dns-2.17.so
node      14493 14498      mesiapp  mem       REG              253,2     61624   2101167 /usr/lib64/libnss_files-2.17.so

node      14493 14497      mesiapp   25u     sock                0,7       0t0 312395132 protocol: TCP
node      14493 14497      mesiapp   26u     sock                0,7       0t0 312395133 protocol: TCP
node      14493 14497      mesiapp   27u     sock                0,7       0t0 312395134 protocol: TCP
node      14493 14497      mesiapp   28u     sock                0,7       0t0 312395135 protocol: TCP
node      14493 14497      mesiapp   29u     sock                0,7       0t0 312392286 protocol: TCP
node      14493 14497      mesiapp   30u     sock                0,7       0t0 312395136 protocol: TCP
node      14493 14497      mesiapp   31u     sock                0,7       0t0 312395137 protocol: TCP
node      14493 14497      mesiapp   32u     sock                0,7       0t0 312395138 protocol: TCP
node      14493 14497      mesiapp   33u     sock                0,7       0t0 312395139 protocol: TCP
node      14493 14497      mesiapp   34u     sock                0,7       0t0 312395141 protocol: TCP

Эти дескрипторы никогда не исправляются, и в итоге у нас заканчиваетсяих. Это только происходит на нашем сервере Redhat Linux. Когда я запускаю сервер на Mac, файловые дескрипторы не увеличиваются при каждом вызове.

Я ищу помощь по любым дополнительным стратегиям отладки, чтобы найти источник утечки. Я не могу найти больше подробных настроек lsof, и я просмотрел код activedirectory js столько, сколько смог, и не могу найти какие-либо прямые сокеты, которые используются. И, к сожалению, этому коду 4 года, и он не обновлялся, и я не могу достать оригинального автора или найти другой пакет, который работает через LDAPS с сервером Windows AD от NodeJS.

Любойпомощь или предложения будут полезны. Работающий Node v11.12.0 и Red Hat Enterprise Linux v7.6, ядро ​​v3.10.0-957.el7.x86_64

...