diff --git a/NEWS b/NEWS index ca895bdca..e2e42404a 100644 --- a/NEWS +++ b/NEWS @@ -27,6 +27,9 @@ New in spot 2.2.1.dev (Not yet released) * ltlfilt --from-ltlf should ensure that "alive" holds initially in order to reject empty traces. + * the on-line translator had a bug where a long ltl3ba process would + continue running even after the script had timeout'ed. + New in spot 2.2.1 (2016-11-21) Bug fix: diff --git a/python/ajax/spotcgi.in b/python/ajax/spotcgi.in index 308c5d840..baec65f70 100755 --- a/python/ajax/spotcgi.in +++ b/python/ajax/spotcgi.in @@ -164,7 +164,7 @@ def finish(kill = False): if kill: # Kill all children - os.kill(0, signal.SIGTERM) + os.killpg(child, signal.SIGTERM) # Should we prune the cache? stamp = imgdir + '/cache.stamp' now = time.time() @@ -217,7 +217,7 @@ it has been running for too long. Please try a shorter formula, or different options. If you want to benchmark big formulae it is better to install Spot on your own computer.
\n""") - finish(kill = True) + finish(kill=True) def run_dot(basename, ext): outname = basename + '.' + ext @@ -409,7 +409,6 @@ if output_type == 'v3': spot.unblock_signal(signal.SIGALRM) spot.unblock_signal(signal.SIGTERM) -os.setpgrp() child = os.fork() if child != 0: @@ -425,6 +424,8 @@ if child != 0: os.waitpid(child, 0) exit(0) +os.setpgrp() + # Global options utf8 = False for g in form.getlist('g'): @@ -608,7 +609,7 @@ elif translator == 'l3': g = spot.relabel(f, spot.Pnn, m) args.extend(['-f', "'" + spot.str_spin_ltl(g) + "' |"]) try: - automaton = spot.automaton(" ".join(args)) + automaton = spot.automaton(" ".join(args), no_sid=True) except RuntimeError as e: unbufprint('