Actions
Bug #69659
opensquid: FTBFS with Python 3.13
Status:
New
Priority:
Normal
Assignee:
-
Category:
build
Target version:
-
% Done:
0%
Source:
Backport:
Regression:
No
Severity:
2 - major
Reviewed:
Affected Versions:
ceph-qa-suite:
Pull request ID:
Crash signature (v1):
Crash signature (v2):
Tags (freeform):
Merge Commit:
Fixed In:
Released In:
Upkeep Timestamp:
Description
Ceph v19.2.0 fails to build with Python 3.13 on Debian Trixie. As of 2025-01-26, the issue also affects the squid branch:
[ 77%] Building CXX object src/mgr/CMakeFiles/ceph-mgr.dir/PyModule.cc.o
cd /pkg/src/obj-x86_64-linux-gnu/src/mgr && /usr/bin/c++ -DBOOST_ASIO_DISABLE_THREAD_KEYWORD_EXTENSION -DBOOST_ASIO_HAS_IO_URING -DBOOST_ASIO_NO_TS_EXECUTORS -DHAVE_CONFIG_H -DPY_SSIZE_T_CLEAN -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/pkg/src/obj-x86_64-linux-gnu/src/include -I/pkg/src/src -I/pkg/src/src/rocksdb/include -isystem /pkg/src/obj-x86_64-linux-gnu/boost/include -isystem /pkg/src/obj-x86_64-linux-gnu/include -isystem /pkg/src/src/xxHash -isystem /pkg/src/src/fmt/include -isystem /usr/include/python3.13 -g -O2 -ffile-prefix-map=/pkg/src=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -Wdate-time -D_FORTIFY_SOURCE=2 -std=c++20 -fPIE -U_FORTIFY_SOURCE -fno-builtin-malloc -fno-builtin-calloc -fno-builtin-realloc -fno-builtin-free -DBOOST_PHOENIX_STL_TUPLE_H_ -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 -MD -MT src/mgr/CMakeFiles/ceph-mgr.dir/PyModule.cc.o -MF CMakeFiles/ceph-mgr.dir/PyModule.cc.o.d -o CMakeFiles/ceph-mgr.dir/PyModule.cc.o -c /pkg/src/src/mgr/PyModule.cc
In file included from /pkg/src/src/common/dout.h:29,
from /pkg/src/src/include/Context.h:19,
from /pkg/src/src/common/Cond.h:21,
from /pkg/src/src/mgr/MgrContext.h:20,
from /pkg/src/src/mgr/PyModule.cc:17:
/pkg/src/src/common/ceph_context.h: In member function 'void ceph::common::CephContext::set_mon_addrs(const std::vector<entity_addrvec_t>&)':
/pkg/src/src/common/ceph_context.h:285:26: warning: 'void std::atomic_store_explicit(shared_ptr<_Tp>*, shared_ptr<_Tp>, memory_order) [with _Tp = vector<entity_addrvec_t>]' is deprecated: use 'std::atomic<std::shared_ptr<T>>' instead [-Wdeprecated-declarations]
285 | atomic_store_explicit(&_mon_addrs, std::move(ptr), std::memory_order_relaxed);
| ~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/14/memory:81,
from /pkg/src/src/mgr/MgrContext.h:17:
/usr/include/c++/14/bits/shared_ptr_atomic.h:173:5: note: declared here
173 | atomic_store_explicit(shared_ptr<_Tp>* __p, shared_ptr<_Tp> __r,
| ^~~~~~~~~~~~~~~~~~~~~
/pkg/src/src/common/ceph_context.h: In member function 'std::shared_ptr<std::vector<entity_addrvec_t> > ceph::common::CephContext::get_mon_addrs() const':
/pkg/src/src/common/ceph_context.h:288:36: warning: 'std::shared_ptr<_Tp> std::atomic_load_explicit(const shared_ptr<_Tp>*, memory_order) [with _Tp = vector<entity_addrvec_t>]' is deprecated: use 'std::atomic<std::shared_ptr<T>>' instead [-Wdeprecated-declarations]
288 | auto ptr = atomic_load_explicit(&_mon_addrs, std::memory_order_relaxed);
| ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/shared_ptr_atomic.h:133:5: note: declared here
133 | atomic_load_explicit(const shared_ptr<_Tp>* __p, memory_order)
| ^~~~~~~~~~~~~~~~~~~~
/pkg/src/src/mgr/PyModule.cc: In member function 'int PyModule::load(PyThreadState*)':
/pkg/src/src/mgr/PyModule.cc:363:20: warning: 'void PySys_SetArgv(int, wchar_t**)' is deprecated [-Wdeprecated-declarations]
363 | PySys_SetArgv(1, (wchar_t**)argv);
| ~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/python3.13/Python.h:125,
from /pkg/src/src/mgr/BaseMgrModule.h:4,
from /pkg/src/src/mgr/PyModule.cc:14:
/usr/include/python3.13/sysmodule.h:10:38: note: declared here
10 | Py_DEPRECATED(3.11) PyAPI_FUNC(void) PySys_SetArgv(int, wchar_t **);
| ^~~~~~~~~~~~~
/pkg/src/src/mgr/PyModule.cc:367:70: warning: 'wchar_t* Py_GetPath()' is deprecated [-Wdeprecated-declarations]
367 | wstring sys_path(wstring(begin(paths), end(paths)) + Py_GetPath());
| ~~~~~~~~~~^~
In file included from /usr/include/python3.13/Python.h:123:
/usr/include/python3.13/pylifecycle.h:46:43: note: declared here
46 | Py_DEPRECATED(3.13) PyAPI_FUNC(wchar_t *) Py_GetPath(void);
| ^~~~~~~~~~
/pkg/src/src/mgr/PyModule.cc:368:7: error: 'PySys_SetPath' was not declared in this scope; did you mean 'Py_GetPath'?
368 | PySys_SetPath(const_cast<wchar_t*>(sys_path.c_str()));
| ^~~~~~~~~~~~~
| Py_GetPath
Updated by Ronen Friedman about 1 year ago
In 'main', this will be fixed by https://github.com/ceph/ceph/pull/60986
Updated by Hristo Venev about 1 year ago
It might help with the warnings on src/common/ceph_context.h:288, but I don't think it will fix the error on src/mgr/PyModule.cc:368. There the fix would probably be something similar to 51a5774aa605f3b976ced47902e15ce450f50339.
Actions