[DISCUSSION] nonparallel vs nonparallel-self #10
Labels
No Label
bugfix
cleanup
discussion
documentation
doing
done
feature
improvement
packaging
Stale
testing
TODO
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: ungleich-public/cdist#10
Loading…
Reference in New Issue
No description provided.
Delete Branch "%!s(<nil>)"
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
nonparallel
implementation 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
nonparallel
file 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_apt
or__apt_*
?__ssh_authorized_key
: only requires interlocking if multiple objects touch the same file.But IMHO
nonparallel
is 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-theworld
cdist runs can still fail if e.g. an auto updater cron job launches and starts to upgrade packages at the same time.code-remote
(asnonparallel
does) 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+}