Review of fix/lost-check: an ask no node took yet has no step key, so asking again then would run the check twice (issue 1791's kind). The checker keeps the asks each running check put in a new state asks, and the tool refuses unless every one of them has a step key. Asking again under the same ask id is not done: the stream drops a second put of an id within its de-duplication window and keeps both past it, so the waiting copy is never replaced. Tests: the hand row of the lost-ask table refuses while its ask waits; counts unchanged.
120 lines
2.8 KiB
JSON
120 lines
2.8 KiB
JSON
{
|
|
"module": "mesh-delivery-checker",
|
|
"version": "1",
|
|
"slug": "checker",
|
|
"consumes": [
|
|
"mesh-build-go.toolchain.reported",
|
|
"mesh-build-node.toolchain.reported"
|
|
],
|
|
"streams": [
|
|
{ "name": "checks", "events": ["preview.**", "owed.**"] }
|
|
],
|
|
"state": [
|
|
{ "name": "asks", "history": 1 },
|
|
{ "name": "hearing", "history": 1 },
|
|
{ "name": "kept", "history": 1 },
|
|
{ "name": "owed", "history": 5 },
|
|
{ "name": "previews", "history": 5 },
|
|
{ "name": "tries", "history": 1 },
|
|
{ "name": "verdicts", "history": 5 }
|
|
],
|
|
"reads": [
|
|
"mesh-build-go.steps",
|
|
"mesh-build-go.toolchains",
|
|
"mesh-build-node.steps",
|
|
"mesh-build-node.toolchains",
|
|
"mesh-controller.assignments",
|
|
"mesh-delivery-assigner.compositions",
|
|
"mesh-delivery-builder.builds",
|
|
"mesh-delivery-gate.source",
|
|
"mesh-delivery-gate.turns",
|
|
"mesh-delivery-indexer.candidates",
|
|
"mesh-delivery-indexer.manifests",
|
|
"mesh-delivery-indexer.modules",
|
|
"mesh-delivery-watchman.presence",
|
|
"node-engine.have"
|
|
],
|
|
"uses": [
|
|
"node-build-go",
|
|
"node-build-node"
|
|
],
|
|
"tools": [
|
|
"checker_ask_again",
|
|
"checker_kept",
|
|
"checker_previews",
|
|
"checker_pull",
|
|
"checker_status",
|
|
"checker_try",
|
|
"checker_try_end",
|
|
"checker_try_read",
|
|
"checker_verdicts"
|
|
],
|
|
"invokes": [
|
|
"gitea.gitea_commits",
|
|
"gitea.gitea_compare",
|
|
"gitea.gitea_get_file",
|
|
"gitea.gitea_list_branches"
|
|
],
|
|
|
|
"own-secrets": {
|
|
"broker": "${dir:state}/broker"
|
|
},
|
|
"secrets-owner": "mesh-delivery-checker",
|
|
"resources": [
|
|
{
|
|
"id": "account",
|
|
"type": "user",
|
|
"name": "mesh-delivery-checker",
|
|
"shell": "/usr/bin/nologin",
|
|
"home": "/var/lib/mesh-delivery-checker"
|
|
},
|
|
{
|
|
"id": "state",
|
|
"type": "directory",
|
|
"mode": "0700",
|
|
"owner": "mesh-delivery-checker",
|
|
"place": ".",
|
|
"unknown": "program"
|
|
},
|
|
{
|
|
"id": "checker",
|
|
"type": "process",
|
|
"name": "mesh-delivery-checker",
|
|
"artifact": "program",
|
|
"run": [
|
|
"./mesh-delivery-checker"
|
|
],
|
|
"env": {
|
|
"MESH_BROKER_FILE": "${dir:state}/broker"
|
|
},
|
|
"user": "mesh-delivery-checker",
|
|
"health": {
|
|
"kind": "unit"
|
|
}
|
|
}
|
|
],
|
|
"build": {
|
|
"artifacts": [
|
|
{
|
|
"name": "program",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-delivery-checker",
|
|
"binary": "mesh-delivery-checker"
|
|
},
|
|
{
|
|
"name": "tools",
|
|
"kind": "bundle",
|
|
"language": "go",
|
|
"system": "arch",
|
|
"from": "cmd/mesh-delivery-checker-tools",
|
|
"binary": "mesh-delivery-checker-tools",
|
|
"loads": [
|
|
"mesh-delivery-checker-tools"
|
|
]
|
|
}
|
|
]
|
|
}
|
|
}
|