Thanks for the debug information Suyash.
This looks to be a separate issue that was fixed by this PR that was merged only a couple hours ago (https://github.com/ceph/ceph/pull/60186),
so you may have to pull the latest.
Also, I have created a PR (https://github.com/ceph/ceph/pull/60211) for the original issue in this email chain here which
is just waiting to pass through the CI process before it can be merged.
Jonathan
From:
Suyash Dongre <suyashd999@xxxxxxxxx>
Date: Wednesday, 9 October 2024 at 12:35 PM
To: Jonathan Bailey <Jonathan.Bailey1@xxxxxxx>
Cc: dev@xxxxxxx <dev@xxxxxxx>
Subject: [EXTERNAL] Re: Ceph build error: ‘class std::mutex’ has no member named ‘is_locked_by_me
By just removing the line /ceph/src/common/io_exerciser/RadosIo. cc
line 84 isn't fixing the issue. I have attached the log after the error occurred On Wed, Oct 9, 2024 at 2: 29 PM Jonathan Bailey
<Jonathan. Bailey1@ ibm. com>
wrote: Hi
By just removing the line /ceph/src/common/io_exerciser/RadosIo.cc line 84 isn't fixing the issue.
I have attached the log after the error occurred
Hi Suyash
This is code from a file added in my recent commit (https://github.com/ceph/ceph/pull/59857)
and I am surprised to see this error line pop up as it was not an issue in the CI make checks before submitting the pull request. Potentially there is an improvement to the CI testing that could be made to catch things like this in the future.
For now you can probably remove this line (/ceph/src/common/io_exerciser/RadosIo.cc line 84) from your local
environment to unblock your development, as it is not a file that is compiled into the main ceph code currently, just a new test executable (bin/ceph_test_rados_io_sequence).
The current thinking as to why you are seeing this is that this might be due to a difference between release builds and debug builds as this is a
function of ceph::mutex that does not exist in std::mutex. However I will investigate further and update this thread if I find reasoning to show the contrary. I will look to create a pull request with my findings to fix this in the code base for everyone.
Thanks
Jonathan
From:
Suyash Dongre <suyashd999@xxxxxxxxx>
Date: Wednesday, 9 October 2024 at 1:13 AM
To: dev@xxxxxxx <dev@xxxxxxx>
Subject: [EXTERNAL] Ceph build error: ‘class std::mutex’ has no member named ‘is_locked_by_meZ
I am getting this error when building Ceph:
Any help would be appreciated.
[373/2229] Building CXX object src/com...s/object_io_exerciser.dir/RadosIo.cc.o
FAILED: src/common/io_exerciser/CMakeFiles/object_io_exerciser.dir/RadosIo.cc.o
/usr/bin/g++-12 -DBOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION -DBOOST_ASIO_HAS_IO_URING -DBOOST_ASIO_NO_TS_EXECUTORS -DHAVE_CONFIG_H -D_FILE_OFFSET_BITS=64 -D_FORTIFY_SOURCE=2 -D_GNU_SOURCE -D_REENTRANT -D_THREAD_SAFE -D__CEPH__ -D__STDC_FORMAT_MACROS -D__linux__
-I/home/suyash/ceph/build/src/include -I/home/suyash/ceph/src -isystem /home/suyash/ceph/build/boost/include -isystem /home/suyash/ceph/build/include -isystem /home/suyash/ceph/src/jaegertracing/opentelemetry-cpp/api/include -isystem /home/suyash/ceph/src/jaegertracing/opentelemetry-cpp/exporters/jaeger/include
-isystem /home/suyash/ceph/src/jaegertracing/opentelemetry-cpp/ext/include -isystem /home/suyash/ceph/src/jaegertracing/opentelemetry-cpp/sdk/include -isystem /home/suyash/ceph/src/xxHash -isystem /home/suyash/ceph/src/fmt/include -O2 -g -DNDEBUG -fPIC -U_FORTIFY_SOURCE
-fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -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 -Wpessimizing-move -Wredundant-move -Wstrict-null-sentinel -Woverloaded-virtual -fstack-protector-strong -fdiagnostics-color=auto -std=c++20 -MD -MT src/common/io_exerciser/CMakeFiles/object_io_exerciser.dir/RadosIo.cc.o -MF src/common/io_exerciser/CMakeFiles/object_io_exerciser.dir/RadosIo.cc.o.d
-o src/common/io_exerciser/CMakeFiles/object_io_exerciser.dir/RadosIo.cc.o -c /home/suyash/ceph/src/common/io_exerciser/RadosIo.cc
In file included from /home/suyash/ceph/src/common/io_exerciser/IoOp.h:5,
from /home/suyash/ceph/src/common/io_exerciser/Model.h:3,
from /home/suyash/ceph/src/common/io_exerciser/ObjectModel.h:3,
from /home/suyash/ceph/src/common/io_exerciser/RadosIo.h:3,
from /home/suyash/ceph/src/common/io_exerciser/RadosIo.cc:1:
/home/suyash/ceph/src/common/io_exerciser/RadosIo.cc: In member function ‘virtual bool ceph::io_exerciser::RadosIo::readyForIoOp(ceph::io_exerciser::IoOp&)’:
/home/suyash/ceph/src/common/io_exerciser/RadosIo.cc:84:20: error: ‘ceph::mutex’ {aka ‘class std::mutex’} has no member named ‘is_locked_by_me’
84 | ceph_assert(lock.is_locked_by_me()); //Must be called with lock held
| ^~~~~~~~~~~~~~~
Unless otherwise stated above:
IBM United Kingdom Limited
Registered in England and Wales with number 741598
Registered office: Building C, IBM Hursley Office, Hursley Park Road, Winchester, Hampshire SO21 2JN
Unless otherwise stated above:
IBM United Kingdom Limited
Registered in England and Wales with number 741598
Registered office: Building C, IBM Hursley Office, Hursley Park Road, Winchester, Hampshire SO21 2JN
|
_______________________________________________
Dev mailing list -- dev@xxxxxxx
To unsubscribe send an email to dev-leave@xxxxxxx