Re: Ceph build error: ‘class std::mutex’ has no member named ‘is_locked_by_me

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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_me
Z

I am getting this error when building Ceph:

OS: Ubuntu 22.04

 

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
      |                    ^~~~~~~~~~~~~~~

Thank you!

Regards,

Suyash Dongre

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

[Index of Archives]     [CEPH Users]     [Ceph Devel]     [Ceph Large]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux