implement more fine-grained exit codes for syncoid per #680 #722
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
As discussed in #680, it is desirable for syncoid to distinguish between different types of errors using distinct exit codes. In particular, it is useful to use a separate exit code when the target filesystem is busy (when
iszfsbusy
is true). For example, in a syncoid setup sending datasets from A -> B -> C, B may be busy sending data to C when A tries to sync to B, so this allows us to distinguish that situation from other more severe errors.To this end, this PR refactors the exit codes for syncoid as follows:
Cannot sync now: $targetfs is already target of a zfs receive process
$exitcode = 1
)$exitcode = 2
)I realize that this results in a change in exit codes from prior behavior, however the code seems to indicate that exit codes should increase with severity, so it was necessary to shift everything by 1 since the transient errors are the least severe.