Skip to content

[Python] test-ubuntu-22.04-python-313-freethreading generates cython_std::move(config) on a const reference and fails #49565

@raulcd

Description

@raulcd

Describe the bug, including details regarding any error messages, version, and platform.

The test-ubuntu-22.04-python-313-freethreading job fails with:

   [104/119] Building CXX object CMakeFiles/_parquet_encryption.dir/_parquet_encryption.cpp.o
  FAILED: CMakeFiles/_parquet_encryption.dir/_parquet_encryption.cpp.o
  /usr/bin/ccache /usr/lib/ccache/x86_64-linux-gnu-g++ -DARROW_HAVE_RUNTIME_AVX2 -DARROW_HAVE_RUNTIME_AVX512 -DARROW_HAVE_RUNTIME_BMI2 -DARROW_HAVE_RUNTIME_SSE4_2 -DARROW_HAVE_SSE4_2 -D_parquet_encryption_EXPORTS -I/usr/include/python3.13t -I/build/python/pyarrow/src -I/tmp/tmp2y9fbxsg/build/pyarrow/src -I/arrow-dev/lib/python3.13t/site-packages/numpy/_core/include -Wno-noexcept-type  -Wall -fno-semantic-interposition -msse4.2  -fdiagnostics-color=always  -fno-omit-frame-pointer -Wno-unused-variable -Wno-maybe-uninitialized -g -O0  -std=c++20 -fPIC -Wno-unused-function -MD -MT CMakeFiles/_parquet_encryption.dir/_parquet_encryption.cpp.o -MF CMakeFiles/_parquet_encryption.dir/_parquet_encryption.cpp.o.d -o CMakeFiles/_parquet_encryption.dir/_parquet_encryption.cpp.o -c /tmp/tmp2y9fbxsg/build/_parquet_encryption.cpp
  /tmp/tmp2y9fbxsg/build/_parquet_encryption.cpp: In function ‘PyObject* __pyx_f_7pyarrow_19_parquet_encryption_19KmsConnectionConfig_wrap(const parquet::encryption::KmsConnectionConfig&)’:
  /tmp/tmp2y9fbxsg/build/_parquet_encryption.cpp:16576:137: error: binding reference of type ‘parquet::encryption::KmsConnectionConfig&’ to ‘const parquet::encryption::KmsConnectionConfig’ discards qualifiers
  16576 |     __pyx_t_4 = std::make_shared< parquet::encryption::KmsConnectionConfig>(cython_std::move< parquet::encryption::KmsConnectionConfig>(__pyx_v_config));
        |                                                                                                                                         ^~~~~~~~~~~~~~
  /tmp/tmp2y9fbxsg/build/_parquet_encryption.cpp:1171:77: note:   initializing argument 1 of ‘typename std::remove_reference<_Tp>::type&& cython_std::move(T&) [with T = parquet::encryption::KmsConnectionConfig; typename std::remove_reference<_Tp>::type = parquet::encryption::KmsConnectionConfig]’
   1171 |     template <typename T> typename std::remove_reference<T>::type&& move(T& t) noexcept { return std::move(t); }
        |   

Cython is generating cython_std::move(config) on a const reference.

Component(s)

Python

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions