Описание проблемы: Начиная с Ruby 3.2 был изменён механизм работы с объектами типа T_DATA: Ruby начал выдавать предупреждение, если C-extension не переопределяет allocator для класса, использующего T_DATA. Версия пакета: gem-memcached-2.0.0.21-alt0.1 Предусловия: Установлен gem-memcached и запущен memcached.service на 127.0.0.1:11211 Шаги воспроизведения: 1) ``` $ cat > test.rb <<EOF require 'memcached' cache = Memcached::Client.new("localhost:11211") value = 'hello' cache.set 'test', value res = cache.get 'test' p res EOF ``` 2) `$ ruby test.rb` Фактический результат: ``` /usr/lib/ruby/gemie/gems/memcached-2.0.0.21/lib/memcached/client.rb:141: warning: undefining the allocator of T_DATA class Memcached::Connection "hello" ``` Ожидаемый результат: Отсутствие каких-либо предупреждений.
warning не являяется ошибкой. болѣе того, не отнсится къ этому пакету
(Ответ для Малъ Скрылевъ на комментарий #1) > warning не являяется ошибкой. болѣе того, не отнсится къ этому пакету Да, warning не является фатальной ошибкой, но к `gem-memcached` он относится напрямую. Ruby выдаёт его, когда C-extension создаёт `T_DATA`, не переопределив или не удалив allocator класса. Эта проверка специально предназначена для выявления таких ошибок в C extensions: [Ruby Bug #18007](https://bugs.ruby-lang.org/issues/18007?utm_source=chatgpt.com) Сам `memcached` использует C-wrapper, сгенерированный SWIG: upstream прямо указывает, что библиотека «wraps the pure-C libmemcached client via SWIG». Более того, в самом SWIG исправлялась именно эта проблема: `[Ruby] #2527 Fix "undefining the allocator of T_DATA" warning seen with Ruby 3.2.` https://github.com/swig/swig/pull/2527
это рекомендація только для разработчиковъ upstream-а,чтобы они дѣлали свой кодъ правильно, такъ что ошибкой не является. Я открылъ имъ запросъ: https://github.com/arthurnn/memcached/issues/221 У насъ это отдѣльно отъ upstream исправляться не планируется.