Bug #53441
closedvstart.sh loops forever reporting SystemError: PY_SSIZE_T_CLEAN
0%
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.
Updated by Pete Zaitcev over 2 years ago
I'm unable to edit the Redmine ticket's header with the pull request ID,
so here is the URL for the PR in Github:
Updated by Neha Ojha about 2 years ago
- Status changed from New to Resolved
- Pull request ID set to 44112