diff options
author | George Hartzell <hartzell@alerce.com> | 2017-08-03 10:33:16 -0700 |
---|---|---|
committer | scheibelp <scheibel1@llnl.gov> | 2017-08-03 10:33:16 -0700 |
commit | 36496b91740b2af0099dce6066722f763b38341f (patch) | |
tree | 6488964d844f96a04c7b52575c944d478bb46e37 /NOTICE | |
parent | 5ac10b90c532e075c7be4bfea477c6fe833ee7ff (diff) | |
download | spack-36496b91740b2af0099dce6066722f763b38341f.tar.gz spack-36496b91740b2af0099dce6066722f763b38341f.tar.bz2 spack-36496b91740b2af0099dce6066722f763b38341f.tar.xz spack-36496b91740b2af0099dce6066722f763b38341f.zip |
Fix crashes when running spack install under nohup (#4926)
* Fix crashes when running spack install under nohup
Fixes #4919
For reasons that I do not entire understand, duplicate_stream() throws
an '[Errno 22] Invalid argument' exception when it tries to
`os.fdopen()` the duplicated file descriptor generated by
`os.dup(original.fileno())`. See spack/llnl/util/lang.py, line
394-ish.
This happens when run under `nohup`, which supposedly has hooked
`stdin` to `/dev/null`.
It seems like opening and using `devnull` on the `input_stream` in
this situation is a reasonable way to handle the problem.
* Be more specific about error being handled.
Only catch the specific error that happens when trying to dup
the stdin that nohup provides.
Catching e as a StandardErorr and then
`type(e).__name__` tells me that it's an OSError.
Printing e.errno tells me that it's 22
Double checking tells me that 22 is EINVAL.
Phew.
Diffstat (limited to 'NOTICE')
0 files changed, 0 insertions, 0 deletions