Overview
Comment: | Make server logs not overlap on server.log - this makes debug easier |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | v1.80 |
Files: | files | file ages | folders |
SHA1: |
305300586048f6b822649a99744ce830 |
User & Date: | matt on 2023-04-06 13:32:22 |
Other Links: | branch diff | manifest | tags |
Context
2023-04-06
| ||
16:37 | merge-fork check-in: c574c7b21b user: matt tags: v1.80 | |
13:32 | Make server logs not overlap on server.log - this makes debug easier check-in: 3053005860 user: matt tags: v1.80 | |
09:23 | Fixed performance issue with append in runs.scm check-in: 0dc6c83d6e user: matt tags: v1.80 | |
Changes
Modified db.scm from [315e0db07f] to [db6ac85832].
︙ | ︙ | |||
2838 2839 2840 2841 2842 2843 2844 | ;; (define (db:get-test-state-status-by-id dbstruct run-id test-id) (db:with-db dbstruct run-id #f (lambda (dbdat db) | | > | | 2838 2839 2840 2841 2842 2843 2844 2845 2846 2847 2848 2849 2850 2851 2852 2853 2854 2855 2856 2857 | ;; (define (db:get-test-state-status-by-id dbstruct run-id test-id) (db:with-db dbstruct run-id #f (lambda (dbdat db) (let ((res (cons #f #f)) (stmth (db:get-cache-stmth dbdat db "SELECT state,status FROM tests WHERE id=?;"))) (sqlite3:for-each-row ;; attemptnum added to hold pid of top process (not Megatest) controlling a test (lambda (state status) (cons state status)) stmth test-id) res)))) ;; Use db:test-get* to access ;; Get test data using test_ids. NB// Only works within a single run!! ;; (define (db:get-test-info-by-ids dbstruct run-id test-ids) |
︙ | ︙ |
Modified dbfile.scm from [d5febb23fb] to [c7b39de25b].
︙ | ︙ | |||
1153 1154 1155 1156 1157 1158 1159 | ;; didn't see much change in the frequency of the messages: ;; Warning (#<thread: thread14974>): in thread: (bind!) bad parameter or other API misuse ;; allowing request count to go up to 1000 and other crashes showed up: ;; Warning (#<thread: thread1889>): in thread: (deserialize) unexpected end of input: #<input port "(tcp)"> ;; ;; leave it fully on for now, test later if there is a performance issue ;; | | | 1153 1154 1155 1156 1157 1158 1159 1160 1161 1162 1163 1164 1165 1166 1167 | ;; didn't see much change in the frequency of the messages: ;; Warning (#<thread: thread14974>): in thread: (bind!) bad parameter or other API misuse ;; allowing request count to go up to 1000 and other crashes showed up: ;; Warning (#<thread: thread1889>): in thread: (deserialize) unexpected end of input: #<input port "(tcp)"> ;; ;; leave it fully on for now, test later if there is a performance issue ;; (let* ((use-mutex #t) ;;(> *api-process-request-count* 50)) ;; risk of db corruption (have-struct (dbr:dbstruct? dbstruct)) (dbdat (if have-struct ;; this stuff just allows us to call with a db handle directly (db:open-db dbstruct run-id (dbfile:db-init-proc)) ;; (dbfile:get-subdb dbstruct run-id) #f)) (db (if have-struct ;; this stuff just allows us to call with a db handle directly (dbr:dbdat-dbh dbdat) dbstruct)) |
︙ | ︙ |
Modified megatest.scm from [39b3d98b1d] to [46ccc9ab0a].
︙ | ︙ | |||
610 611 612 613 614 615 616 | (define *didsomething* #t) (exit 1)))) ;; this segment will run launch:setup only if -log is not set. This is fairly safe as servers are not ;; manually started and thus should never be started in a non-megatest area. Thus no need to handle situation ;; where (launch:setup) returns #f? ;; | | | 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 | (define *didsomething* #t) (exit 1)))) ;; this segment will run launch:setup only if -log is not set. This is fairly safe as servers are not ;; manually started and thus should never be started in a non-megatest area. Thus no need to handle situation ;; where (launch:setup) returns #f? ;; (if (or (args:get-arg "-log")#;(args:get-arg "-server")) ;; redirect the log always when a server (handle-exceptions exn (begin (print "ERROR: Failed to switch to log output. " ((condition-property-accessor 'exn 'message) exn) ", exn=" exn)) (let* ((tl (or (args:get-arg "-log")(launch:setup))) ;; run launch:setup if -server, ensure we do NOT run launch:setup if -log specified (dbname (args:get-arg "-db")) ;; for the server logfile name (logf (or (args:get-arg "-log") ;; use -log unless we are a server, then craft a logfile name |
︙ | ︙ |
Modified runs.scm from [09906f7b93] to [399ccd6fb7].
︙ | ︙ | |||
1860 1861 1862 1863 1864 1865 1866 | ;; BUG: This next line sucks up a lot of horsepower ;; (set! tal (append tal (list newtestname))) ;; (set! tal (cons newtestname tal)) ;; 4/6/2023 - try using cons, does it matter if the test gets added at the beginning? (set! incoming-tests (cons newtestname incoming-tests)) )) ;; since these are itemized create new test names testname/itempath items-in-testpatt))) | | > | 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 | ;; BUG: This next line sucks up a lot of horsepower ;; (set! tal (append tal (list newtestname))) ;; (set! tal (cons newtestname tal)) ;; 4/6/2023 - try using cons, does it matter if the test gets added at the beginning? (set! incoming-tests (cons newtestname incoming-tests)) )) ;; since these are itemized create new test names testname/itempath items-in-testpatt))) (if (and (< (length tal) 20) (not (null? incoming-tests))) (begin (set! tal (append tal (reverse incoming-tests))) (set! incoming-tests '()))) ;; At this point we have possibly added items to tal but all must be handed off to ;; INNER COND logic. I think loop without rotating the queue ;; (loop hed tal reg reruns)) |
︙ | ︙ |
Modified tcp-transportmod.scm from [4f9e2ba569] to [2389278b99].
︙ | ︙ | |||
598 599 600 601 602 603 604 | (thread-sleep! 1)) ((> nrun 100) (debug:print 0 *default-log-port* nrun" servers running on this host, not starting another.") (thread-sleep! 1)) (else (if (not (file-exists? (conc areapath"/logs"))) (create-directory (conc areapath"/logs") #t)) | | | 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 | (thread-sleep! 1)) ((> nrun 100) (debug:print 0 *default-log-port* nrun" servers running on this host, not starting another.") (thread-sleep! 1)) (else (if (not (file-exists? (conc areapath"/logs"))) (create-directory (conc areapath"/logs") #t)) (let* ((logfile (conc areapath "/logs/server-"dbfname"-"(current-process-id)".log")) ;; -" curr-pid "-" target-host ".log")) (cmdln (conc mtexe " -server - ";; (or target-host "-") " -m testsuite:" testsuite ;; " -run-id " (or run-id "main") ;; NO, we do NOT want to have run id as part of this " -db " dbfname ;; (dbmod:run-id->dbfname run-id) " " profile-mode |
︙ | ︙ |