Project

General

Profile

Actions

Bug #50497

open

openSUSE Leap 15.2 make check fails with error 'MFD_ALLOW_SEALING' was not declared in this scope

Added by Kyrylo Shatskyy almost 3 years ago. Updated almost 3 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

On recent openSUSE Leap 15.2 the make check fails on master branch with:

00:19:24 FAILED: src/common/CMakeFiles/common-common-objs.dir/Journald.cc.o 
00:19:24 /usr/bin/ccache /usr/bin/c++  -DBOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION -DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT -DCEPH_INSTALL_DATADIR=\"/usr/local/share/ceph\" -DCEPH_INSTALL_FULL_PKGLIBDIR=\"/usr/local/lib64/ceph\" -DCMAKE_INSTALL_LIBDIR=\"lib64\" -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE -D__CEPH__ -D__STDC_FORMAT_MACROS -D__linux__ -Isrc/include -I../src -isystem boost/include -isystem include -isystem ../src/xxHash -isystem ../src/rapidjson/include -g -fPIC   -Wall -fno-strict-aliasing -fsigned-char -Wtype-limits -Wignored-qualifiers -Wpointer-arith -Werror=format-security -Winit-self -Wno-unknown-pragmas -Wnon-virtual-dtor -Wno-ignored-qualifiers -ftemplate-depth-1024 -Wstrict-null-sentinel -Woverloaded-virtual -fno-new-ttp-matching -fstack-protector-strong -D_GLIBCXX_ASSERTIONS -fdiagnostics-color=auto -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -std=c++1z -MD -MT src/common/CMakeFiles/common-common-objs.dir/Journald.cc.o -MF src/common/CMakeFiles/common-common-objs.dir/Journald.cc.o.d -o src/common/CMakeFiles/common-common-objs.dir/Journald.cc.o -c ../src/common/Journald.cc
00:19:24 ../src/common/Journald.cc: In member function 'void ceph::logging::detail::JournaldClient::detect_mem_file_mode()':
00:19:24 ../src/common/Journald.cc:165:45: error: 'MFD_ALLOW_SEALING' was not declared in this scope
00:19:24    int memfd = memfd_create("ceph-journald", MFD_ALLOW_SEALING | MFD_CLOEXEC);
00:19:24                                              ^~~~~~~~~~~~~~~~~
00:19:24 ../src/common/Journald.cc:165:45: note: suggested alternative: '_D_ALLOC_NAMLEN'
00:19:24    int memfd = memfd_create("ceph-journald", MFD_ALLOW_SEALING | MFD_CLOEXEC);
00:19:24                                              ^~~~~~~~~~~~~~~~~
00:19:24                                              _D_ALLOC_NAMLEN
00:19:24 ../src/common/Journald.cc:165:65: error: 'MFD_CLOEXEC' was not declared in this scope
00:19:24    int memfd = memfd_create("ceph-journald", MFD_ALLOW_SEALING | MFD_CLOEXEC);
00:19:24                                                                  ^~~~~~~~~~~
00:19:24 ../src/common/Journald.cc:165:65: note: suggested alternative: 'TFD_CLOEXEC'
00:19:24    int memfd = memfd_create("ceph-journald", MFD_ALLOW_SEALING | MFD_CLOEXEC);
00:19:24                                                                  ^~~~~~~~~~~
00:19:24                                                                  TFD_CLOEXEC
00:19:24 ../src/common/Journald.cc:165:15: error: 'memfd_create' was not declared in this scope
00:19:24    int memfd = memfd_create("ceph-journald", MFD_ALLOW_SEALING | MFD_CLOEXEC);
00:19:24                ^~~~~~~~~~~~
00:19:24 ../src/common/Journald.cc:165:15: note: suggested alternative: 'timerfd_create'
00:19:24    int memfd = memfd_create("ceph-journald", MFD_ALLOW_SEALING | MFD_CLOEXEC);
00:19:24                ^~~~~~~~~~~~
00:19:24                timerfd_create
00:19:24 ../src/common/Journald.cc: In member function 'int ceph::logging::detail::JournaldClient::open_mem_file()':
00:19:24 ../src/common/Journald.cc:184:42: error: 'MFD_ALLOW_SEALING' was not declared in this scope
00:19:24      return memfd_create("ceph-journald", MFD_ALLOW_SEALING | MFD_CLOEXEC);
00:19:24                                           ^~~~~~~~~~~~~~~~~
00:19:24 ../src/common/Journald.cc:184:42: note: suggested alternative: '_D_ALLOC_NAMLEN'
00:19:24      return memfd_create("ceph-journald", MFD_ALLOW_SEALING | MFD_CLOEXEC);
00:19:24                                           ^~~~~~~~~~~~~~~~~
00:19:24                                           _D_ALLOC_NAMLEN
00:19:24 ../src/common/Journald.cc:184:62: error: 'MFD_CLOEXEC' was not declared in this scope
00:19:24      return memfd_create("ceph-journald", MFD_ALLOW_SEALING | MFD_CLOEXEC);
00:19:24                                                               ^~~~~~~~~~~
00:19:24 ../src/common/Journald.cc:184:62: note: suggested alternative: 'TFD_CLOEXEC'
00:19:24      return memfd_create("ceph-journald", MFD_ALLOW_SEALING | MFD_CLOEXEC);
00:19:24                                                               ^~~~~~~~~~~
00:19:24                                                               TFD_CLOEXEC
00:19:24 ../src/common/Journald.cc:184:12: error: 'memfd_create' was not declared in this scope
00:19:24      return memfd_create("ceph-journald", MFD_ALLOW_SEALING | MFD_CLOEXEC);
00:19:24             ^~~~~~~~~~~~
00:19:24 ../src/common/Journald.cc:184:12: note: suggested alternative: 'timerfd_create'
00:19:24      return memfd_create("ceph-journald", MFD_ALLOW_SEALING | MFD_CLOEXEC);
00:19:24             ^~~~~~~~~~~~
00:19:24             timerfd_create
00:19:24 ../src/common/Journald.cc: In member function 'int ceph::logging::detail::JournaldClient::send()':
00:19:24 ../src/common/Journald.cc:246:28: error: 'F_ADD_SEALS' was not declared in this scope
00:19:24      ret = fcntl(buffer_fd, F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE | F_SEAL_SEAL);
00:19:24                             ^~~~~~~~~~~
00:19:24 ../src/common/Journald.cc:246:28: note: suggested alternative: 'F_OFD_SETLK'
00:19:24      ret = fcntl(buffer_fd, F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE | F_SEAL_SEAL);
00:19:24                             ^~~~~~~~~~~
00:19:24                             F_OFD_SETLK
00:19:24 ../src/common/Journald.cc:246:41: error: 'F_SEAL_SHRINK' was not declared in this scope
00:19:24      ret = fcntl(buffer_fd, F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE | F_SEAL_SEAL);
00:19:24                                          ^~~~~~~~~~~~~
00:19:24 ../src/common/Journald.cc:246:57: error: 'F_SEAL_GROW' was not declared in this scope
00:19:24      ret = fcntl(buffer_fd, F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE | F_SEAL_SEAL);
00:19:24                                                          ^~~~~~~~~~~
00:19:24 ../src/common/Journald.cc:246:57: note: suggested alternative: 'F_SETLKW'
00:19:24      ret = fcntl(buffer_fd, F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE | F_SEAL_SEAL);
00:19:24                                                          ^~~~~~~~~~~
00:19:24                                                          F_SETLKW
00:19:24 ../src/common/Journald.cc:246:71: error: 'F_SEAL_WRITE' was not declared in this scope
00:19:24      ret = fcntl(buffer_fd, F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE | F_SEAL_SEAL);
00:19:24                                                                        ^~~~~~~~~~~~
00:19:24 ../src/common/Journald.cc:246:71: note: suggested alternative: '__S_IWRITE'
00:19:24      ret = fcntl(buffer_fd, F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE | F_SEAL_SEAL);
00:19:24                                                                        ^~~~~~~~~~~~
00:19:24                                                                        __S_IWRITE
00:19:24 ../src/common/Journald.cc:246:86: error: 'F_SEAL_SEAL' was not declared in this scope
00:19:24      ret = fcntl(buffer_fd, F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE | F_SEAL_SEAL);
00:19:24                                                                                       ^~~~~~~~~~~
00:19:24 ../src/common/Journald.cc:246:86: note: suggested alternative: 'F_SETLEASE'
00:19:24      ret = fcntl(buffer_fd, F_ADD_SEALS, F_SEAL_SHRINK | F_SEAL_GROW | F_SEAL_WRITE | F_SEAL_SEAL);
00:19:24                                                                                       ^~~~~~~~~~~
00:19:24                                                                                       F_SETLEASE
Actions #1

Updated by Kyrylo Shatskyy almost 3 years ago

  • Description updated (diff)
Actions #2

Updated by Kyrylo Shatskyy almost 3 years ago

The MFD_ALLOW_SEALING is not present in recent headers from glibc-devel on Leap 15.2 which has the highest version 2.26-lp152.26.6.1 at the moment the bug occurred.

However, I figured out that Leap 15.3 Beta will have a newer version of glibc-devel which allows to run make check without the error.

Actions #3

Updated by Kyrylo Shatskyy almost 3 years ago

Suspecting PR introduce the failure is here https://github.com/ceph/ceph/pull/39738

Actions

Also available in: Atom PDF