Megatest

Check-in [490ba0207e]
Login
Overview
Comment:Semi-speculative 'fixes' for transient communications problems.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | v2.0001
Files: files | file ages | folders
SHA1: 490ba0207e96e012348a4e62bd9c51e6aa2017ef
User & Date: matt on 2023-01-24 17:55:32
Other Links: branch diff | manifest | tags
Context
2023-01-24
20:00
Quiet up some output Leaf check-in: ec1d564207 user: matt tags: v2.0001
17:55
Semi-speculative 'fixes' for transient communications problems. check-in: 490ba0207e user: matt tags: v2.0001
08:59
Put changes to ulex-full into ulex check-in: 5e8db5c53d user: matt tags: v2.0001
Changes

Modified commonmod.scm from [143f1164e0] to [ec381e6f6b].

3575
3576
3577
3578
3579
3580
3581

3582
3583
3584
3585
3586
3587
3588
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589







+







;;======================================================================
;; Convert strings like "5s 2h 3m" => 60x60x2 + 3x60 + 5
(define (common:hms-string->seconds tstr)
  (let ((parts     (string-split-fields "\\w+" tstr))
	(time-secs 0)
	;; s=seconds, m=minutes, h=hours, d=days, M=months, y=years, w=weeks
	(trx       (regexp "(\\d+)([smhdMyw])")))
    (assert (list? parts) "FATAL: common-hms-string->seconds failed on input "tstr)
    (for-each (lambda (part)
		(let ((match  (string-match trx part)))
		  (if match
		      (let ((val (string->number (cadr match)))
			    (unt (caddr match)))
			(if val 
			    (set! time-secs (+ time-secs (* val
4445
4446
4447
4448
4449
4450
4451
4452

4453
4454
4455
4456
4457
4458
4459
4446
4447
4448
4449
4450
4451
4452

4453
4454
4455
4456
4457
4458
4459
4460







-
+







;; timeout is hms string: 1h 5m 3s, default is 10 minutes
;;
(define (server:expiration-timeout)
  (let ((tmo (configf:lookup *configdat* "server" "timeout")))
    (if (and (string? tmo)
	     (common:hms-string->seconds tmo)) ;; BUG: hms-string->seconds is broken, if given "10" returns 0. Also, it doesn't belong in this logic unless the string->number is changed below
        (* 3600 (string->number tmo))
	60))) ;; default is one minute
	3600))) ;; default is one minute

(define (runs:get-mt-env-alist run-id runname target testname itempath)
  ;;(bb-check-path msg: "runs:set-megatest-env-vars entry")
  `(("MT_TEST_NAME"     . ,testname)
    
    ("MT_ITEMPATH"      . ,itempath)

Modified dashboard.scm from [ff9b120b1b] to [30b5085732].

388
389
390
391
392
393
394
395


396
397
398
399
400
401
402
388
389
390
391
392
393
394

395
396
397
398
399
400
401
402
403







-
+
+







  (dboard:tabdat-dbfpath-set! tabdat (common:get-db-tmp-area))
  (dboard:tabdat-monitor-db-path-set! tabdat (conc (dboard:tabdat-dbdir tabdat) "/monitor.db"))

  ;; HACK ALERT: this is a hack, please fix.
  (dboard:tabdat-ro-set! tabdat (not (file-readable? (dboard:tabdat-dbfpath tabdat))))
  
  (dboard:tabdat-keys-set! tabdat (rmt:get-keys))
  (dboard:tabdat-dbkeys-set! tabdat (append (dboard:tabdat-keys tabdat) (list "runname")))
  (dboard:tabdat-dbkeys-set! tabdat (append (or (dboard:tabdat-keys tabdat)'())
					    (list "runname")))
  (dboard:tabdat-tot-runs-set! tabdat (rmt:get-num-runs "%"))
  )

;; RADT => Matrix defstruct addition
(defstruct dboard:graph-dat
    ((id           #f) : string)
    ((color        #f) : vector)
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673










674
675
676
677
678
679
680
659
660
661
662
663
664
665









666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682







-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+







			     db-pth)))
	 (db-mod-time  (common:lazy-sqlite-db-modification-time db-path))
	 (db-modified  (>= db-mod-time last-db-time))
	 (multi-get    (> (dboard:rundat-run-data-offset run-dat) 0))  ;; multi-get in progress
	 (tmptests     (if (or do-not-use-db-file-timestamps
			       (dboard:tabdat-filters-changed tabdat)
			       db-modified)
			   (rmt:get-tests-for-run run-id testnamepatt states statuses     ;; run-id testpatt states statuses
					      (dboard:rundat-run-data-offset run-dat) ;; query offset
					      num-to-get
					      (dboard:tabdat-hide-not-hide tabdat) ;; no-in
					      sort-by                              ;; sort-by
					      sort-order                           ;; sort-order
					      #f ;; 'shortlist                     ;; qrytype
					      last-update                          ;; last-update
					      *dashboard-mode*)                    ;; use dashboard mode
			   (or (rmt:get-tests-for-run run-id testnamepatt states statuses     ;; run-id testpatt states statuses
						      (dboard:rundat-run-data-offset run-dat) ;; query offset
						      num-to-get
						      (dboard:tabdat-hide-not-hide tabdat) ;; no-in
						      sort-by                              ;; sort-by
						      sort-order                           ;; sort-order
						      #f ;; 'shortlist                     ;; qrytype
						      last-update                          ;; last-update
						      *dashboard-mode*)                    ;; use dashboard mode
			       '()) ;; if rmt:get-tests-for-run fails it returns #f (broken I know).
			   '()))
	 (use-new    (dboard:tabdat-hide-not-hide tabdat))
	 (tests-ht   (if (dboard:tabdat-filters-changed tabdat)
			 (let ((ht (make-hash-table)))
			   (dboard:rundat-tests-set! run-dat ht)
			   ht)
			 (dboard:rundat-tests run-dat)))