Overview
Comment: | tweak waits in runconfigs |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v2.0001-matt-test-edits |
Files: | files | file ages | folders |
SHA1: |
6c303b59b4e2addc4ce8a27ca0ac6910 |
User & Date: | mrwellan on 2022-02-03 18:05:21 |
Other Links: | branch diff | manifest | tags |
Context
2022-02-06
| ||
19:53 | Reduced server expiration to 5sec. Fixed typo (extra paren) check-in: b612b353ea user: matt tags: v2.0001-matt-test-edits | |
2022-02-03
| ||
18:05 | tweak waits in runconfigs check-in: 6c303b59b4 user: mrwellan tags: v2.0001-matt-test-edits | |
2022-02-02
| ||
18:07 | corrected *configdat* to *runconfigdat* check-in: 3d2d201a06 user: mmgraham tags: v2.0001 | |
Changes
Modified runsmod.scm from [727372ff23] to [26ea23059a].
︙ | ︙ | |||
1482 1483 1484 1485 1486 1487 1488 | newtal: newtal itemmaps: itemmaps ;; prereqs-not-met: prereqs-not-met ))) (runs:dat-regfull-set! runsdat regfull) (if (> (- (current-seconds) *last-test-launch*) 5) ;; be pretty aggressive for five seconds after | | | 1482 1483 1484 1485 1486 1487 1488 1489 1490 1491 1492 1493 1494 1495 1496 | newtal: newtal itemmaps: itemmaps ;; prereqs-not-met: prereqs-not-met ))) (runs:dat-regfull-set! runsdat regfull) (if (> (- (current-seconds) *last-test-launch*) 5) ;; be pretty aggressive for five seconds after (runs:too-soon-delay (conc "loop delay " hed) 1 0.6) ;; starting a test then apply more delay (runs:too-soon-delay (conc "loop delay " hed) 1 0.1)) (if (> num-running 0) (set! last-time-some-running (current-seconds))) (if (> (current-seconds)(+ last-time-some-running (or (configf:lookup *configdat* "setup" "give-up-waiting") 36000))) (hash-table-set! *max-tries-hash* tfullname (+ (hash-table-ref/default *max-tries-hash* tfullname 0) 1))) |
︙ | ︙ | |||
1732 1733 1734 1735 1736 1737 1738 | ))) ;; end loop on sorted test names ;; this is the point where everything is launched and now you can mark the run in metadata table as all launched (rmt:set-var run-id (conc "launch-complete-" run-id) "yes") ;; now *if* -run-wait we wait for all tests to be done ;; Now wait for any RUNNING tests to complete (if in run-wait mode) ;; (if (runs:dat-load-mgmt-function runsdat)((runs:dat-load-mgmt-function runsdat))) | | | 1732 1733 1734 1735 1736 1737 1738 1739 1740 1741 1742 1743 1744 1745 1746 | ))) ;; end loop on sorted test names ;; this is the point where everything is launched and now you can mark the run in metadata table as all launched (rmt:set-var run-id (conc "launch-complete-" run-id) "yes") ;; now *if* -run-wait we wait for all tests to be done ;; Now wait for any RUNNING tests to complete (if in run-wait mode) ;; (if (runs:dat-load-mgmt-function runsdat)((runs:dat-load-mgmt-function runsdat))) (thread-sleep! 0.1) ;; I think there is a race condition here. Let states/statuses settle (let wait-loop ((num-running (rmt:get-count-tests-running-for-run-id run-id)) (prev-num-running 0)) ;; (debug:print-info 13 *default-log-port* "num-running=" num-running ", prev-num-running=" prev-num-running) (if (and (or (args:get-arg "-run-wait") (equal? (configf:lookup *configdat* "setup" "run-wait") "yes")) (> num-running 0)) |
︙ | ︙ |
Modified ulex-dual/dbmgr.scm from [53b181f4c9] to [9a6a086d09].
︙ | ︙ | |||
331 332 333 334 335 336 337 | ;; db is at apath/.db/dbname, rid is an intermediary solution and will be removed ;; sometime in the future ;; (define (rmt:send-receive-real sinfo apath dbname cmd params) (let* ((cdat (rmt:get-conn sinfo apath dbname))) (assert cdat "FATAL: rmt:send-receive-real called without the needed channels opened") | > | > | | | | | | | > > > > | 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 | ;; db is at apath/.db/dbname, rid is an intermediary solution and will be removed ;; sometime in the future ;; (define (rmt:send-receive-real sinfo apath dbname cmd params) (let* ((cdat (rmt:get-conn sinfo apath dbname))) (assert cdat "FATAL: rmt:send-receive-real called without the needed channels opened") (condition-case (let* ((uconn (servdat-uconn sinfo)) ;; get the interface to ulex (hostport (conndat-hostport cdat)) ;; then send-receive using the ulex layer to host-port stored in cdat (res (send-receive uconn hostport cmd params))) ;; since we accessed the server we can bump the expires time up (conndat-expires-set! cdat (+ (current-seconds) (server:expiration-timeout) -2)) ;; two second margin for network time misalignments etc. res) ((exn i/o net) (debug:print-info 0 *default-log-port* "IO failure in connection to "hostport ", resetting connection.") ; ;; db is at apath/.db/dbname, rid is an intermediary solution and will be removed ;; sometime in the future. ;; ;; Purpose - call the main.db server and request a server be started ;; for the given area path and dbname |
︙ | ︙ |
Modified ulex-dual/ulex.scm from [ba1e2ab076] to [12cecae7cb].
︙ | ︙ | |||
258 259 260 261 262 263 264 | (dat (list `(host-port . ,my-host-port) `(qrykey . qrykey) `(cmd . ,cmd) `(params . ,params)))) (cond (isme (do-work udata dat)) ;; no transmission needed (else | > > > > > > > > > > > > > | | 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 | (dat (list `(host-port . ,my-host-port) `(qrykey . qrykey) `(cmd . ,cmd) `(params . ,params)))) (cond (isme (do-work udata dat)) ;; no transmission needed (else (let-values (((inp oup)(tcp-connect host port))) (let ((res (if (and inp oup) (begin (write (obj->string dat) oup) (close-output-port oup) (string->obj (read inp))) (begin (print "ERROR: send called but no receiver has been setup. Please call setup first!") #f)))) (close-input-port inp))) #;(handle-exceptions ;; TODO - MAKE THIS EXCEPTION CMD SPECIFIC? exn (begin (print "ULEX send-receive: "cmd", "params", exn="exn) (message exn)) (begin ;; (mutex-lock! *send-mutex*) ;; DOESN'T SEEM TO HELP (let-values (((inp oup)(tcp-connect host port))) |
︙ | ︙ |