Skip to content

Commit

Permalink
Release notes for Stratis 3.0.0
Browse files Browse the repository at this point in the history
Signed-off-by: mulhern <amulhern@redhat.com>
  • Loading branch information
mulkieran committed Oct 25, 2021
1 parent 03dc60e commit 2375189
Showing 1 changed file with 101 additions and 0 deletions.
101 changes: 101 additions & 0 deletions content/stratis-release-notes-3.0.0.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
+++
title = "Stratis 3.0.0 Release Notes"
date = 2021-10-25
weight = 21
template = "page.html"
render = true
+++

*mulhern, Stratis Team*

Stratis 3.0.0 includes many internal improvements, bug fixes, and
user-visible changes.

Users of the Stratis CLI may observe the following changes:
* It is now possible to set the filesystem logical size when creating a
filesystem.
* It is possible to rebind a pool using a Clevis tang server or with a key
in the kernel keyring.
* Filesystem and pool list output have been extended and improved. The pool
listing includes an `Alerts` column. Currently this column is used to indicate
whether the pool is in a restricted operation mode. A new subcommand,
`stratis pool explain`, which provides a fuller explanation of the codes
displayed in the `Alerts` column has been added. The filesystem listing
now displays a filesystem's logical size.
* With encrypted pools it was previously possible for the display of block
device paths to change format if `stratisd` was restarted after an encrypted
pool had been created. Now the display of the block device paths is consistent
across `stratisd` restarts.
* Previously, if a user specified the same device using two different paths
when creating or extending a pool the different paths would be
interpreted as two different devices and an error would be returned when
`stratisd` attempted to initialize the device a second time. Now, the
different paths are canonicalized eagerly, and converted into a single
canonical representation of the device, `stratisd` initializes the device only
once, and no error is returned.

In stratisd 3.0.0 the D-Bus API has undergone a revision and the prior
interfaces are all removed. The `FetchProperties` interfaces that
were supported by all objects have been removed. The values that were
previously obtainable via the `FetchProperties` methods
are now conventional D-Bus properties. The possible values of error codes
returned by the D-Bus methods have been reduced to 0 and 1, with the usual
interpretation.

stratisd 3.0.0 includes a number of signficant internal improvements and a few
bug fixes.

`stratisd` bug fixes:
* The `--prompt` option was not passed to `stratis-min` in the
`stratis-fstab-setup` script; this prevented the user from entering the
password necessary to unlock an encrypted pool during boot. This is
no longer the case.
* `stratisd` was not immediately updating the devicemapper device stack when
a cache was initialized with the result that the cache was not immediately
put in use. It was necessary for `stratisd` to be restarted for the cache to
be set up properly. This is no longer the case.
* `stratisd` was not immediately updating the Clevis encryption info associated
with a pool on a command to bind an encrypted pool with Clevis. This problem
has been corrected.
* `stratisd` was sending an incorrect D-Bus signal on a pool name change; this
has been fixed.
* Previously, when `stratisd-min`, which runs during boot before D-Bus
functionality is available, gave way to `stratisd` when the D-Bus had been set
up, it was possible for inconsistencies to arise if the Stratis engine was
performing an operation which required invoking a distinct executable. The
executable might be terminated during its execution, and `stratisd-min` would
take the action appropriate to the command failure before exiting. Now, systemd
is instructed to send a kill signal only to `stratisd-min` and not to any of
`stratisd-min`'s child processes when shutting down `stratisd-min`.


Other `stratisd` improvements:
* Handling of errors returned by internal methods is improved; a chaining
mechanism has been introduced and the error chains can be scrutinized
programatically to identify expected scenarios like rollback failures.
* A set of states indicating that a pool has reduced capability have been
added internally and are published on the D-Bus. A pool's capability is
reduced on an error being returned internally which contains, somewhere in
its chain, the appropriate identifying error variant.
* The code used to roll back failed encryption operations on a list of
pool devices has been refactored and generalized. It is now capable of
returning an error that can be used to identify a restricted pool capability
due to a rollback failure.
* `stratisd` uses sha-256 instead of sha-1 for Clevis-related encryption
operations to conform with Clevis's own usage.
* `stratisd` exits more elegantly and less frequently if it encounters an
error during execution of the distinct tasks that are assigned to the
individual threads that it manages internally.
* In preparation for edition 2021 of the Rust language, `stratisd` source code
has been updated to conform entirely to edition 2018 recommendations.
* `stratisd` logging has been improved.

<!-- more -->

Please consult the [stratisd] and [stratis-cli] changelogs for additional
information about the 3.0.0 release.

We would like to thank mvollmer for contributions to this release.

[stratisd]: https://github.com/stratis-storage/stratisd/blob/develop-2.4.2/CHANGES.txt
[stratis-cli]: https://github.com/stratis-storage/stratis-cli/blob/develop-2.4.1/CHANGES.txt

0 comments on commit 2375189

Please sign in to comment.