We currently have a number of clean up tasks implemented as cron jobs. This milestone is about implementing a dedicated janitor service (say, grid_janitor.py
) , which apart from handling our current cron clean up tasks should also take over the vgrid cache updates and check that pending requests are valid and mark or simply reject them if not.
The current client-driven concurrent vgrid cache updates with http timeout after 300s are fragile and inefficient. They should really be replaced by a single handler without such time limits. The janitor would be an obvious place for taking care of the updates in a simple and efficient way. It can be adjusted to use memory caching of owners and members in mig_system_run
for better performance when netfs is a bottleneck.
Site operators report that there's quite a bit of overhead in the existing account handling process and in several cases simple errors or mismatches render the process moot midway through. E.g. if the user already has an account with a slightly different ID or if trying to renew an expired account and not providing the existing password to authenticate it.
The janitor could therefore check pending requests and detect password mismatch, ID clash and invalid peers for starters.
Having password checks in a detached service like that rather than during form submission also allows delaying the check/reject long enough for password guessing that way to remain infeasible.
On-going work to simplify account renewal and password change from the Accounts page will reduce some of the hurdles in account handling but this service would still help reduce the remaining nuisances.
We expect the work to contain at least three iterations:
- Basic janitor service focusing on integration in the migrid stack and some low hanging fruits regarding account request pruning (PR #322).
- Additions to replace the need for the separate clean up cron jobs. Maybe some polish in follow-up to first iteration (PR #322 + XXX).
- Additions to replace the currently client-driven vgrid/user/people cache upgrades with a janitor-only version to eliminate races and overhead (PR 341)
List view
0 issues of 7 selected
- Status: Open (in progress).ucphhpc/migrid-syncnumber 357#357 In ucphhpc/migrid-sync;
- Status: Open (in progress).ucphhpc/migrid-syncnumber 361#361 In ucphhpc/migrid-sync;
Improved coverage and fixed string checks for basic functionality of several of the pwcrypto helpers
Status: Open (in progress).ucphhpc/migrid-syncnumber 362#362 In ucphhpc/migrid-sync;- Status: Draft (not ready).ucphhpc/migrid-syncnumber 364#364 In ucphhpc/migrid-sync;
- Status: Draft (not ready).ucphhpc/migrid-syncnumber 368#368 In ucphhpc/migrid-sync;
- Status: Open (in progress).ucphhpc/migrid-syncnumber 369#369 In ucphhpc/migrid-sync;
- Status: Draft (not ready).ucphhpc/migrid-syncnumber 372#372 In ucphhpc/migrid-sync;