Megatest

Check-in [2daae45b51]
Login
Overview
Comment:Added missing db.scm busy handler code
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | v1.65-try3
Files: files | file ages | folders
SHA1: 2daae45b51f3454a8f74d876ab6adf98e9fdf836
User & Date: matt on 2019-11-20 22:30:47
Other Links: branch diff | manifest | tags
Context
2019-11-20
22:46
Pulled in some removed edits check-in: f27cf9f446 user: matt tags: v1.65-try3
22:30
Added missing db.scm busy handler code check-in: 2daae45b51 user: matt tags: v1.65-try3
2019-11-19
16:01
Added missing dashboard code check-in: 27df8e8106 user: mrwellan tags: v1.65-try3
Changes

Modified db-inc.scm from [99f1d8093e] to [1e3b4cba33].

248
249
250
251
252
253
254


255

256
257
258
259
260
261
262
248
249
250
251
252
253
254
255
256

257
258
259
260
261
262
263
264







+
+
-
+







         (exn (permission)(debug:print 0 *default-log-port* "ERROR: database " fname " has some permissions problem."))
         (exn () (debug:print 0 *default-log-port* "ERROR: Unknown error with database " fname " message: " ((condition-property-accessor 'exn 'message) exn))))
        
	(condition-case
         (begin
           (debug:print 2 *default-log-port* "WARNING: opening db in non-writable dir " fname)
           (let ((db (sqlite3:open-database fname)))
             (sqlite3:set-busy-handler! db (sqlite3:make-busy-timeout 136000))
             (sqlite3:execute db "PRAGMA synchronous = 0;")
             ;; (mutex-unlock! *db-open-mutex*)
	     ;; (mutex-unlock! *db-open-mutex*)
             db))
         (exn (io-error)  (debug:print 0 *default-log-port* "ERROR: i/o error with " fname ". Check permissions, disk space etc. and try again."))
         (exn (corrupt)   (debug:print 0 *default-log-port* "ERROR: database " fname " is corrupt. Repair it to proceed."))
         (exn (busy)      (debug:print 0 *default-log-port* "ERROR: database " fname " is locked. Try copying to another location, remove original and copy back."))
         (exn (permission)(debug:print 0 *default-log-port* "ERROR: database " fname " has some permissions problem."))
         (exn () (debug:print 0 *default-log-port* "ERROR: Unknown error with database " fname " message: " ((condition-property-accessor 'exn 'message) exn))))
	)))
586
587
588
589
590
591
592


593
594
595
596
597
598
599
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603







+
+







			  "megatest -cleanup-db"
			  "megatest -import-megatest.db;megatest -cleanup-db")
		      "\"\n")
	 (exit) ;; we can not safely continue when a db was corrupted - even if fixed.
	 )
       ;; test read/write access to the database
       (let ((db (sqlite3:open-database dbpath)))
	 (sqlite3:set-busy-handler! db (sqlite3:make-busy-timeout 136000))
	 (sqlite3:execute db "PRAGMA synchronous = 0;")
	 (cond
	  ((equal? fname "megatest.db")
	   (sqlite3:execute db "DELETE FROM tests WHERE state='DELETED';"))
	  ((equal? fname "main.db")
	   (sqlite3:execute db "DELETE FROM runs WHERE state='deleted';"))
	  ((string-match "\\d.db" fname)
	   (sqlite3:execute db "UPDATE tests SET state='DELETED' WHERE state='DELETED';"))