Skip to content
This repository has been archived by the owner on May 14, 2024. It is now read-only.

Unbind not working with node 10 #483

Closed
danez opened this issue Jun 7, 2018 · 9 comments
Closed

Unbind not working with node 10 #483

danez opened this issue Jun 7, 2018 · 9 comments

Comments

@danez
Copy link

danez commented Jun 7, 2018

When I try to use ldapjs client.unbind with node 10.0.0 (or 10.4.0) it does not work and the callback of unbind is never called. I debugged and it seems something in _sendSocket stops working, the function messageCallback is never called. While debugging it worked sometimes and the UnbindResponse was received successfully, but most of the time it didn't work, so I was wondering if it might be some timing issue, as while debugging everything runs slower/stepped.

The last trace log I see is:

{"name":"ldapjs","component":"client","hostname":"abc","pid":60921,"clazz":"Client","ldap_id":"6__ldaps://ldap.domain.net","level":10,"msg":"sending request {\"messageID\":3,\"protocolOp\":\"UnbindRequest\",\"controls\":[]}","time":"2018-06-07T10:39:44.165Z","v":0}

The code is

            client.search(
                'ou=domain,dc=sub,dc=net',
                opts, (err, res) => {
                    if (err) {
                        cb(err, null);
                        return;
                    }
                    res.on(
                        'searchEntry', entry => {
                            if (entry.object.hasOwnProperty('mail')) {
                                retrievedUsers[entry.object.uid] = entry.object;
                            }
                        }
                    );
                    res.on(
                        'error', err => {
                            cb(err, null);
                            client.unbind(
                                err => {
                                    if (err) {
                                        logger.error(err);
                                    }
                                }
                            );
                        }
                    );
                    res.on(
                        'end', () => {
                            client.unbind(
                                err => { // << --- never called
                                    cb(err, retrievedUsers);
                                }
                            );
                        }
                    );
                }
            );
@risa
Copy link

risa commented Jun 15, 2018

The same applies to node 10.4.1

@jvanalst
Copy link

jvanalst commented Aug 2, 2018

I can confirm that that unbind callback isn't being called in node any v10. The last working version was node v9.

@jvanalst
Copy link

jvanalst commented Aug 2, 2018

There's a pull request attempting to fix this (#485) but it's failing some tests still.

@purplemana
Copy link

Pardon the pun but I am really in a bind to get this fix :). @jgeurts: Would you mind giving a fork?

@acappella2017
Copy link
Contributor

I believe this issue is caused by some weird behavior of Nodejs 10. Opened nodejs/node#24577

vesse added a commit to vesse/node-ldapauth-fork that referenced this issue Dec 3, 2018
@jgeurts
Copy link

jgeurts commented Dec 10, 2018

@purplemana It's fixed with https://www.npmjs.com/package/ldapts, if you want to give that a go.

@hwkd
Copy link

hwkd commented Feb 16, 2019

@jgeurts I just switched to using ldapts package instead. Ended up producing better code and easier to test and works with node 11.

@jsumners
Copy link
Member

Please track #524.

@jsumners
Copy link
Member

⚠️ This issue has been locked due to age. If you have encountered a recent
problem that seems to be covered by this issue, please open a new issue.

Please include a minimal reproducible example
when opening a new issue.

@ldapjs ldapjs locked as resolved and limited conversation to collaborators Mar 10, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants