Index: configf.scm ================================================================== --- configf.scm +++ configf.scm @@ -667,11 +667,11 @@ (define (configf:write-alist cdat fname) (let ((dat (configf:config->alist cdat))) (with-output-to-file fname ;; first write out the file (lambda () (pp dat))) - (if (file-exists? fname) ;; now verify it is readable + (if (common:file-exists? fname) ;; now verify it is readable (if (configf:read-alist fname) #t ;; data is good. (begin (handle-exceptions exn Index: http-transport.scm ================================================================== --- http-transport.scm +++ http-transport.scm @@ -437,11 +437,14 @@ (current-seconds)) (< (- (current-seconds) server-start-time) 3600)) ;; do not update log or touch log if we've been running for more than one hour. (if (common:low-noise-print 120 "server continuing") (debug:print-info 0 *default-log-port* "Server continuing, seconds since last db access: " (- (current-seconds) last-access)) (let ((curr-time (current-seconds))) - (change-file-times server-log-file curr-time curr-time))) + (handle-exceptions + exn + (debug:print 0 *default-log-port* "ERROR: Failed to change timestamp on log file " server-log-file ". Are you out of space on that disk?") + (change-file-times server-log-file curr-time curr-time)))) (loop 0 server-state bad-sync-count (current-milliseconds))) (else (debug:print-info 0 *default-log-port* "Server timed out. seconds since last db access: " (- (current-seconds) last-access)) (http-transport:server-shutdown port))))))) Index: runs.scm ================================================================== --- runs.scm +++ runs.scm @@ -80,11 +80,18 @@ vals (lambda (key val) (debug:print 2 *default-log-port* "setenv " key " " val) (safe-setenv key val))) (if (not (get-environment-variable "MT_TARGET"))(setenv "MT_TARGET" target)) - (alist->env-vars (hash-table-ref/default *configdat* "env-override" '())) + ;; we had a case where there was an exception generated by the hash-table-ref + ;; due to *configdat* being #f Adding a handle and exit + (handle-exceptions + exn + (begin + (debug:print 0 *default-log-port* "FATAL: *configdat* was inaccessible! This should never happen.") + (exit 1)) + (alist->env-vars (hash-table-ref/default *configdat* "env-override" '()))) ;; Lets use this as an opportunity to put MT_RUNNAME in the environment (let ((runname (if inrunname inrunname (rmt:get-run-name-from-id run-id)))) (if runname (setenv "MT_RUNNAME" runname) (debug:print-error 0 *default-log-port* "no value for runname for id " run-id)))