Actions
Bug #53441
closedvstart.sh loops forever reporting SystemError: PY_SSIZE_T_CLEAN
Status:
Resolved
Priority:
Normal
Assignee:
-
Category:
build
Target version:
-
% Done:
0%
Source:
Community (dev)
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Description
I followed README.md to build Ceph and run vstart, aiming to run s3-tests with RGW for now. Result is, vstart loops, emitting the following:
/home/zaitcev/ceph/ceph-srbac/build/bin/ceph-mds -i c -c /home/zaitcev/ceph/ceph-srbac/build/ceph.conf
starting mds.c at
/home/zaitcev/ceph/ceph-srbac/build/bin/ceph -c /home/zaitcev/ceph/ceph-srbac/build/ceph.conf -k /home/zaitcev/ceph/ceph-srbac/build/keyring fs volume ls
Error EINVAL: SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats
/home/zaitcev/ceph/ceph-srbac/build/bin/ceph -c /home/zaitcev/ceph/ceph-srbac/build/ceph.conf -k /home/zaitcev/ceph/ceph-srbac/build/keyring fs volume ls
Error EINVAL: SystemError: PY_SSIZE_T_CLEAN macro must be defined for '#' formats
<------ loops here forever, with the empty line
Command history:
[zaitcev@lembas ceph-srbac]$ history | tail -40
341 vi src/mgr/ActivePyModule.h
342 cd build/
343 ninja
344 RGW=1 ../src/vstart.sh -n --without-dashboard
345 ../src/stop.sh
Source is branch master on 2021-11-20.
The build platform is Fedora 35, Python 3.10.
The documentation for Python says:
at https://docs.python.org/3/c-api/intro.html
"It is recommended to always define PY_SSIZE_T_CLEAN before including Python.h."
However, as you can see, we cannot avoid including it anymore.
The code generated by Cython always defines it. For example, in
build/src/pybind/rgw/rgw.c:
/* Generated by Cython 0.29.24 /
#ifndef PY_SSIZE_T_CLEAN
#define PY_SSIZE_T_CLEAN
#endif / PY_SSIZE_T_CLEAN */
#include "Python.h"
Therefore, it is my opinion that we ought to define the macro always.
Actions