Bug #39556
closednpm problem causes "make-dist" to fail when directory contains colon character
0%
Description
Environment: openSUSE Leap 15.1, Tumbleweed, Python 2+3 and Python 3 only
tl;dr - when the directory path contains a colon (':') character, make-dist fails in the npm phase with the error messages shown below. When the directory does not contain a colon, the bug does not manifest and the npm phase succeeds.
When I run make-dist on tip of master branch, I get:
Collecting nodeenv Installing collected packages: nodeenv Successfully installed nodeenv-1.3.3 * Install prebuilt node (10.13.0) ..... done. * Appending data to /tmp/tmp.PRGQz8NIRr/bin/activate * Appending data to /tmp/tmp.PRGQz8NIRr/bin/activate.fish > fsevents@1.2.4 install /home/smithfarm/obs/filesystems:ceph:octopus:upstream/ceph/tmp.gs6pfXbgP2/src/pybind/mgr/dashboard/frontend/node_modules/fsevents > node install > node-sass@4.11.0 install /home/smithfarm/obs/filesystems:ceph:octopus:upstream/ceph/tmp.gs6pfXbgP2/src/pybind/mgr/dashboard/frontend/node_modules/node-sass > node scripts/install.js Cached binary found at /home/smithfarm/.npm/node-sass/4.11.0/linux-x64-64_binding.node > node-sass@4.11.0 postinstall /home/smithfarm/obs/filesystems:ceph:octopus:upstream/ceph/tmp.gs6pfXbgP2/src/pybind/mgr/dashboard/frontend/node_modules/node-sass > node scripts/build.js Binary found at /home/smithfarm/obs/filesystems:ceph:octopus:upstream/ceph/tmp.gs6pfXbgP2/src/pybind/mgr/dashboard/frontend/node_modules/node-sass/vendor/linux-x64-64/binding.node Testing binary Binary is fine > fsevents@1.2.7 install /home/smithfarm/obs/filesystems:ceph:octopus:upstream/ceph/tmp.gs6pfXbgP2/src/pybind/mgr/dashboard/frontend/node_modules/@compodoc/compodoc/node_modules/fsevents > node install > @compodoc/compodoc@1.1.9 postinstall /home/smithfarm/obs/filesystems:ceph:octopus:upstream/ceph/tmp.gs6pfXbgP2/src/pybind/mgr/dashboard/frontend/node_modules/@compodoc/compodoc > opencollective postinstall sh: opencollective: command not found npm ERR! file sh npm ERR! code ELIFECYCLE npm ERR! errno ENOENT npm ERR! syscall spawn npm ERR! @compodoc/compodoc@1.1.9 postinstall: `opencollective postinstall` npm ERR! spawn ENOENT npm ERR! npm ERR! Failed at the @compodoc/compodoc@1.1.9 postinstall script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/smithfarm/.npm/_logs/2019-05-01T11_31_10_328Z-debug.log
This only happens if the directory path contains a colon (':') character.
Updated by Nathan Cutler almost 5 years ago
- Status changed from New to Can't reproduce
Updated by Nathan Cutler almost 5 years ago
- Subject changed from mgr/dashboard: npm problem causes "make check" to fail to mgr/dashboard: npm problem causes "make-dist" to fail
- Status changed from Can't reproduce to New
Updated by Nathan Cutler almost 5 years ago
- Related to Documentation #36243: mgr/dashboard: code documentation added
Updated by Nathan Cutler almost 5 years ago
When I revert the compodoc commit, "make-dist" throws a different error:
Collecting nodeenv Installing collected packages: nodeenv Successfully installed nodeenv-1.3.3 * Install prebuilt node (10.13.0) ..... done. * Appending data to /tmp/tmp.Q9zQYPkTHK/bin/activate * Appending data to /tmp/tmp.Q9zQYPkTHK/bin/activate.fish > fsevents@1.2.4 install /home/smithfarm/filesystems:ceph:octopus:upstream/ceph/tmp.tMwmwqMkNd/src/pybind/mgr/dashboard/frontend/node_modules/fsevents > node install > node-sass@4.11.0 install /home/smithfarm/filesystems:ceph:octopus:upstream/ceph/tmp.tMwmwqMkNd/src/pybind/mgr/dashboard/frontend/node_modules/node-sass > node scripts/install.js Cached binary found at /home/smithfarm/.npm/node-sass/4.11.0/linux-x64-64_binding.node > node-sass@4.11.0 postinstall /home/smithfarm/filesystems:ceph:octopus:upstream/ceph/tmp.tMwmwqMkNd/src/pybind/mgr/dashboard/frontend/node_modules/node-sass > node scripts/build.js Binary found at /home/smithfarm/filesystems:ceph:octopus:upstream/ceph/tmp.tMwmwqMkNd/src/pybind/mgr/dashboard/frontend/node_modules/node-sass/vendor/linux-x64-64/binding.node Testing binary Binary is fine > fsevents@1.2.7 install /home/smithfarm/filesystems:ceph:octopus:upstream/ceph/tmp.tMwmwqMkNd/src/pybind/mgr/dashboard/frontend/node_modules/@angular/compiler-cli/node_modules/fsevents > node install added 1556 packages in 14.823s > ceph-dashboard@0.0.0 build /home/smithfarm/filesystems:ceph:octopus:upstream/ceph/tmp.tMwmwqMkNd/src/pybind/mgr/dashboard/frontend > npm run env_build && ng build "--prod" "--progress=false" > ceph-dashboard@0.0.0 env_build /home/smithfarm/filesystems:ceph:octopus:upstream/ceph/tmp.tMwmwqMkNd/src/pybind/mgr/dashboard/frontend > cp src/environments/environment.tpl.ts src/environments/environment.prod.ts && cp src/environments/environment.tpl.ts src/environments/environment.ts && node ./environment.build.js Environment variables have been set sh: ng: command not found npm ERR! file sh npm ERR! code ELIFECYCLE npm ERR! errno ENOENT npm ERR! syscall spawn npm ERR! ceph-dashboard@0.0.0 build: `npm run env_build && ng build "--prod" "--progress=false"` npm ERR! spawn ENOENT npm ERR! npm ERR! Failed at the ceph-dashboard@0.0.0 build script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/smithfarm/.npm/_logs/2019-05-01T15_14_42_038Z-debug.log
Updated by Tiago Melo almost 5 years ago
I just created a new docker container using openSUSE Leap 15.1 and ceph master, and was not able to reproduce the problem.
I think similar problems have happened before and was related to cached files.
Before I compiled ceph I remove the following folders:
rm -rf /ceph/build/ rm -rf /ceph/src/pybind/mgr/dashboard/frontend/node_modules/ rm -rf /ceph/src/pybind/mgr/dashboard/frontend/dist/
I used this dockerfile: https://github.com/ricardoasmarques/ceph-dev-docker/blob/master/Dockerfile
and only changed the distro and installed bzip2 and python-setuptools.
Updated by Nathan Cutler almost 5 years ago
- Status changed from New to Can't reproduce
Thanks, @Tiago - I also tried with a fresh VM and could not reproduce, sigh.
(BTW I always run "make-dist" in a fresh clone, so in my case the issue is being caused by something out-of-tree. Probably some interaction between python modules installed system-wide via pip and others installed via RPM.)
Updated by Nathan Cutler almost 5 years ago
- Status changed from Can't reproduce to New
Reopening. I can reproduce this in an openSUSE 15.1 docker container. The procedure for doing so is:
git clone https://github.com/smithfarm/heebeejeebee.git cd heebeejeebee ./build.sh --rebuild-base ./build.sh
@Tiago - I noticed your docker container uses Tumbleweed. Could you try it with 15.1 instead?
Updated by Nathan Cutler almost 5 years ago
- Subject changed from mgr/dashboard: npm problem causes "make-dist" to fail to mgr/dashboard: npm problem causes "make-dist" to fail on openSUSE Leap 15.1
Updated by Nathan Cutler almost 5 years ago
@Tiago: I see now you wrote you changed the distro in your Dockerfile. There must be a new dependency that your Dockerfile is installing but mine is not. I will try to figure out which one it is.
Updated by Nathan Cutler almost 5 years ago
- Subject changed from mgr/dashboard: npm problem causes "make-dist" to fail on openSUSE Leap 15.1 to mgr/dashboard: npm problem causes "make-dist" to fail when directory contains colon character
- Description updated (diff)
- Status changed from New to 12
Updated title and description to reflect Tiago's analysis - i.e., the problem only happens when the directory contains a colon (':') character.
Updated by Lenz Grimmer almost 5 years ago
Is this something worthwhile reporting to the npm maintainers? Or maybe it's a known limitation?
Updated by Ernesto Puerta about 3 years ago
- Status changed from New to Rejected
Closing as, per discussion in the corresponding NPM CLI issue, it seems that the <colon> is not a valid char in POSIX paths (in fact it's used for separating paths, like in the PATH environment variable).
Updated by Nathan Cutler about 3 years ago
- Project changed from mgr to Ceph
- Category deleted (
160) - Status changed from Rejected to In Progress
- Assignee set to Nathan Cutler
Ernesto Puerta wrote:
Closing as, per discussion in the corresponding NPM CLI issue, it seems that the <colon> is not a valid char in POSIX paths (in fact it's used for separating paths, like in the PATH environment variable).
Thanks. The "fix", then, is to ensure that the full path to the directory where make-dist is run does not contain any ':' characters. I will open a PR to add a sanity check for this to the script.
Updated by Nathan Cutler about 3 years ago
- Subject changed from mgr/dashboard: npm problem causes "make-dist" to fail when directory contains colon character to npm problem causes "make-dist" to fail when directory contains colon character
Updated by Nathan Cutler about 3 years ago
- Status changed from In Progress to Fix Under Review
- Pull request ID set to 40614
Updated by Nathan Cutler about 3 years ago
- Backport set to pacific, octopus, nautilus
Updated by Nathan Cutler about 3 years ago
- Related to deleted (Documentation #36243: mgr/dashboard: code documentation)
Updated by Kefu Chai about 3 years ago
- Status changed from Fix Under Review to Pending Backport
Updated by Backport Bot about 3 years ago
- Copied to Backport #50356: nautilus: npm problem causes "make-dist" to fail when directory contains colon character added
Updated by Backport Bot about 3 years ago
- Copied to Backport #50357: octopus: npm problem causes "make-dist" to fail when directory contains colon character added
Updated by Backport Bot about 3 years ago
- Copied to Backport #50358: pacific: npm problem causes "make-dist" to fail when directory contains colon character added
Updated by Loïc Dachary almost 3 years ago
- Status changed from Pending Backport to Resolved
While running with --resolve-parent, the script "backport-create-issue" noticed that all backports of this issue are in status "Resolved" or "Rejected".