[LU-5234] lustre builds on 3.12 kernels are broken Created: 19/Jun/14  Updated: 23/Jun/14  Resolved: 23/Jun/14

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: Lustre 2.6.0

Type: Bug Priority: Critical
Reporter: Bob Glossman (Inactive) Assignee: Bob Glossman (Inactive)
Resolution: Fixed Votes: 0
Labels: HB, patch

Issue Links:
Related
is related to LU-4416 support for 3.12 linux kernel Resolved
Severity: 3
Rank (Obsolete): 14588

 Description   

As noted by recent comment in LU-4416 builds of lustre on 3.12 kernels no longer work. Suspect this is due to the recent landing of a fix from LU-4906 in master. Can't even build clients which did work until very recently. example errors:

  CC [M]  /home/bogl/lustre-release/lustre/llite/dir.o
/home/bogl/lustre-release/lustre/llite/dir.c: In function
bll_dir_readb:
/home/bogl/lustre-release/lustre/llite/dir.c:249:4: error: implicit
declaration of function bfilldirb
[-Werror=implicit-function-declaration]
    done = filldir(cookie, ent->lde_name, namelen, lhash,
    ^
/home/bogl/lustre-release/lustre/llite/dir.c:249:19: error: bcookieb
undeclared (first use in this function)
    done = filldir(cookie, ent->lde_name, namelen, lhash,
                   ^
/home/bogl/lustre-release/lustre/llite/dir.c:249:19: note: each undeclared
identifier is reported only once for each function it appears in
cc1: all warnings being treated as errors
scripts/Makefile.build:324: recipe for target
'/home/bogl/lustre-release/lustre/llite/dir.o' failed
make[6]: *** [/home/bogl/lustre-release/lustre/llite/dir.o] Error 1
scripts/Makefile.build:485: recipe for target
'/home/bogl/lustre-release/lustre/llite' failed
make[5]: *** [/home/bogl/lustre-release/lustre/llite] Error 2
scripts/Makefile.build:485: recipe for target
'/home/bogl/lustre-release/lustre' failed
make[4]: *** [/home/bogl/lustre-release/lustre] Error 2
Makefile:1269: recipe for target '_module_/home/bogl/lustre-release' failed
make[3]: *** [_module_/home/bogl/lustre-release] Error 2
make[3]: Leaving directory '/home/bogl/linux-3.12.21-2'
autoMakefile:1022: recipe for target 'modules' failed
make[2]: *** [modules] Error 2
make[2]: Leaving directory '/home/bogl/lustre-release'
autoMakefile:569: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/bogl/lustre-release'
autoMakefile:474: recipe for target 'all' failed
make: *** [all] Error 2

I think this is due to recent changes to readdir code in lustre/llite/dir.c that don't take into account the HAVE_DIR_CONTEXT case from autoconf. Code was adjusted elsewhere in lustre to adapt to HAVE_DIR_CONTEXT being #define'ed or #undef'ed.



 Comments   
Comment by James A Simmons [ 19/Jun/14 ]

I think I know what this is. I saw this when I was testing my 3.15 client.

P.S
This should be a blocker.

Comment by James A Simmons [ 20/Jun/14 ]

Patch at http://review.whamcloud.com/#/c/10761

Comment by James A Simmons [ 20/Jun/14 ]

As a side note I really hope rhel7 client testing will start soon to avoid this problems in the future. Even if we could do a simple build test.

Comment by Peter Jones [ 20/Jun/14 ]

Bob

Please can you test and review James's patch

James

Yes the builders should be up and running shortly

Peter

Comment by Bob Glossman (Inactive) [ 20/Jun/14 ]

James
Pretty sure this isn't an issue in rhel7. The 3.10 kernel there is too old and lustre built there has #undef HAVE_DIR_CONTEXT. As far as I know it's only an issue on newer kernels like upstream 3.12, 3,14, 3.15, 3.16, sles12 beta, fc20.

Comment by James A Simmons [ 20/Jun/14 ]

That is excellent news. I was under the impression that RHEL7 client got broke at the last minute. You never know what gets back ported by Red Hat We lose SuSE12 client support but its still in beta so it is not as painful of a lost. Mind you all my testing is against a vanilla 3.12 kernel to RHEL7 at this point. Thank you Bob for the clarification.

Comment by Bob Glossman (Inactive) [ 20/Jun/14 ]

It very well might have been an issue for rhel7 too. It's so very hard to predict what RH chooses to back port. Their 3.10 has many features from 3.12 and even later kernels. I'm glad they didn't back port the readdir changes.

Comment by Peter Jones [ 23/Jun/14 ]

Landed for 2.6

Generated at Sat Feb 10 01:49:41 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.