Closed wresch closed 5 years ago
I was able to reproduce both the error and the work around. @cclerget
@jscook2345 Working on it
@wresch #2366 should fix the issue. If you can give it a try, thanks !
works for me:
$ singularity --version
singularity version 3.0.1-55.gc52352b
$ python test.py
ls (GNU coreutils) 8.25
...
ls (GNU coreutils) 8.25
...
$
Version of Singularity:
3.0.1-1
Expected behavior
Doing a
singularity exec
from perl/python twice should workActual behavior
A single
singularity exec
from perl (system) or python (subprocess.call) runs as expected. A second call results in the calling script getting sent aSIGTTOU
and being stopped. 2.6.0 did not exhibit this behaviorSteps to reproduce behavior
Get a container for testing
Perl script:
Python script:
Running either one of those:
Same result with perl. If you comment out the second call to singularity the script finishes as expected. If you call a different container, the script gets stopped as it did above. Here is an excerpts of an strace looking only at the python process:
And indeed if we ignore SIGTTOU the python script finishes just fine
My (admittedly weak) understanding of SIGTTOU is that it is sent to background processes that tries to modify terminal settings or write to stderr/stdout iff the tty has tostop mode enabled. But the python/perl processes here are not in fact background processes and my tty (like most, I belive) does not have tostop mode enabled.