Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Paradox when pool is in stopped pools data structure but is fully started #3353

Open
mulkieran opened this issue May 30, 2023 · 0 comments
Open
Assignees
Projects

Comments

@mulkieran
Copy link
Member

mulkieran commented May 30, 2023

We can engineer this state by:

  1. Corrupting Stratis LUKS metadata so that a device is recognized as a Stratis device but has no valid encryption information to unlock a pool.
  2. Restarting stratisd.

stratisd detects that there is no valid encryption information and puts the pool into stopped pools data structure. But, because the pool was not taken down previously, it is fully started and functional. If it were torn down, then it would not be possible to just restart it, due to the invalid LUKS info. It seems like it would not help the user to tear it down, on the other hand, stratisd is reporting the fully functional pool as stopped. We believe that stratisd attempts to teardown the pool, but can't if there are filesystems present on the pool, because they hold the underlying pool devices, and the teardown of the thinpool device, for example, will return a failure, probably an EBUSY.

Probably, in the best case, we should put the pool into a reduced availability state and send out a warning. We've proposed NO_IPC_REQUESTS, because that will allow adjustments of the pool if filesystems are written to, etc.

@mulkieran mulkieran added this to To do in 2023May via automation May 30, 2023
@mulkieran mulkieran self-assigned this May 30, 2023
@mulkieran mulkieran removed this from To do in 2023May Jun 5, 2023
@mulkieran mulkieran added this to To do in 2023June via automation Jun 5, 2023
@mulkieran mulkieran removed this from To do in 2023June Jul 10, 2023
@mulkieran mulkieran added this to To do in 2023July via automation Jul 10, 2023
@mulkieran mulkieran removed this from To do in 2023July Aug 7, 2023
@mulkieran mulkieran added this to To do in 2023August via automation Aug 7, 2023
@mulkieran mulkieran removed this from To do in 2023August Aug 31, 2023
@mulkieran mulkieran added this to To do in 2023September via automation Aug 31, 2023
@mulkieran mulkieran removed this from To do in 2023September Oct 3, 2023
@mulkieran mulkieran added this to To do in 2023October via automation Oct 3, 2023
@mulkieran mulkieran removed this from To do in 2023October Oct 30, 2023
@mulkieran mulkieran added this to To do in 2023November via automation Oct 30, 2023
@mulkieran mulkieran removed this from To do in 2023November Nov 30, 2023
@mulkieran mulkieran added this to To do in 2023December via automation Nov 30, 2023
@mulkieran mulkieran removed this from To do in 2023December Jan 2, 2024
@mulkieran mulkieran added this to To do in 2024January via automation Jan 2, 2024
@mulkieran mulkieran removed this from To do in 2024January Feb 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
tracking
Awaiting triage
Development

No branches or pull requests

1 participant