2020-05-24 17:43:42 +02:00
|
|
|
// Code generated by zrepl tooling; DO NOT EDIT.
|
|
|
|
|
|
|
|
package tests
|
|
|
|
|
|
|
|
var Cases = []Case{BatchDestroy,
|
|
|
|
CreateReplicationCursor,
|
|
|
|
GetNonexistent,
|
2020-05-24 17:49:16 +02:00
|
|
|
HoldsWork,
|
2020-05-24 17:43:42 +02:00
|
|
|
IdempotentBookmark,
|
|
|
|
IdempotentDestroy,
|
|
|
|
IdempotentHold,
|
|
|
|
ListFilesystemVersionsFilesystemNotExist,
|
|
|
|
ListFilesystemVersionsTypeFilteringAndPrefix,
|
|
|
|
ListFilesystemVersionsUserrefs,
|
|
|
|
ListFilesystemVersionsZeroExistIsNotAnError,
|
|
|
|
ListFilesystemsNoFilter,
|
2020-05-20 13:10:37 +02:00
|
|
|
ReceiveForceIntoEncryptedErr,
|
2020-05-24 17:49:16 +02:00
|
|
|
ReceiveForceRollbackWorksUnencrypted,
|
2020-07-26 17:58:20 +02:00
|
|
|
ReplicationFailingInitialParentProhibitsChildReplication,
|
2020-05-20 13:10:37 +02:00
|
|
|
ReplicationIncrementalCleansUpStaleAbstractionsWithCacheOnSecondReplication,
|
|
|
|
ReplicationIncrementalCleansUpStaleAbstractionsWithoutCacheOnSecondReplication,
|
2020-06-01 14:39:59 +02:00
|
|
|
ReplicationIncrementalDestroysStepHoldsIffIncrementalStepHoldsAreDisabledButStepHoldsExist,
|
2020-05-24 18:18:02 +02:00
|
|
|
ReplicationIncrementalIsPossibleIfCommonSnapshotIsDestroyed,
|
2020-06-27 23:53:33 +02:00
|
|
|
ReplicationIsResumableFullSend__both_GuaranteeResumability,
|
|
|
|
ReplicationIsResumableFullSend__initial_GuaranteeIncrementalReplication_incremental_GuaranteeIncrementalReplication,
|
|
|
|
ReplicationIsResumableFullSend__initial_GuaranteeResumability_incremental_GuaranteeIncrementalReplication,
|
2020-09-07 01:20:57 +02:00
|
|
|
ReplicationPropertyReplicationWorks,
|
2020-07-26 12:24:05 +02:00
|
|
|
ReplicationReceiverErrorWhileStillSending,
|
2020-06-27 23:53:33 +02:00
|
|
|
ReplicationStepCompletedLostBehavior__GuaranteeIncrementalReplication,
|
|
|
|
ReplicationStepCompletedLostBehavior__GuaranteeResumability,
|
2020-05-24 17:43:42 +02:00
|
|
|
ResumableRecvAndTokenHandling,
|
|
|
|
ResumeTokenParsing,
|
2020-09-05 16:04:34 +02:00
|
|
|
SendArgsValidationEncryptedSendOfUnencryptedDatasetForbidden__EncryptionSupported_false,
|
|
|
|
SendArgsValidationEncryptedSendOfUnencryptedDatasetForbidden__EncryptionSupported_true,
|
2020-05-24 17:43:42 +02:00
|
|
|
SendArgsValidationResumeTokenDifferentFilesystemForbidden,
|
|
|
|
SendArgsValidationResumeTokenEncryptionMismatchForbidden,
|
zfs: rewrite SendStream, fix bug in Close() on FreeBSD, add platformtests
This commit was motivated by https://github.com/zrepl/zrepl/issues/495
where, on FreeBSD with OpenZFS 2.0, a SendStream.Close() call might wait indefinitely for `zfs send` to exit.
The reason is that, due to the refactoring done for redacted send & recv
(https://github.com/openzfs/zfs/commit/30af21b02569ac192f52ce6e6511015f8a8d5729),
the `dump_bytes` function, which writes to the pipe, executes in a separate thread (synctask taskq) iff not `HAVE_LARGE_STACKS`.
The `zfs send` process/thread waits for that taskq thread using an uninterruptible primitive.
So when we SIGKILL `zfs send`, that signal doesn't reach the right thread to interrupt the pipe write.
Theoretically this affects both Linux and FreeBSD, but most Linux users `HAVE_LARGE_STACKS` and since https://github.com/penzfs/zfs/pull/12350/files OpenZFS on FreeBSD `HAVE_LARGE_STACKS` as well.
However, at least until FreeBSD 13.1, possibly for the entire 13 lifecycle, we're going to have to live with that oddity.
Measures taken in this commit:
- Report the behavior as an upstream bug https://github.com/openzfs/zfs/issues/12500
- Change SendStream code so that it closes zrepl's read-end of the pipe (see comment in code)
- Clean up and make explicit SendStream's state handling
- Write extensive platformtests for SendStream
- They pass on my Linux install and on FreeBSD 12
- FreeBSD 13 still needs testing.
fixes https://github.com/zrepl/zrepl/issues/495
2021-08-20 17:43:28 +02:00
|
|
|
SendStreamCloseAfterBlockedOnPipeWrite,
|
|
|
|
SendStreamCloseAfterEOFRead,
|
|
|
|
SendStreamMultipleCloseAfterEOF,
|
|
|
|
SendStreamMultipleCloseBeforeEOF,
|
|
|
|
SendStreamNonEOFReadErrorHandling,
|
2020-05-24 17:43:42 +02:00
|
|
|
UndestroyableSnapshotParsing,
|
|
|
|
}
|