#18741: Random failure in sagespawn.pyx
-------------------------------+------------------------
       Reporter:  vbraun       |        Owner:
           Type:  defect       |       Status:  new
       Priority:  major        |    Milestone:  sage-6.8
      Component:  interfaces   |   Resolution:
       Keywords:  random_fail  |    Merged in:
        Authors:               |    Reviewers:
Report Upstream:  N/A          |  Work issues:
         Branch:               |       Commit:
   Dependencies:               |     Stopgaps:
-------------------------------+------------------------
Changes (by vbraun):

 * cc: jdemeyer (added)


Comment:

 On OSX:
 {{{
 sage -t --long src/sage/interfaces/sagespawn.pyx
     Bad exit: 1
 **********************************************************************
 Tests run before process (pid=73714) failed:
 sage: from sage.interfaces.sagespawn import SageSpawn ## line 45 ##
 sage: SageSpawn("sleep 1", name="Sleeping Beauty") ## line 46 ##
 Sleeping Beauty with PID 73715 running /bin/sleep 1
 sage: sig_on_count() ## line 48 ##
 0
 sage: from sage.interfaces.sagespawn import SageSpawn ## line 67 ##
 sage: s = SageSpawn("true", name="stupid process") ## line 68 ##
 sage: s  # indirect doctest ## line 69 ##
 stupid process with PID 73717 running /usr/bin/true
 sage: while s.isalive():  # Wait until the process finishes
     sleep(0.1) ## line 71 ##
 sage: s  # indirect doctest ## line 73 ##
 stupid process finished running /usr/bin/true
 sage: sig_on_count() ## line 75 ##
 0
 sage: from sage.interfaces.sagespawn import SageSpawn ## line 96 ##
 sage: s = SageSpawn("sh", ["-c", "while true; do sleep 1; done"]) ## line
 97 ##
 sage: s._keep_alive() ## line 98 ##
 sage: pid = s.pid ## line 99 ##
 sage: del s ## line 100 ##
 sage: import gc ## line 101 ##
 sage: _ = gc.collect() ## line 102 ##
 sage: from signal import SIGTERM ## line 107 ##
 sage: os.kill(pid, SIGTERM) ## line 108 ##
 sage: sig_on_count() ## line 109 ##
 0
 sage: from sage.interfaces.sagespawn import SageSpawn ## line 122 ##
 sage: s = SageSpawn("sleep 1000") ## line 123 ##
 sage: s.close() ## line 124 ##
 sage: while s.isalive():  # long time (5 seconds)
     sleep(0.1) ## line 125 ##
 sage: sig_on_count() ## line 127 ##
 0
 sage: from sage.interfaces.sagespawn import SageSpawn ## line 157 ##
 sage: s = SageSpawn("sh", ["-c", "while true; do sleep 1; done"]) ## line
 158 ##
 sage: s.terminate_async(interval=0.2) ## line 163 ##
 sage: while True:
     try:
         os.kill(s.pid, 0)
     except OSError:
         sleep(0.1)
     else:
         break  # process got killed ## line 164 ##
 sage: sig_on_count() ## line 171 ##
 0
 }}}

--
Ticket URL: <http://trac.sagemath.org/ticket/18741#comment:2>
Sage <http://www.sagemath.org>
Sage: Creating a Viable Open Source Alternative to Magma, Maple, Mathematica, 
and MATLAB

-- 
You received this message because you are subscribed to the Google Groups 
"sage-trac" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/sage-trac.
For more options, visit https://groups.google.com/d/optout.

Reply via email to