Details
-
Bug
-
Resolution: Fixed
-
Minor
-
None
-
3
-
8106
Description
After the change from LU-2391 to move the lustre-osd.*.ko modules into their own packages, we left a problem behind.
The rpm package dependencies now look a bit like this:
lustre -> lustre-modules <-> lustre-osd-[ldiskfs|zfs] (via lustre-osd)
Note that the dependency between lustre-modules and lustre-osd-* goes both ways.
We did that in the one direction because we need something to depend on the generic "Provides: lustre-osd" when we have server support compiled in, so users will be clued in to the fact that they need to select at least one of the lustre-osd-* packages.
In the other direction, the lustre-osd-* packages need to depend on lustre-modules because the kernel modules contained in the lustre-osd-* rpms really do use symbols from modules in the lustre-modules rpm.
RPM allows this circular dependency, but because of it the modules are not
necessarily installed in the order that we prefer. Namely:
1) lustre
2) lustre-modules
3) lustre-osd-*
It can happen that the lustre-osd-* packages are installed before the lustre-modules package, and then the sysadmin will see a screen full of scary messages about missing symbols.
To fix that problem, we move the dependency on lustre-osd up one package into the "lustre" package. That makes the dependency graph look a bit like:
lustre -> lustre-modules |--> lustre-osd-[ldiskfs|zfs] (via lustre-osd) lustre-osd-[ldiskfs|zfs] -> lustre-modules
I believe that by breaking the dependency loop, we will get the desired
package installation order described above.
I'll submit a patch shortly.