Overview
Comment: | Gracefully deal with cases where the tasks line does not have the host/pid of the running task |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.60 |
Files: | files | file ages | folders |
SHA1: |
ee38bc3f4125865775d6e5082f64798b |
User & Date: | mrwellan on 2014-10-20 15:32:12 |
Other Links: | branch diff | manifest | tags |
Context
2014-10-20
| ||
18:02 | Purge connections that haven't been used in 60 seconds - they might have idled out check-in: a128117bd7 user: matt tags: v1.60 | |
15:32 | Gracefully deal with cases where the tasks line does not have the host/pid of the running task check-in: ee38bc3f41 user: mrwellan tags: v1.60 | |
15:13 | Gracefully deal with cases where the tasks line does not have the host/pid of the running task check-in: e44ac6ce65 user: mrwellan tags: v1.60 | |
Changes
Modified tasks.scm from [3d122c3c2c] to [5a2500fe53].
︙ | ︙ | |||
628 629 630 631 632 633 634 | (debug:print 0 "No run launching processes found for " target " / " run-name) (debug:print 0 "Found " (length records) " run(s) to kill.")) (for-each (lambda (record) (let* ((param-key (list-ref record 8)) (match-dat (string-search hostpid-rx param-key))) (if match-dat | | | | > | | 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 | (debug:print 0 "No run launching processes found for " target " / " run-name) (debug:print 0 "Found " (length records) " run(s) to kill.")) (for-each (lambda (record) (let* ((param-key (list-ref record 8)) (match-dat (string-search hostpid-rx param-key))) (if match-dat (let ((hostname (cadr match-dat)) (pid (caddr match-dat))) (debug:print 0 "Sending SIGINT to process " pid " on host " hostname) (if (equal? (get-host-name) hostname) (begin (handle-exceptions exn (begin (debug:print 0 "Kill of process " pid " on host " hostname " failed.") (debug:print 0 " message: " ((condition-property-accessor 'exn 'message) exn)) #t) (process-signal (string->number pid) signal/int) (thread-sleep! 5) (process-signal (string->number pid) signal/kill))) ;; (call-with-environment-variables (let ((old-targethost (getenv "TARGETHOST"))) (set-environment-variable "TARGETHOST" hostname) (system (conc "nbfake " kill " " pid)) (if old-targethost (set-environment-variable "TARGETHOST" old-targethost))))) (debug:print 0 "ERROR: no record or improper record for " target "/" run-name " in tasks_queue in monitor.db")))) records))) ;;====================================================================== ;; The routines to process tasks ;;====================================================================== ;; NOTE: It might be good to add one more layer of checking to ensure |
︙ | ︙ |