Megatest

Check-in [2f38818a05]
Login
Overview
Comment:Fixed preformance issue with marking INCOMPLETES
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | v1.60
Files: files | file ages | folders
SHA1: 2f38818a0538e0776f649643d602fd4a07b831df
User & Date: mrwellan on 2014-10-24 11:19:21
Other Links: branch diff | manifest | tags
Context
2014-10-24
15:37
Fixed crash on exit due to race condition of exit code closing db check-in: 22a4701a0c user: mrwellan tags: v1.60
11:19
Fixed preformance issue with marking INCOMPLETES check-in: 2f38818a05 user: mrwellan tags: v1.60
08:55
Bumped version check-in: 80f67bad9a user: mrwellan tags: v1.60
Changes

Modified runs.scm from [82ef1f6781] to [2ec4bf8795].

363
364
365
366
367
368
369
370
371








372
373
374
375
376
377
378
363
364
365
366
367
368
369


370
371
372
373
374
375
376
377
378
379
380
381
382
383
384







-
-
+
+
+
+
+
+
+
+








    (if (not (null? required-tests))
	(debug:print-info 1 "Adding " required-tests " to the run queue"))
    ;; NOTE: these are all parent tests, items are not expanded yet.
    (debug:print-info 4 "test-records=" (hash-table->alist test-records))
    (let ((reglen (configf:lookup *configdat* "setup" "runqueue")))
      (if (> (length (hash-table-keys test-records)) 0)
	  (begin
	    (runs:run-tests-queue run-id runname test-records keyvals flags test-patts required-tests (any->number reglen) all-tests-registry)
	  (let ((th1 (make-thread (lambda ()
				    (runs:run-tests-queue run-id runname test-records keyvals flags test-patts required-tests (any->number reglen) all-tests-registry))
				  "runs:run-tests-queue"))
		(th2 (make-thread (lambda ()				    
				    (rmt:find-and-mark-incomplete-all-runs)))))
	    (thread-start! th1)
	    (thread-start! th2)
	    (thread-join! th1)
	    ;; if run-count > 0 call, set -preclean and -rerun STUCK/DEAD
	    (if (> run-count 0)
		(begin
		  (if (not (hash-table-ref/default flags "-preclean" #f))
		      (hash-table-set! flags "-preclean" #t))
		  (if (not (hash-table-ref/default flags "-rerun" #f))
		      (hash-table-set! flags "-rerun" "STUCK/DEAD,n/a,ZERO_ITEMS"))
894
895
896
897
898
899
900


901
902
903
904


905
906
907
908
909
910
911
900
901
902
903
904
905
906
907
908
909
910
911

912
913
914
915
916
917
918
919
920







+
+



-
+
+







	       (tal         (cdr sorted-test-names))
	       (reg         '()) ;; registered, put these at the head of tal 
	       (reruns      '()))

      (if (not (null? reruns))(debug:print-info 4 "reruns=" reruns))

      ;; Here we mark any old defunct tests as incomplete. Do this every fifteen minutes
      ;; moving this to a parallel thread and just run it once.
      ;;
      (if (> (current-seconds)(+ last-time-incomplete 900))
          (begin
            (set! last-time-incomplete (current-seconds))
            (rmt:find-and-mark-incomplete-all-runs)))
            ;; (rmt:find-and-mark-incomplete-all-runs)
	    ))

      ;; (print "Top of loop, hed=" hed ", tal=" tal " ,reruns=" reruns)
      (let* ((test-record (hash-table-ref test-records hed))
	     (test-name   (tests:testqueue-get-testname test-record))
	     (tconfig     (tests:testqueue-get-testconfig test-record))
	     (jobgroup    (config-lookup tconfig "test_meta" "jobgroup"))
	     (testmode    (let ((m (config-lookup tconfig "requirements" "mode")))