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

Not all binaries needed in initrd binary #987

Closed
agrover opened this issue Jun 12, 2018 · 7 comments
Closed

Not all binaries needed in initrd binary #987

agrover opened this issue Jun 12, 2018 · 7 comments
Milestone

Comments

@agrover
Copy link
Contributor

agrover commented Jun 12, 2018

With the merge of #986, stratisd will fail to run if all binaries aren't found. However, it only uses a subset of binaries from initrd, so it should only check for those if compiled for that use.

@agrover agrover added this to the Stratis 1.0 milestone Jun 12, 2018
@mulkieran
Copy link
Member

My concern is that this issue about exiting if some binaries that stratisd usually requires, but which aren't available in the initramfs, is just the tip of the iceberg of the problem.

We have a mechanism, conditional compilation, which is supposed to prevent D-Bus actions from being executed at boot. But how do we know that xfs-dependent actions won't be executed at boot, causing stratisd to fail one way or the other? AFAIK, the answer is that we do not.

If we already had a mechanism to deal with that problem; then handling problems around verify_binaries() would be easy, as we could make alternate version of BINARIES and verify_binaries and switch between them based on whether the desired stratisd was the initramfs or the full one. But we do not have that.

@agrover
Copy link
Contributor Author

agrover commented Jun 13, 2018

Since #986 went in, we just will fail to come up in initrd because xfs binaries are absent, so that's not a good state of affairs.

I was thinking we'd just config out XFS binaries being searched-for in BINARIES if building for initrd. Then calling them would return an error. We could also go further and cfg-out the callsites as well. Thoughts?

We also could punt and require xfs binaries in initrd, even though we never(?) will need them! Not saying we should, but this puts in perspective that this is really an optimization to keep our initrd footprint down.

Another tangential thought: right now we have a default feature of "dbus_enabled". Since that isn't the entirety of the changes we're now looking at for stratis-init, we may need to rename it, or add a second default feature.

@tasleson
Copy link
Contributor

Should we just edit the dracut plugin to require all of the binaries? I'm not sure if this will be OK due to space constraints, but it would make this issue go away.

@agrover
Copy link
Contributor Author

agrover commented Aug 23, 2018

Sure, let's just do that for now, and we can refine later if needed.

@tasleson
Copy link
Contributor

PR posted upstream, see: dracutdevs/dracut#452

@tasleson
Copy link
Contributor

Upstream merged

@agrover
Copy link
Contributor Author

agrover commented Aug 27, 2018

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants