-
Notifications
You must be signed in to change notification settings - Fork 1.8k
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
Problem with upgrade from 0.6.2 (released version) #2145
Comments
An interesting "sideffect" is that if I boot of a snapshot (which does a clone of the specified snapshot and uses that as root filesystem), a reboot doesn't help! I'm still able to boot from that resulting dataset so the initramfs can import the pool, see datasets and mount it), but after the system have finished booting, zpool can't find any pools and zfs no datasets... Might be another problem, but worth mentioning anyway. |
This is absolutely true. Unfortunately, the libzfs_core patvhes we needed to pull in to track Illumos changed the kernel/user ABI. I've talked with upstream about trying to avoid this sort of thing going forward. Apparently this is less of an issue for them since they force kernel/user space to be updated in sync. Obviously it is a big deal for us so post 0.6.2 we've merged a number of changes to help prevent this from being an issue going forward. Compatibility code could have been written for all of this but we didn't have the resources to devote to it. |
So the question is what to do before 0.6.3 is released - document the behavior properly (downside: people don't read documentation - I'm no exception :), just release and deal with all the questions and issue reports about this on an individual basis (in combination with documentation, this seems to be the simplest and easiest thing) or write the comparability code. Since time is always an issue for everyone, I vote on making this a documentation issue and keep it open for as long as we think we need, write up the "reboot necessary after upgrade" part somewhere safe and easily found and post a link to that in the issue here. |
Just a side effect of this problem: When upgrading both ZoL and Grub (because of libzfs SONAME change), the grub.cfg file will be faulty:
For some people, this will be a nobrainer - just edit the file and set a correct command line. But for those that barely know what an editor is, but still insist on running ZFS... ? Reinventing the wheel (basically recreating grub-mkconfig and grub-probe etc in shell script just for this purpose) seems to be overkill... |
In It probably needs work, but it might be a start. |
@FransUrbo My intention was to do the following:
|
What I mean is, that this upgrade is quite disruptive - more so than other's I've seen. We really need people to pay attention to this upgrade, and an extra note somewhere next to the coming '0.6.3 release line' would be prudent. People is going to miss that (or ignore it any way), but the more places we put it in, the bigger the chance they'll read it.
The link is only necessary if it's not recompiled against the new libzfs2. And I have already supplied such a recompiled version, and I'm sure @dajhorn will do to when it's time for release (if he haven't already - he's been doing snapshots/dailies longer than me :)... Just documenting that "after the upgrade, either a recompilation of grub OR creating a symlink will be required" would probably be enough. Or even better: Saving the running grub.cfg in a safe place before starting the upgrade and then copying it back is best. I can't do that in the packages ("I" don't own it, so I'm not allowed to touch it - also, I can't be sure it haven't been modified wrongly already).. So unless you can write a 'mini-libzfs1' library that will allow the pool to be viewed ("zpool status" etc) with newer binaries, older module, documenting the problem as best as we can is the only way forward. |
From day one the various ZFS libraries should have been placed in their own sub-packages. Primarily this allows for multiple major versions of the libraries to be concurrently installed. It also facilitates a smaller build environment by minimizing the required dependencies. The specific changes required to split the libraries from the utilities are as follows: * libzpool2, libnvpair1, libuutil1, and libzfs2 packages were added and contain the versioned shared libraries. The Fedora packaging guidelines discourage providing static libraries so they are not included in the packages. http://fedoraproject.org/wiki/Packaging:Guidelines#Packaging_Static_Libraries * The zfs-devel package was renamed libzfs2-devel and the new package obsoletes the old zfs-devel package. This package includes all the required headers for the libzpool2, libnvpair1, libuutil1, and libzfs2 libraries and their respective unversioned shared libraries. This package should eventually be split in to individual lib*-devel packages but it will still take some work to cleanly separate them. Therefore the libzfs2-devel package provides the expected lib*-devel packages so the all proper dependencies can still be created. http://fedoraproject.org/wiki/Packaging:Guidelines#Devel_Packages * Moved '/sbin/ldconfig' execution from the zfs packge to each of the new library packages as described by the packaging guidelines. http://fedoraproject.org/wiki/Packaging:Guidelines#Shared_Libraries * The /usr/share/doc/ files were moved in to the libzfs2-devel package. * Updated config/deb.am to be aware of the packaging changes. This ensures that 'deb-utils' make target converts all the resulting packages generated by the 'rpm-utils' target. Signed-off-by: Turbo Fredriksson <turbo@bayour.com> Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov> Closes: #2329 Closes: #2341 Issue: #2145
I'm seeing the same issue after upgrading to 0.6.4 I see after boot:
cmdline is: Help? |
I noticed this in zfsonlinux/grub#9.
It seems (still not absolutly verified) that there is a problem if/when the module is still 0.6.2, but the userland comes from HEAD. Or at least, that's the only thing I can think of this far.
After a reboot, the pool is back as it's supposed to.
The text was updated successfully, but these errors were encountered: