Overview
Comment: | Fixed missing call to set state/status correctly on killreq |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.55 |
Files: | files | file ages | folders |
SHA1: |
31c35bf056f1f502fc80576adf02e71c |
User & Date: | mrwellan on 2014-03-28 11:45:36 |
Other Links: | branch diff | manifest | tags |
Context
2014-06-02
| ||
13:33 | Merged 31c3 from v1.55 into v1.60 and fixed couple compile issues check-in: 7383eb0df2 user: mrwellan tags: v1.60 | |
2014-03-29
| ||
10:31 | Consolidated -target calls to one cleaner call, added HOME and USER to default ignored vars in env2file. Keep ignored vars in file but comment them out. check-in: f2d7568565 user: matt tags: v1.55 | |
2014-03-28
| ||
11:45 | Fixed missing call to set state/status correctly on killreq check-in: 31c35bf056 user: mrwellan tags: v1.55 | |
10:59 | Added specified tests to the required list to fix corner case where a specified test could get dropped check-in: 0f5dd6bf65 user: mrwellan tags: v1.55 | |
Changes
Modified launch.scm from [e1a0a2dd1d] to [168401dff3].
︙ | ︙ | |||
324 325 326 327 328 329 330 | (begin (mutex-lock! m) ;; NOTE: The pid can change as different steps are run. Do we need handshaking between this ;; section and the runit section? Or add a loop that tries three times with a 1/4 second ;; between tries? (let* ((pid (vector-ref exit-info 0))) (if (number? pid) | > > > | | | | | | | | | | | | | > | | | > | < | 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 | (begin (mutex-lock! m) ;; NOTE: The pid can change as different steps are run. Do we need handshaking between this ;; section and the runit section? Or add a loop that tries three times with a 1/4 second ;; between tries? (let* ((pid (vector-ref exit-info 0))) (if (number? pid) (handle-exceptions exn (debug:print-info 0 "Unable to kill process with pid " pid ", possibly already killed.") ;;(process-signal pid signal/kill)) (begin (debug:print 0 "WARNING: Request received to kill job (attempt # " kill-tries ")") (let ((processes (cmd-run->list (conc "pgrep -l -P " pid)))) (for-each (lambda (p) (let* ((parts (string-split p)) (p-id (if (> (length parts) 0) (string->number (car parts)) #f))) (if p-id (begin (debug:print 0 "Killing " (cadr parts) "; kill -9 " p-id) ;; (process-signal pid signal/kill))))) ;; (system (conc "kill -9 " p-id)))))) (car processes))) (system (conc "kill -9 -" pid)) (tests:test-set-status! test-id "KILLED" "FAIL" (args:get-arg "-m") #f))) (begin (debug:print 0 "WARNING: Request received to kill job but problem with process, attempting to kill manager process") (tests:test-set-status! test-id "KILLED" "FAIL" (args:get-arg "-m") #f) (sqlite3:finalize! tdb) (exit 1) ;; IS THIS NECESSARY OR WISE??? ))) (set! kill-tries (+ 1 kill-tries)) (mutex-unlock! m))) ;; (sqlite3:finalize! db) (if keep-going |
︙ | ︙ |