Located, not fixed. This PR records the issue only.
The provisioner harness skips any consumer whose login, password and values hash hasn't changed. It never checks the backend.
The cache. It has no ACL file, so its per-consumer users live only in memory. A server restart erases them. The provisioner, still running, does nothing about it. Every consumer fails to authenticate, and nothing reports it.
Wider cases. The same gap opens for:
a restored backup;
a login removed by hand;
a server recreated on an empty data directory.
The reverse drift. A contribution that disappears while the provisioner is down is never removed.
**Located, not fixed.** This PR records the issue only.
The provisioner harness skips any consumer whose login, password and values hash hasn't changed. It never checks the backend.
- **The cache.** It has no ACL file, so its per-consumer users live only in memory. A server restart erases them. The provisioner, still running, does nothing about it. Every consumer fails to authenticate, and nothing reports it.
- **Wider cases.** The same gap opens for:
- a restored backup;
- a login removed by hand;
- a server recreated on an empty data directory.
- **The reverse drift.** A contribution that disappears while the provisioner is down is never removed.
Found during research 016, in hq PR #113.
The open questions are in the report:
- apply on every pass instead of trusting a hash;
- an ACL file for the cache;
- where the applied record should live.
`records.py`, `index.py` and `cycle.py` pass.
The harness compares against its own memory, so a backend that loses
what was provisioned (the cache's ACL users on a server restart) is
never provisioned again, silently.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Located, not fixed. This PR records the issue only.
The provisioner harness skips any consumer whose login, password and values hash hasn't changed. It never checks the backend.
Found during research 016, in hq PR #113.
The open questions are in the report:
records.py,index.pyandcycle.pypass.