Skip to content

BadRequestError from verdaccio-memory #410

Open
@fiesh

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.

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions