Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js Unix上的NodeJS Activedirectory包泄漏套接字_Node.js_Active Directory_Redhat - Fatal编程技术网

Node.js Unix上的NodeJS Activedirectory包泄漏套接字

Node.js Unix上的NodeJS Activedirectory包泄漏套接字,node.js,active-directory,redhat,Node.js,Active Directory,Redhat,首先,让我先说我不是NodeJS或Unix专家(.Net和Windows是我的强项),所以如果我问一些我应该知道答案的问题,请原谅 对于我正在进行的一个项目,我们使用的是使用activedirectory包的NodeJs服务器。我们调用AD/LDAPS服务器来获取用户并验证一些属性。以下是相关代码: var adConfig = { url: "ldaps://" + adServer, baseDN: "DC=ad,DC=onsemi,DC=com", username

首先,让我先说我不是NodeJS或Unix专家(.Net和Windows是我的强项),所以如果我问一些我应该知道答案的问题,请原谅

对于我正在进行的一个项目,我们使用的是使用activedirectory包的NodeJs服务器。我们调用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年了,还没有更新,我无法找到原始作者,也无法从NodeJS找到另一个通过LDAPS与Windows广告服务器协同工作的软件包


任何帮助或建议都会有所帮助。运行节点v11.12.0和Red Hat Enterprise Linux v7.6,内核v3.10.0-957.el7.x86_64

您看到该软件包了吗?这是一个分叉的包,但仍然保持。感谢那个建议,我用那个包测试了它,但仍然是一个问题。我倾向于猜测这可能是服务器问题,而不是代码问题,但我对Unix的了解还远远不够,所以不知道从哪里开始。相同的问题可以在两个不同的unix服务器上复制。您可以随时在GitHub上查看维护人员是否有任何想法。您看到该软件包了吗?这是一个分叉的包,但仍然保持。感谢那个建议,我用那个包测试了它,但仍然是一个问题。我倾向于猜测这可能是服务器问题,而不是代码问题,但我对Unix的了解还远远不够,所以不知道从哪里开始。同样的问题可以在两个不同的unix服务器上复制。您可以随时在GitHub上查看维护人员是否有任何想法。