Comments (1)
On the first Ctrl-C, job submission was stopped and active jobs were allowed to finish. On the second Ctrl-C, a SIGINT was sent to active jobs. The jobs terminated but due to a bug, Jobrnr thought they were still active. On the third Ctrl-C, another SIGINT was sent to "active" jobs. However, the jobs were no longer active and thus the "no such process" exception.
This is due to a combination of two issues:
-
Nil exitstatus for signaled process (root cause)
When a process is terminated via a SIGINT, it doesn't have an exitstatus (the exitstatus is nil). So checking for pass/fail of a process terminated via a SIGINT by using
exitstatus.zero?
attempted to call thezero?
method on anil
value and thus caused an exception. -
Exceptions in Futures are silent
Futures are used to execute multiple jobs concurrently. Jobrnr polls for the completion of jobs by looking for Futures in the
fulfilled
state. When all futures are fulfilled and the job queue is empty, everything is complete and Jobrnr terminates. However, if an exception occurs in a Future, the exception is local to the Future thread (i.e. it is not raised in the parent thread) and Future goes to the 'rejected' state. These silent exceptions caused Jobrnr to hang.
The fix for this should address both the root cause and the hang due to silent exceptions.
from jobrnr.
Related Issues (20)
- Jobs run with a failing parent if at least one other parent passes
- Add version
- Stack trace on bad option
- Add per job timeout
- Add Plugin and Script Specific Exceptions
- Add a DSL for the plus option parser
- Add `--dry-run` option
- Add graceful terminate on ctrl-c
- Add option to customize log recycling
- Remove use of deprecated Fixnum HOT 1
- Add comparison to GNU Make to README
- Investigate making runs reproducible
- job::repeat 0 causes infinite loop
- Document seed substitution
- Consider way of passing metadata between job definition and instances HOT 2
- --version uses Git SHA1 from wrong repository
- Stack trace on early Ctrl-C
- Capture stderr of jobs HOT 2
- Typo in man page
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jobrnr.