Open
Description
Describe the bug
Verdaccio crashes (or rather verdaccio-memory
I suppose)
To Reproduce
Launch /usr/bin/verdaccio --config /etc/verdaccio/config.yaml
and create a lot of simultaneous requests (this is done by our CI pipeline launching multiple jobs simultaneously)
Expected behavior
No crash
Configuration File (cat ~/.config/verdaccio/config.yaml)
plugins: /usr/lib/node_modules
uplinks:
npmjs:
url: https://registry.npmjs.org/
maxage: 24h
auth:
htpasswd:
file: ./htpasswd
web:
title: Verdaccio
packages:
'@*/*':
access: $all
publish: $authenticated
unpublish: $authenticated
proxy: npmjs
'**':
access: $all
publish: $authenticated
unpublish: $authenticated
proxy: npmjs
logs:
- { type: stdout, format: pretty, level: http }
store:
memory:
limit: 4096
listen:
- "[::]:8080"
I tried playing around with store.memory.limit
, but to no avail.
Debugging output
-
$ NODE_DEBUG=request verdaccio
display request calls (verdaccio <--> uplinks)
out-request.txt -
$ DEBUG=express:* verdaccio
enable extreme verdaccio debug mode (verdaccio api)
out-extreme.txt -
$ npm -ddd
prints:
npm verb cli [ '/usr/bin/node', '/usr/bin/npm', '-ddd' ]
npm info using [email protected]
npm info using [email protected]
npm timing npm:load:whichnode Completed in 2ms
npm timing config:load:defaults Completed in 2ms
npm timing config:load:file:/usr/lib/node_modules/npm/npmrc Completed in 1ms
npm timing config:load:builtin Completed in 2ms
npm timing config:load:cli Completed in 3ms
npm timing config:load:env Completed in 0ms
npm timing config:load:project Completed in 2ms
npm timing config:load:file:/root/.npmrc Completed in 0ms
npm timing config:load:user Completed in 0ms
npm timing config:load:file:/usr/etc/npmrc Completed in 1ms
npm timing config:load:global Completed in 1ms
npm timing config:load:validate Completed in 0ms
npm timing config:load:credentials Completed in 2ms
npm timing config:load:setEnvs Completed in 1ms
npm timing config:load Completed in 13ms
npm timing npm:load:configload Completed in 14ms
npm timing npm:load:setTitle Completed in 0ms
npm timing npm:load:setupLog Completed in 3ms
npm timing npm:load:cleanupLog Completed in 3ms
npm timing npm:load:configScope Completed in 0ms
npm timing npm:load:projectScope Completed in 1ms
npm timing npm:load Completed in 29ms
npm timing config:load:flatten Completed in 4ms
npm <command>
Usage:
npm install install all the dependencies in your project
npm install <foo> add the <foo> dependency to your project
npm test run this project's tests
npm run <foo> run the script named <foo>
npm <command> -h quick help on <command>
npm -l display usage info for all commands
npm help <term> search for help on <term>
npm help npm more involved overview
All commands:
access, adduser, audit, bin, bugs, cache, ci, completion,
config, dedupe, deprecate, diff, dist-tag, docs, doctor,
edit, exec, explain, explore, find-dupes, fund, get, help,
hook, init, install, install-ci-test, install-test, link,
ll, login, logout, ls, org, outdated, owner, pack, ping,
prefix, profile, prune, publish, rebuild, repo, restart,
root, run-script, search, set, set-script, shrinkwrap, star,
stars, start, stop, team, test, token, uninstall, unpublish,
unstar, update, version, view, whoami
Specify configs in the ini-formatted file:
/root/.npmrc
or on the command line via: npm <command> --key=value
More configuration info: npm help config
Configuration fields: npm help 7 config
[email protected] /usr/lib/node_modules/npm
npm verb exit 0
npm timing npm Completed in 217ms
npm info ok
$ npm config get registry
prints:
https://registry.npmjs.org/
Additional context
Simply run in an LXD container running Ubuntu 20.04.