Overview
Comment: | remove-mutex From: 022801133154585551c60feee4baf6758b91f993 User: matt |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.65-lazyqueue-items-rollup-2 |
Files: | files | file ages | folders |
SHA1: |
ebd9bfee6ddd1b94097657f2c3ec23f3 |
User & Date: | matt on 2021-02-25 22:24:38 |
Other Links: | branch diff | manifest | tags |
Context
2021-02-25
| ||
22:25 | Added sleep to prevent high speed query stream from causing a locked db From: 82a0bf90a6e169a23999671064928c04ec8d6fbe User: matt Leaf check-in: 7e102efd0d user: matt tags: v1.65-lazyqueue-items-rollup-2 (unpublished) | |
22:24 | remove-mutex From: 022801133154585551c60feee4baf6758b91f993 User: matt check-in: ebd9bfee6d user: matt tags: v1.65-lazyqueue-items-rollup-2 (unpublished) | |
22:24 | add finalize of no-sync and re-enable the mutex From: 1775254e3f45db753fe942e0f142c3ec732dbcb6 User: matt check-in: 9f704b7ade user: matt tags: v1.65-lazyqueue-items-rollup-2 (unpublished) | |
Changes
Modified db.scm from [a41d5fcea3] to [1f1b4dcba0].
︙ | ︙ | |||
3985 3986 3987 3988 3989 3990 3991 | ;; (("WARN" "FAIL") '("COMPLETED" "FAIL")) ;; (("WARN" "CHECK") '("COMPLETED" "CHECK")) ;; (("WARN" "DEAD") (define (db:set-state-status-and-roll-up-items dbstruct run-id test-name item-path state status comment) ;; establish info on incoming test followed by info on top level test ;; BBnote - for mode itemwait, linkage between upstream test & matching item status is propagated to run queue in db:prereqs-not-met | | | 3985 3986 3987 3988 3989 3990 3991 3992 3993 3994 3995 3996 3997 3998 3999 | ;; (("WARN" "FAIL") '("COMPLETED" "FAIL")) ;; (("WARN" "CHECK") '("COMPLETED" "CHECK")) ;; (("WARN" "DEAD") (define (db:set-state-status-and-roll-up-items dbstruct run-id test-name item-path state status comment) ;; establish info on incoming test followed by info on top level test ;; BBnote - for mode itemwait, linkage between upstream test & matching item status is propagated to run queue in db:prereqs-not-met ;; (mutex-lock! *db-transaction-mutex*) ;; why do we need a mutex? (let* ((testdat (if (number? test-name) (db:get-test-info-by-id dbstruct run-id test-name) ;; test-name is actually a test-id (db:get-test-info dbstruct run-id test-name item-path))) (test-id (db:test-get-id testdat)) (test-name (if (number? test-name) (db:test-get-testname testdat) test-name)) |
︙ | ︙ | |||
4033 4034 4035 4036 4037 4038 4039 | (loop (+ count 1)) (sqlite3:with-transaction no-sync-db (lambda () (db:no-sync-set no-sync-db rollup-lock-key (current-seconds)) (db:no-sync-del! no-sync-db waiting-lock-key)))))) ;; now the rollup | | | | 4033 4034 4035 4036 4037 4038 4039 4040 4041 4042 4043 4044 4045 4046 4047 4048 4049 4050 4051 4052 4053 4054 4055 4056 | (loop (+ count 1)) (sqlite3:with-transaction no-sync-db (lambda () (db:no-sync-set no-sync-db rollup-lock-key (current-seconds)) (db:no-sync-del! no-sync-db waiting-lock-key)))))) ;; now the rollup ;; (mutex-unlock! *db-transaction-mutex*) ;; why do we need a mutex? (if rollup-flag ;; put this into a thread (begin ;; (thread-start! (make-thread ;; (lambda () (db:roll-up-test-state-status dbstruct run-id test-name state status) (db:no-sync-del! no-sync-db rollup-lock-key)) ;; (conc "thread for run-id: " run-id " test-name: " test-name)))))))) )) ;; (mutex-unlock! *db-transaction-mutex*) ;; why do we need a mutex? ))) ;; I'd like to remove the need for item-path - it is logically not needed here ;; for now we pass in state and status - NOTE: There is a possible race if a test ;; is rapidly re-run while an earlier run is waiting to rollup. ;; (define (db:roll-up-test-state-status dbstruct run-id test-name state status) |
︙ | ︙ |