[DISCUSSION] nonparallel vs nonparallel-self #10
Labels
No labels
bugfix
cleanup
discussion
documentation
doing
done
feature
improvement
packaging
Stale
testing
TODO
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
ungleich-public/cdist#10
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Conceptually there are many types that shouldn't be run in parallel with antyhing at all. Something that changes the system's global state.
On the other hand, some (most?) types actually only need to not be run in parallel with another instance of themselves, those that are accessing one well defined resource (or set of resources).
I am unsure which one the current
nonparallelimplementation meant to address, and whether it would make sense to address the other one.I'd be delighted to know your thoughts...
I think you're pokinging a wasps nest, here.
The current
nonparallelfile is meant to be used with types that modify parts of one resource, e.g.__package_*: modifies the package database,__uci: modified the UCI database,__sshd_config: modifies the "global" sshd_config,__debconf_set_selections: modifies the debconf database; is currently parallel, but I'm working on a patch.)But there are many different cases where this does not apply, e.g.:
__cron: modifies crontab, but interlocking is only required if multiple objects touch the same user.__key_value/__line: interlocking only required if multiple objects touch the same file.__dpkg_architecture: isnonparallel, but maybe it should also interlock with e.g.__package_aptor__apt_*?__ssh_authorized_key: only requires interlocking if multiple objects touch the same file.But IMHO
nonparallelis actually even more complex.There are two issues I see that are non-trivial to fix.
Even if all cdist objects would be locked by a
nonparallel-theworldcdist runs can still fail if e.g. an auto updater cron job launches and starts to upgrade packages at the same time.code-remote(asnonparalleldoes) but it can also apply to explorers.EDIT: @fancsali can you make some examples of objects that should not be run with anything else in parallel?
changed the description
changed the description
changed title from {-{-} to {+[DISCUSSION] nonparallel vs nonparallel-self+}