Overview
Comment: | fix for assert |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.80-close-idle-connections |
Files: | files | file ages | folders |
SHA1: |
a7577f7a9b3dd0f34a9c72c50d04b6c1 |
User & Date: | pjhatwal on 2023-02-07 16:24:45 |
Other Links: | branch diff | manifest | tags |
Context
2023-02-09
| ||
11:02 | Made wait-for-qif remove all old queries Leaf check-in: 93c1073c06 user: mmgraham tags: v1.80-close-idle-connections | |
2023-02-07
| ||
16:24 | fix for assert check-in: a7577f7a9b user: pjhatwal tags: v1.80-close-idle-connections | |
2023-02-05
| ||
08:36 | wip, close idle db connections check-in: 97a3c4ad11 user: matt tags: v1.80-close-idle-connections | |
Changes
Modified dashboard.scm from [4ad343f07e] to [c7d443b138].
︙ | ︙ | |||
2337 2338 2339 2340 2341 2342 2343 | (testpatt (let ((tlast (rmt:tasks-get-last target runname))) (if tlast (let ((tpatt (tasks:task-get-testpatt tlast))) (if (member tpatt '("0" 0)) ;; known bad historical value - remove in 2017 "%" tpatt)) "%"))) | > | | 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 | (testpatt (let ((tlast (rmt:tasks-get-last target runname))) (if tlast (let ((tpatt (tasks:task-get-testpatt tlast))) (if (member tpatt '("0" 0)) ;; known bad historical value - remove in 2017 "%" tpatt)) "%"))) ;(item-path (db:test-get-item-path (rmt:get-test-info-by-id run-id test-id))) ; why calling rmt:get-test-info-by-id twice?? (item-path (db:test-get-item-path test-info)) (item-test-path (conc test-name "/" (if (equal? item-path "") "%" item-path))) (status-chars (char-set->list (string->char-set status))) (run-id (dboard:tabdat-curr-run-id tabdat))) (debug:print-info 13 *default-log-port* "status-chars=["status-chars"] status=["status"]") (cond |
︙ | ︙ | |||
2908 2909 2910 2911 2912 2913 2914 | (testpatt (let ((tlast (rmt:tasks-get-last target runname))) (if tlast (let ((tpatt (tasks:task-get-testpatt tlast))) (if (member tpatt '("0" 0)) ;; known bad historical value - remove in 2017 "%" tpatt)) "%"))) | | > | 2909 2910 2911 2912 2913 2914 2915 2916 2917 2918 2919 2920 2921 2922 2923 2924 | (testpatt (let ((tlast (rmt:tasks-get-last target runname))) (if tlast (let ((tpatt (tasks:task-get-testpatt tlast))) (if (member tpatt '("0" 0)) ;; known bad historical value - remove in 2017 "%" tpatt)) "%"))) ;(item-path (db:test-get-item-path (rmt:get-test-info-by-id run-id test-id))) (item-path (db:test-get-item-path test-info)) (item-test-path (conc test-name "/" (if (equal? item-path "") "%" item-path)))) (iup:show (dashboard:context-menu run-id test-id target runname test-name testpatt item-test-path test-info) ;; popup-menu #:x 'mouse #:y 'mouse #:modal? "NO") |
︙ | ︙ |
Modified dbfile.scm from [8d67468750] to [bba1a9d47e].
︙ | ︙ | |||
147 148 149 150 151 152 153 | tdbs) (db:safely-close-sqlite3-db mtdbdat (dbr:dbdat-stmt-cache (dbr:subdb-mtdbdat subdb)))) (mutex-unlock! (dbr:subdb-stack-mutex subdb))) subdbs))) ;; close opened run-id dbs that haven't been used in age seconds (define (db:close-old dbstruct #!key (age 30)) ;; close dbs older than this age | | | | 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 | tdbs) (db:safely-close-sqlite3-db mtdbdat (dbr:dbdat-stmt-cache (dbr:subdb-mtdbdat subdb)))) (mutex-unlock! (dbr:subdb-stack-mutex subdb))) subdbs))) ;; close opened run-id dbs that haven't been used in age seconds (define (db:close-old dbstruct #!key (age 30)) ;; close dbs older than this age (assert (dbr:dbstruct? dbstruct) "FATAL: db:close-old called with non-dbstruct "dbstruct) (let* ((subdbs (hash-table-values (dbr:dbstruct-subdbs dbstruct)))) (for-each (lambda (subdb) (mutex-lock! (dbr:subdb-stack-mutex subdb)) (let* ((tdbs (stack->list (dbr:subdb-dbstack subdb))) (mtdbdat (dbr:dbdat-dbh (dbr:subdb-mtdbdat subdb)))) (dbr:subdb-dbstack-set! subdb (make-stack)) ;; replace the stack with a new one (map (lambda (dbdat) (assert (not (dbr:dbdat-in-use dbdat)) "FATAL: dbdat in stack was in use "(dbr:dbdat-dbfile dbdat) " in use" (dbr:dbdat-in-use dbdat) "Stack length " (length tdbs) "time diff " (- (current-seconds) (dbr:dbdat-last-used dbdat))) (if (< (- (current-seconds) (dbr:dbdat-last-used dbdat)) age) (stack-push! (dbr:subdb-dbstack subdb) dbdat) ;; keep it (let* ((stmt-cache (dbr:dbdat-stmt-cache dbdat)) ;; close and discard (dbh (dbr:dbdat-dbh dbdat))) (dbfile:print-err "INFO: closing unused dbdat for "(dbr:dbdat-dbfile dbdat)) |
︙ | ︙ | |||
304 305 306 307 308 309 310 311 312 313 314 315 316 317 | (dbfile:open-db dbstruct run-id init-proc)) (let* ((dbdat (dbfile:get-dbdat dbstruct run-id))) (if dbdat dbdat (let* ((tmppath (dbr:dbstruct-tmppath dbstruct)) (tmpdbpath (dbfile:run-id->path tmppath run-id)) (dbdat (dbfile:open-sqlite3-db tmpdbpath init-proc sync-mode: 0 journal-mode: "WAL"))) ;; the following line short-circuits the "one db handle per thread" model ;; ;; (dbfile:add-dbdat dbstruct run-id dbdat) ;; dbdat)))))) ;; COMBINE dbfile:open-sqlite-db and dbfile:lock-create-open | > | 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 | (dbfile:open-db dbstruct run-id init-proc)) (let* ((dbdat (dbfile:get-dbdat dbstruct run-id))) (if dbdat dbdat (let* ((tmppath (dbr:dbstruct-tmppath dbstruct)) (tmpdbpath (dbfile:run-id->path tmppath run-id)) (dbdat (dbfile:open-sqlite3-db tmpdbpath init-proc sync-mode: 0 journal-mode: "WAL"))) (dbr:dbdat-in-use-set! dbdat #t) ;; the following line short-circuits the "one db handle per thread" model ;; ;; (dbfile:add-dbdat dbstruct run-id dbdat) ;; dbdat)))))) ;; COMBINE dbfile:open-sqlite-db and dbfile:lock-create-open |
︙ | ︙ |