Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

vole
Clone

Read only, no credentials:

https://rodent.software/git/vole.git

Write over SSH with a registered key:

git clone ssh://git@0.0.0.0:2222/vole.git

A free and open-source forge that lives in your Git repo.

Keep a finished CI attempt and drain before shutting down

73755a56550dc6819b47469fbb08e85e7c7c5d04 · Keenan Nemetz · 9d ago · parent 1265ea55

Keep a finished CI attempt and drain before shutting down

A job whose lease expired was requeued even when its last step had already succeeded. The queue cleared the owner and the runner refused to report, so the same work ran again as attempt 2 for no failing step.

Keep the owner on a requeued row and accept a late record and log until another runner leases the job. The runner now sends a late record when the heartbeat says the lease is gone, and the server accepts it only for the attempt that is still current.

A clean server stop also drained nothing: closing SSH killed the runner and threw the job away. Stop leasing new work on shutdown and wait up to a minute for the jobs already running to report.

docs/operations.md +9

@@ -105,6 +105,15 @@ Back both directories up too if you need those files. `vole admin gc` treats fil
105 105 reachable from a repository or a published artifact as things to keep; logs are
106 106 ordinary files and are not swept.
107 107
108 ## Restart the server
109
110 A clean stop (`systemctl restart`, or Ctrl-C on a development instance) stops
111 handing out new CI jobs and waits up to a minute for the jobs already leased to
112 report their result. A job that finishes in that window is stored and is not run
113 again. A job still running when the window ends loses its runner connection and
114 is requeued as another attempt once its lease expires. The wait is best effort;
115 start long builds well before a planned restart.
116
108 117 ## Clean up stored files
109 118
110 119 ```sh