Bug - error cb() never called (Windows 10 Pro 1709)

cli
triaged

(Ivan) #1

What I Wanted to Do

I wanted to install webpack, a package in order to learn how to code in React by using npm (webpack@1.14.0)

What Happened Instead

I’ve got this log message:
0 info it worked if it ends with ok
1 verbose cli [ ‘C:\Program Files\nodejs\node.exe’,
1 verbose cli ‘C:\Program Files\nodejs\node_modules\npm\bin\npm-cli.js’,
1 verbose cli ‘i’,
1 verbose cli ‘–save-dev’,
1 verbose cli ‘webpack@1.14.0’,
1 verbose cli ‘webpack-dev-server@1.16.2’ ]
2 info using npm@6.4.1
3 info using node@v8.12.0
4 verbose npm-session 8f6dfd500c603d35
5 silly install loadCurrentTree
6 silly install readLocalPackageData
7 timing npm Completed in 1586ms
8 error cb() never called!
9 error This is an error with npm itself. Please report this error at:
10 error https://npm.community

Reproduction Steps

  • Installed digestapps Version 0.9.9.8 (from https://github.com/JohannesBuchner/digestaps) with NLTM enabled (using a corporate proxy server).

  • Installed nssm-2.24 or nssm-2.24-101-g897c7ad

  • Edited digestaps server.cfg (file in the end of this report)

  • Installed Ntlmaps service (and enabled it)

  • Executed (in terminal/prompt): digestaps\nssm-2.24-101-g897c7ad\win32>npm init -y

  • Executed (in terminal/prompt): digestaps\nssm-2.24-101-g897c7ad\win32>npm i --save-dev webpack@1.14.0 webpack-dev-server@1.16.2

Platform Info

$ npm --versions
win32: ‘1.0.0’,
npm: ‘6.4.1’,
ares: ‘1.10.1-DEV’,
cldr: ‘32.0’,
http_parser: ‘2.8.0’,
icu: ‘60.1’,
modules: ‘57’,
napi: ‘3’,
nghttp2: ‘1.32.0’,
node: ‘8.12.0’,
openssl: ‘1.0.2p’,
tz: ‘2017c’,
unicode: ‘10.0’,
uv: ‘1.19.2’,
v8: ‘6.2.414.66’,
zlib: ‘1.2.11’

$ node -p process.platform
win32

===========================
server.cfg from digestaps:
#========================================================================
[GENERAL]

LISTEN_PORT:3128

# If you want APS to authenticate you at WWW servers using NTLM then just leave this
# value blank like PARENT_PROXY: and APS will connect to web servers directly.
# You can specify more than one proxy by leaving a space between each one, and
# APS will detect when one fails and automatically fail-over to the next. EG:
PARENT_PROXY: 10.7.124.1
PARENT_PROXY_PORT:8080
PARENT_PROXY_TIMEOUT:5

# Set to 1 if you want to grant this authorization service to clients from other computers.
# NOTE: all the users from other hosts that will be using you copy of APS for authentication
# will be using your credentials in NTLM auth at the remote host.
ALLOW_EXTERNAL_CLIENTS:0

# If you want to allow some other but not all computers to use your proxy for authorization,
# just set ALLOW_EXTERNAL_CLIENTS:0 and put friendly IP addresses here.
# Use space as a delimiter.  You may use hostnames as well as IP addresses if you wish. EG:
#FRIENDLY_IPS: 192.168.1.1 friendlyhost.local otherhost
# NOTE that special addesses don't work here (192.168.3.0 for example).
FRIENDLY_IPS:

# If you have some local intranet servers that require you to authenticate, but you
# also want to be able to access the internet via an upstream proxy (ie, with the
# PARENT_PROXY value above), then add the addresses that you use to access your intranet
# servers here in the HOSTS_TO_BYPASS_PARENT_PROXY variable as a space delimitted list;
# or otherwise, if you want to bypass the upstream proxy for *all possible hosts* (ie, every
# one to whom a connection can be made directly without going through the proxy), change
# the value of DIRECT_CONNECT_IF_POSSIBLE to 1.  Note that use of one option does not 
# preclude use of the other also.  Examples:
# HOSTS_TO_BYPASS_PARENT_PROXY:myintranetserver.local 172.16.0.1 intranetbox
# ... this would specify three hosts that ntlmaps will bypass the internet proxy for
# and authenticate you to directly.
# DIRECT_CONNECT_IF_POSSIBLE:1
# ... all hosts to whom a connection can be made will now be authenticated to directly.
HOSTS_TO_BYPASS_PARENT_PROXY:
DIRECT_CONNECT_IF_POSSIBLE:0

# Requested URLs are written to "url.log" file. May be useful.
URL_LOG:0

# When a network service listens for connections, there is a maximum number of connection
# attempts to that service that the underlying OS will allow to backlog waiting for a response
# before the OS will start dropping new connection attempts with 'Connection refused'.  The
# standard method of determining the maximum number of backlogged connections is to use the
# SOMAXCONN constant, which is supposed to represent the maximum number that an OS will support
# (for example, 5 on Windows 2000 Pro, and 200 on Windows 2000 server).  However, because this
# is a statically compiled value in a Python distribution, usually this instead represents the
# the most conservative value (5 on all Windows platforms, and 128 on the GNU/Linux variant I
# tried).  So if you are running (for example) a massively threaded/parallel download manager,
# the default value of, say, 5, or whatever SOMAXCONN happens to be set to, may be too low and
# cause some connections to fail.  The value below can be set to any integer (it seems that
# Python just silently caps values above the hard limit for the underlying platform), or it can
# be set to the special value of SOMAXCONN (i.e. MAX_CONNECTION_BACKLOG:SOMAXCONN), to use
# whatever this value happens to be set to in your Python build.  Setting this higher than
# necessary may cause APS to consume more memory than you needed to.
MAX_CONNECTION_BACKLOG:1024

#========================================================================
[CLIENT_HEADER]

# This section describes what and how the server should change in the clients headers.
# Made in order to prevent parent proxy from seeing that you are using wget instead of IE5.5

Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/vnd.ms-powerpoint, */*

# Various User-Agent strings for imitating various browsers and OSes.
# Windows 98, IE 5.5:
# User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)
# Windows 2000, IE 5.5:
# User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows NT5)
# Windows XP SP2, IE 6.0:
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)

# You can uncomment these chages in client's header to mimic IE5+ better, but in this case
# you may expirience problems with *.html if your client does not really handle compression.
#Accept-Encoding: gzip, deflate

#========================================================================
[DIGEST_AUTH]
# What user's name to use during authorization.
USER: HIDDEN

# Password. 
PASSWORD: HIDDEN

#========================================================================
[NTLM_AUTH]

# Optional value, if leaved blank then APS will use gethostname() to determine
# host's name.
# NOTE1: If you Linux host name differs from Windows host name then it may be that
#        MS server wont recognize you host at all and wont grant you access
#        to resources requested. Then you have to use this option and APS will use
#        this name in NTLM negotiations.
# NOTE2: There are several reports that you can successfully use "foreign" host name
#        here. Say, if user may access a resource from 'host1' and may not from 'host2'
#        then there is a chance that APS running on 'host2' with NT_HOSTNAME:host1 will
#        be able to be granted access to the restricted resource. However use this on
#        you own risk as such a trick may be considered as a hack or something.
NT_HOSTNAME:

# Windows Domain.
# NOTE: it is not full qualified internet domain, but windows network domain.
NT_DOMAIN:gov

# What user's name to use during authorization. It may differ form real current username.
# If you enable NTLM_TO_BASIC, below, you can either leave this blank or simply
# hash it out.
USER: HIDDEN

# Password. Just leave it blank here and server will request it at the start time,
# or, if you enable NTLM_TO_BASIC, below, you can either leave this blank or simply
# hash it out, and you *won't* be prompted for a password at start time.
PASSWORD: HIDDEN


# Alternatively, fill in these hashes. You can use the hashes.py program supplied to
# generate the hashes.
# An example of the sort of thing to expect, for the password 'MyPassword' would be
# dKyZykDe1CDcGnPmzqZ+xQAAAAAA
# and
# 8SxBgIPAXjp954WC5h9lLQAAAAAA
#
# If both of these settings are used, then the PASSWORD setting above is ignored.
LM_HASHED_PW:
NT_HASHED_PW:

# If you are running ntlmaps on Windows and your password includes complex characters,
# such as unicode characters outside of the ASCII 0-255 codepage for your native
# language, and you are planning on inputting your password at the prompt when ntlmaps
# starts, then you will need to enable COMPLEX_PASSWORD_INPUT, below.  It should
# be safe to leave enabled for everyone regardless, as ntlmaps will fall back to the
# standard password input mechanism if for some reason it is unable to support complex
# passwords, or if the extension is not required, such as for users on other platforms
# like MacOS X or various *nixes.
# Please note that because this mechanism relies on a custom C extension module 
# (win32console), that this will only work for people running ntlmaps with a supported
# version of Python.  Currently, that includes Python 1.5.2, and the current version
# of Python available (2.4.1).
COMPLEX_PASSWORD_INPUT:1

# These two options replace old FULL_NTLM option.
# NTLM authentication consists virtually of two parts: LM and NT. Windows95/98 use
# only LM part, WindowsNT/2000 can use NT and LM or just NT part.
# Almost always using just LM part will be enough. I had several reports
# about LM and NT requirement and no about just NT.
# So try to setup 1, 1 only if you have enough reasons to do so and when you understand
# what you are doing.
# 0, 0 is an illegal combination
# NOTE: if you change these options then you have to setup flag option accordingly.
LM_PART:1
NT_PART:0

# Highly experimental option. See research.txt for details.
# LM - 06820000
# NT - 05820000
# LM + NT - 07820000
NTLM_FLAGS: 06820000

# This option makes APS try to translate NTLM authentication to very usual "Basic"
# scheme. Almost all http clients know it. With this option set to 1 user will be requested
# by his browser to enter his credentials and these username and password will be used by
# APS for NTLM authentication at MS Proxy server or Web server.
# In such a case different users can use one runnig APS with their own credentials.
# NOTE1: currently translation works so it allows only one try for entering
#        username/password. If you make a mistake you will have to restart you browser.
# NOTE2: With debug:1 basic username/password will be written in log file in clear
#        text format. I could try hide it, but the basic scheme is so weak that anybody
#        who had access to APS would be able to get it.
NTLM_TO_BASIC:0

#========================================================================
[DEBUG]

# Set this to 1 if you want to see debug info in many log files. One per connection.
DEBUG:1

# Set this to 1 to get even more debug info.
BIN_DEBUG:0

# Set this to 1 to see some strange activity on screen. Actually you won't want it.
SCR_DEBUG:0

# Not actually a debug option but gives you some details on authentication process
# into *.auth logs. Also see research.txt.
AUTH_DEBUG:0

# Set this to 1 if you want to see exceptions from threads (i.e. no threads are spawned)
NOTHREADS:0

(Ivan) #2

I am still trying everything in order to get rid of this bug.

  • Updated Windows 10 to latest version (April 2018) - 1803 (compilation 17134.285).
    Same problem…

(Kat Marchán) #3

Duplicate of Bug - error cb() never called (Windows 10 Pro 1709)


(Kat Marchán) #4