[LU-5760] LU-4707 patch breaks Lustre build Created: 17/Oct/14 Updated: 24/May/16 Resolved: 03/Mar/15 |
|
| Status: | Resolved |
| Project: | Lustre |
| Component/s: | None |
| Affects Version/s: | Lustre 2.7.0, Lustre 2.5.3 |
| Fix Version/s: | Lustre 2.8.0 |
| Type: | Bug | Priority: | Minor |
| Reporter: | Christopher Morrone | Assignee: | Dmitry Eremin (Inactive) |
| Resolution: | Fixed | Votes: | 0 |
| Labels: | None | ||
| Issue Links: |
|
||||
| Severity: | 3 | ||||
| Rank (Obsolete): | 16166 | ||||
| Description |
|
The Here are the patches in gerrit: http://review.whamcloud.com/#/c/9940/ Here are some of the problems: The first problem is that it relied on a decade-old macro named LB_CONFIG_INIT_SCRIPTS that uses a sloppy heuristic of checking for the existence of checking for two files under /etc, and assuming that is a good way to identify a Red Hat system. This method doesn't work under mock-based build environments. (Intel really needs to make LU-3956 happen so you can catch these bugs.) Next, the patches seem to claim that this patch doesn't install init scripts on lustre clients. That isn't really true. It only excludes the scripts from the serverless packages. Clients that use the packages that contain client and server modules will still get the init scripts. So the problem really isn't solved yet. A better way to address this problem is to do the work in LU-3957. A single build of lustre should create separate client and server rpms, and the init scripts for the servers only go into the correct package. Next, the "INIT_SCRIPTS" variable name is not a good one. It is too vague. It should have been, at the very least, something along the lines of "REDHAT_INIT_SCRIPT" if the init scripts only apply to redhat-like systems. But again, the main issue is that those commits broke the build under mock-based environments, and therefore need to be reverted. |
| Comments |
| Comment by Peter Jones [ 17/Oct/14 ] |
|
Dmitry is looking into this one |
| Comment by Dmitry Eremin (Inactive) [ 20/Oct/14 ] |
|
Looking into this patch I don't like to revert it completely. As you mentioned the issue is in the build under mock-based environments and check for INIT_SCRIPTS. So, can we just remove INIT_SCRIPTS checking and install "lustre" script for build with server only unconditionally? Is this solution will be acceptable for you till we really split Lustre package into two client and server? |
| Comment by Christopher Morrone [ 20/Oct/14 ] |
|
I don't know. I'm not entirely comfortable with adding half measures like this. They just make it easier for us to continue to avoid doing the right thing. If we were going to strip down the patch, then at the very least the new shell conditionals in the spec file would need to be removed as well. |
| Comment by Dmitry Eremin (Inactive) [ 21/Oct/14 ] |
|
The patch do two things:
The issue with build under mock-based environments is related to (1) part only. We had a comment about this for SuSe installation also. So, I propose to remove this RedHat specific check at all. This allow to solve your issue and don't include useless stuff in client RPMs. The spec file will not be changed. Only Autoconf rules and conditionals will be removed. I don't understand how this prevents us from doing the right thing in the future. |
| Comment by Christopher Morrone [ 21/Oct/14 ] |
|
Yes, I understand that. I would perhaps reword 2 as the following: 2. Don't include the "lustre" and "ha.d" init scripts in the server-less rpms Because it does still leave the scripts installed on client nodes for the server-full rpm build. That is why I am calling it a "half measure". I didn't say that doing this prevents doing the right thing in the future. My argument is more about motivation. The core Lustre team has had very little motivation to address the build system problems in the past several years. Papering over issues like this will just make it easier for the core team to continue to ignore the problem for longer periods of time. |
| Comment by Dmitry Eremin (Inactive) [ 22/Oct/14 ] |
|
I propose the following change: http://review.whamcloud.com/12377/ |
| Comment by Gerrit Updater [ 03/Mar/15 ] |
|
Oleg Drokin (oleg.drokin@intel.com) merged in patch http://review.whamcloud.com/12377/ |
| Comment by Dmitry Eremin (Inactive) [ 03/Mar/15 ] |
|
Patch landed to master. |
| Comment by Peter Jones [ 03/Mar/15 ] |
|
Note that master is now open for 2.8 landings! |
| Comment by Li Dongyang (Inactive) [ 24/May/16 ] |
|
the change breaks rpm build on RHEL with a customized kernel: In config/lustre-build.m4, RHEL will only be set if RHEL_KERNEL is true. but this is not necessary always right if someone is still running RHEL but with a customized kernel which doesn't have the redhat version numbers. |
| Comment by Christopher Morrone [ 24/May/16 ] |
|
Li Dongyang, you will need to open a new ticket for that issue. |