-
Notifications
You must be signed in to change notification settings - Fork 462
pereodic crash #873
Comments
You have not registered an |
I have the same problem. So I should do something like this? Is this enough? Do I have to reinstantiate my client or do something else? |
Have you tried adding the error listener? I would imagine it depends on the error, and your application, as to what needs to be done after receiving the error. |
I've had the best results by wrapping an ldapjs Client in my own LdapClient abstraction class. Internally, I create the client, and attach to it a handler that listens for the 'error' event. When the error occurs the handler re-binds the client. That way I call my searches and modifications through my wrapper class and the wrapper class takes care of the internal ldapjs class. |
Hi, I also met this code if I not unbind or destroy the socket, I also know this question is about the RST response from ldap server. const client = ldapjs.createClient({ url, connectTimeout });
client.bind(bindDN, bindPassword, (err) => {
if (err) {
console.log(err)
}
});
client.on('error', (err) => {
if (err) {
console.log(err)
}
}); |
What message is this? I don't recall reading about any such "RST response" in the spec.
This is likely a basic TCP keepalive packet.
I do not believe ldapjs does any such thing. I'm closing this issue since the original reporter has decided not to respond. If a reproduction can be provided, we can reopen it. |
I think this issue it's a bit old, but somehow I met a similar problems when I tried to write an helper (service) in NestJS. This issue not came after every restart until it hit a certain interval. My issue related to credentials validation to Microsoft AD which just went success whatever the password with just a correct dn. AFAIK, other teams working with this AD were using php which only validate once and flush the client and I assumed with hanging connection like this on JS had some problems. Minimal reproductionFirst, I import Client and make an variable to containing the ldapjs client import { Client, SearchEntry, createClient } from 'ldapjs'
export class LdapService implements OnApplicationBootstrap {
private auth: Client
} then I add function that run everytime the NestJS is started (or restart) to initiate the client async onApplicationBootstrap() {
const ldapOptions = {
url: LDAP_URL,
reconnect: true,
}
this.auth = createClient(ldapOptions)
this.auth.on('connectError', (err) => {
this.logger.warn(`Auth ${err}`)
})
this.auth.on('error', (err) => this.logger.error(`Auth ${err}`))
} Finally I had an function to verify dn and password by bind async authenticateLdap(dn, password): Promise <boolean> {
return new Promise((resolve) => {
this.auth.bind(dn, password, (err) => {
if (err) {
// Bind failed
resolve(false)
} else {
// Bind was successful, immediately unbind for next user authentication
this.auth.unbind()
resolve(true)
}
})
})
} I tried to unbind immediately after it succesfully binded However in about several minutes later it came an error this.auth.on('error', (err) => this.logger.error(`Auth ${err}`)) |
Hello!
After some time running I get the following error:
What am I doing wrong?
The text was updated successfully, but these errors were encountered: