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

Lustre 2.15 Compile Issue #127

Open
jdmaloney opened this issue Oct 12, 2022 · 3 comments
Open

Lustre 2.15 Compile Issue #127

jdmaloney opened this issue Oct 12, 2022 · 3 comments

Comments

@jdmaloney
Copy link

Hello,
We're running DDN's ExaScaler 6.x branch which is Lustre 2.14 technically (but with a ton of 2.15 back-ported features since 2.15 is the LTS).

We're seeing the following when compiling RBH 3.1.7 against this version of Lustre.

lustre_tools.c:857: error: "IOC_MDC_GETFILEINFO_V1" redefined [-Werror]
 #   define IOC_MDC_GETFILEINFO_V1   IOC_MDC_GETFILEINFO

In file included from /usr/include/lustre/lustreapi.h:47,
                 from ../../src/include/lustre_extended_types.h:45,
                 from ../../src/include/db_schema.h:32,
                 from ../../src/include/list_mgr.h:144,
                 from lustre_tools.c:18:
/usr/include/linux/lustre/lustre_user.h:667: note: this is the location of the previous definition
 #define IOC_MDC_GETFILEINFO_V1 _IOWR(IOC_MDC_TYPE, 22, struct lov_user_mds_data_v1 *)

lustre_tools.c: In function 'lustre_mds_stat':
lustre_tools.c:857:37: error: 'IOC_MDC_GETFILEINFO_V1' undeclared (first use in this function)
 #   define IOC_MDC_GETFILEINFO_V1   IOC_MDC_GETFILEINFO
                                     ^~~~~~~~~~~~~~~~~~~
lustre_tools.c:888:26: note: in expansion of macro 'IOC_MDC_GETFILEINFO_V1'
     rc = ioctl(parentfd, IOC_MDC_GETFILEINFO_V1, (void *)lmd);
                          ^~~~~~~~~~~~~~~~~~~~~~
lustre_tools.c:857:37: note: each undeclared identifier is reported only once for each function it appears in
 #   define IOC_MDC_GETFILEINFO_V1   IOC_MDC_GETFILEINFO
                                     ^~~~~~~~~~~~~~~~~~~
lustre_tools.c:888:26: note: in expansion of macro 'IOC_MDC_GETFILEINFO_V1'
     rc = ioctl(parentfd, IOC_MDC_GETFILEINFO_V1, (void *)lmd);
                          ^~~~~~~~~~~~~~~~~~~~~~
lustre_tools.c: In function 'lustre_mds_stat_by_fid':
lustre_tools.c:857:37: error: 'IOC_MDC_GETFILEINFO_V1' undeclared (first use in this function)
 #   define IOC_MDC_GETFILEINFO_V1   IOC_MDC_GETFILEINFO
                                     ^~~~~~~~~~~~~~~~~~~
lustre_tools.c:971:35: note: in expansion of macro 'IOC_MDC_GETFILEINFO_V1'
     rc = ioctl(dirfd(fid_dir_fd), IOC_MDC_GETFILEINFO_V1, (void *)lmd);
                                   ^~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors
make[3]: *** [Makefile:453: lustre_tools.lo] Error 1
make[3]: *** Waiting for unfinished jobs....
make[3]: Leaving directory '/root/robinhood/rpms/BUILD/robinhood-3.1.7/src/common'
make[2]: *** [Makefile:394: all-recursive] Error 1
make[2]: Leaving directory '/root/robinhood/rpms/BUILD/robinhood-3.1.7/src'
make[1]: *** [Makefile:473: all-recursive] Error 1
make[1]: Leaving directory '/root/robinhood/rpms/BUILD/robinhood-3.1.7'
error: Bad exit status from /var/tmp/rpm-tmp.wL3I5n (%build)

Let me know if there is any additional output or information I can provide to help resolve this.

@CanWood
Copy link

CanWood commented Feb 15, 2023

Hi folks,

Just to add an update / data-point, I am having the same issue compiling a "git checkout 3.1.7" using lustre 2.15.2 on CentOS 7.9

...
lustre_tools.c:857:0: error: "IOC_MDC_GETFILEINFO_V1" redefined [-Werror]
 #   define IOC_MDC_GETFILEINFO_V1   IOC_MDC_GETFILEINFO
 ^
In file included from /usr/include/lustre/lustreapi.h:46:0,
                 from ../../src/include/lustre_extended_types.h:45,
                 from ../../src/include/db_schema.h:32,
                 from ../../src/include/list_mgr.h:144,
                 from lustre_tools.c:18:
/usr/include/linux/lustre/lustre_user.h:666:0: note: this is the location of the previous definition
 #define IOC_MDC_GETFILEINFO_V1 _IOWR(IOC_MDC_TYPE, 22, struct lov_user_mds_data_v1 *)
 ^
lustre_tools.c: In function 'lustre_mds_stat':
lustre_tools.c:857:37: error: 'IOC_MDC_GETFILEINFO_V1' undeclared (first use in this function)
 #   define IOC_MDC_GETFILEINFO_V1   IOC_MDC_GETFILEINFO
                                     ^
lustre_tools.c:888:26: note: in expansion of macro 'IOC_MDC_GETFILEINFO_V1'
     rc = ioctl(parentfd, IOC_MDC_GETFILEINFO_V1, (void *)lmd);
                          ^
lustre_tools.c:857:37: note: each undeclared identifier is reported only once for each function it appears in
 #   define IOC_MDC_GETFILEINFO_V1   IOC_MDC_GETFILEINFO
                                     ^
lustre_tools.c:888:26: note: in expansion of macro 'IOC_MDC_GETFILEINFO_V1'
     rc = ioctl(parentfd, IOC_MDC_GETFILEINFO_V1, (void *)lmd);
                          ^
lustre_tools.c: In function 'lustre_mds_stat_by_fid':
lustre_tools.c:857:37: error: 'IOC_MDC_GETFILEINFO_V1' undeclared (first use in this function)
 #   define IOC_MDC_GETFILEINFO_V1   IOC_MDC_GETFILEINFO
                                     ^
lustre_tools.c:971:35: note: in expansion of macro 'IOC_MDC_GETFILEINFO_V1'
     rc = ioctl(dirfd(fid_dir_fd), IOC_MDC_GETFILEINFO_V1, (void *)lmd);
                                   ^
cc1: all warnings being treated as errors
make[2]: *** [lustre_tools.lo] Error 1
make[2]: Leaving directory `/usr/local/src/robinhood/src/common'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/usr/local/src/robinhood/src'
make: *** [all-recursive] Error 1

Anyone else have successful builds in a similar environment?

Cheers

@jdmaloney
Copy link
Author

jdmaloney commented Feb 15, 2023

@CanWood I was able to get around this by commenting out lines 854-858 in the file src/common/lustre_tools.c doing so allowed me to compile and run things.

@AlienYouth
Copy link

I ran into the same issue with 3.1.6 and lustre 2.12 and commented out the same lines (although they're 852-856 in 3.1.6) to build the RPMs. 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