-
-
Notifications
You must be signed in to change notification settings - Fork 359
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
spawn-wrap causes failure due to unwritable homedir #951
Comments
For the record, I was able to workaround this bug by forcing spawn-wrap to use a the current working directory instead, through the environment variable it considers:
|
Krinkle
added a commit
to Krinkle/nyc
that referenced
this issue
Jan 3, 2019
By default, spawn-wrap writes temporary files to HOME. It used to be /tmp, but it changed that to HOME to support environments that have 'noexec' flags set on their tmpfs mount. Ref istanbuljs/spawn-wrap#3. The problem with this is that nyc now no longer works in environments without a (writable) home directory (e.g. the 'nobody' user on Linux). While it is fine to fallback to HOME, it should write elsewhere if that is unavailable, and ideally in a way that doesn't require every sysadmin or end-user to hardcode some environmnet variable in their package.json specifically for nyc or spawn-wrap. A common way to communicate this intent is with the XDG_CACHE_HOME environment variable. Fixes istanbuljs#951.
Krinkle
added a commit
to Krinkle/nyc
that referenced
this issue
Jan 3, 2019
By default, spawn-wrap writes temporary files to HOME. It used to be /tmp, but it changed that to HOME to support environments that have 'noexec' flags set on their tmpfs mount. Ref istanbuljs/spawn-wrap#3. The problem with this is that nyc now no longer works in environments without a (writable) home directory (e.g. the 'nobody' user on Linux). While it is fine to fallback to HOME, it should write elsewhere if that is unavailable, and ideally in a way that doesn't require every sysadmin or end-user to hardcode some environment variable in their package.json specifically for nyc or spawn-wrap. A common way to communicate this intent is with the XDG_CACHE_HOME environment variable. Fixes istanbuljs#951.
Krinkle
added a commit
to Krinkle/nyc
that referenced
this issue
Jan 15, 2019
By default, spawn-wrap writes temporary files to HOME. It used to be /tmp, but it changed that to HOME to support environments that have 'noexec' flags set on their tmpfs mount. Ref istanbuljs/spawn-wrap#3. The problem with this is that nyc now no longer works in environments without a (writable) home directory (e.g. the 'nobody' user on Linux). While it is fine to fallback to HOME, it should write elsewhere if that is unavailable, and ideally in a way that doesn't require every sysadmin or end-user to hardcode some environment variable in their package.json specifically for nyc or spawn-wrap. A common way to communicate this intent is with the XDG_CACHE_HOME environment variable. Fixes istanbuljs#951.
Krinkle
added a commit
to Krinkle/nyc
that referenced
this issue
Jan 15, 2019
By default, spawn-wrap writes temporary files to HOME. It used to be /tmp, but it changed that to HOME to support environments that have 'noexec' flags set on their tmpfs mount. Ref istanbuljs/spawn-wrap#3. The problem with this is that nyc now no longer works in environments without a (writable) home directory (e.g. the 'nobody' user on Linux). While it is fine to fallback to HOME, it should write elsewhere if that is unavailable, and ideally in a way that doesn't require every sysadmin or end-user to hardcode some environment variable in their package.json specifically for nyc or spawn-wrap. A common way to communicate this intent is with the XDG_CACHE_HOME environment variable. Fixes istanbuljs#951.
coreyfarrell
pushed a commit
that referenced
this issue
Jan 15, 2019
By default, spawn-wrap writes temporary files to HOME. It used to be /tmp, but it changed that to HOME to support environments that have 'noexec' flags set on their tmpfs mount. Ref istanbuljs/spawn-wrap#3. The problem with this is that nyc now no longer works in environments without a (writable) home directory (e.g. the 'nobody' user on Linux). While it is fine to fallback to HOME, it should write elsewhere if that is unavailable, and ideally in a way that doesn't require every sysadmin or end-user to hardcode some environment variable in their package.json specifically for nyc or spawn-wrap. A common way to communicate this intent is with the XDG_CACHE_HOME environment variable. Fixes #951.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Observed Behavior
When using nyc as a system user that is not allowed to write to its home directory (e.g.
HOME=/nonexistent
), a command likenyc qunit test
or some other use of nyc fails as follows:I believe this is because spawn-wrap, unlike nyc, defaults to using a a sub directory of
HOME
as its working directory. Instead of using process.cwd() or TMPDIR etc, like nyc does.This should probably be fixed upstream in spawn-wrap, but could be worked around in nyc by passing NYC_CWD as the
workingDir
parameter to the spawn-wrap function.Currently ([email protected]:/bin/nyc.js), nyc invokes spwan-wrap with two parameters, leaving the third parameter (workingDir) unset. In spawn-wrap (spawn-wrap:/index.js, this means it defaults to the setup of creating a directory in the os-home directory.
The text was updated successfully, but these errors were encountered: