Package: src:celery
Version: 5.5.3-2
Severity: serious
Tags: ftbfs forky sid

Dear maintainer:

During a rebuild of all packages in unstable, this package failed to build.

Below you will find the last part of the build log (probably the most
relevant part, but not necessarily). If required, the full build log
is available here:

https://people.debian.org/~sanvila/build-logs/202510/

About the archive rebuild: The build was made on virtual machines from AWS,
using sbuild and a reduced chroot with only build-essential packages.

If you cannot reproduce the bug please contact me privately, as I
am willing to provide ssh access to a virtual machine where the bug is
fully reproducible.

If this is really a bug in one of the build-depends, please use
reassign and add an affects on src:celery, so that this is still
visible in the BTS web page for this package.

Thanks.

--------------------------------------------------------------------------------
[...]
 debian/rules clean
dh clean --with python3,sphinxdoc --buildsystem=pybuild
   dh_auto_clean -O--buildsystem=pybuild
   dh_autoreconf_clean -O--buildsystem=pybuild
   dh_clean -O--buildsystem=pybuild
 debian/rules binary
dh binary --with python3,sphinxdoc --buildsystem=pybuild
   dh_update_autotools_config -O--buildsystem=pybuild
   dh_autoreconf -O--buildsystem=pybuild
   dh_auto_configure -O--buildsystem=pybuild
   dh_auto_build -O--buildsystem=pybuild
I: pybuild plugin_pyproject:129: Building wheel for python3.13 with "build" 
module
I: pybuild base:311: python3.13 -m build --skip-dependency-check --no-isolation 
--wheel --outdir /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery  
* Building wheel...
/usr/lib/python3/dist-packages/setuptools/_distutils/dist.py:289: UserWarning: 
Unknown distribution option: 'tests_require'

[... snipped ...]

                **mb._prepare_client_options()
            )

t/unit/backends/test_mongodb.py:302: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.13/unittest/mock.py:991: in assert_called_once_with
    return self.assert_called_with(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <MagicMock name='MongoClient' id='140029953377680'>, args = ()
kwargs = {'authmechanism': 'SCRAM-SHA-256', 'host': ['localhost:27017'], 
'maxPoolSize': 10, 'password': 'celerypassword', ...}
expected = call(host=['localhost:27017'], username='celeryuser', 
password='celerypassword', authmechanism='SCRAM-SHA-256', maxPoolSize=10)
actual = call(maxPoolSize=10, authMechanism='SCRAM-SHA-256', 
host=['localhost:27017'], username='celeryuser', password='celerypassword')
_error_message = <function 
NonCallableMock.assert_called_with.<locals>._error_message at 0x7f5b4377e0c0>
cause = None

    def assert_called_with(self, /, *args, **kwargs):
        """assert that the last call was made with the specified arguments.
    
        Raises an AssertionError if the args and keyword args passed in are
        different to the last call to the mock."""
        if self.call_args is None:
            expected = self._format_mock_call_signature(args, kwargs)
            actual = 'not called.'
            error_message = ('expected call not found.\nExpected: %s\n  Actual: 
%s'
                    % (expected, actual))
            raise AssertionError(error_message)
    
        def _error_message():
            msg = self._format_mock_failure_message(args, kwargs)
            return msg
        expected = self._call_matcher(_Call((args, kwargs), two=True))
        actual = self._call_matcher(self.call_args)
        if actual != expected:
            cause = expected if isinstance(expected, Exception) else None
>           raise AssertionError(_error_message()) from cause
E           AssertionError: expected call not found.
E           Expected: MongoClient(host=['localhost:27017'], 
username='celeryuser', password='celerypassword', 
authmechanism='SCRAM-SHA-256', maxPoolSize=10)
E             Actual: MongoClient(maxPoolSize=10, 
authMechanism='SCRAM-SHA-256', host=['localhost:27017'], username='celeryuser', 
password='celerypassword')

/usr/lib/python3.13/unittest/mock.py:979: AssertionError
_____ test_MongoBackend.test_get_connection_with_authmechanism_no_username _____

self = <t.unit.backends.test_mongodb.test_MongoBackend object at 0x7f5b4c58ac90>

    def test_get_connection_with_authmechanism_no_username(self):
        with patch('pymongo.MongoClient') as mock_Connection:
            self.app.conf.mongodb_backend_settings = None
            uri = ('mongodb://'
                   'localhost:27017/'
                   'celerydatabase?authMechanism=SCRAM-SHA-256')
            mb = MongoBackend(app=self.app, url=uri)
            mock_Connection.side_effect = ConfigurationError(
                'SCRAM-SHA-256 requires a username.')
            with pytest.raises(ConfigurationError):
                mb._get_connection()
>           mock_Connection.assert_called_once_with(
                host=['localhost:27017'],
                authmechanism='SCRAM-SHA-256',
                **mb._prepare_client_options()
            )

t/unit/backends/test_mongodb.py:322: 
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 
/usr/lib/python3.13/unittest/mock.py:991: in assert_called_once_with
    return self.assert_called_with(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 

self = <MagicMock name='MongoClient' id='140029953389440'>, args = ()
kwargs = {'authmechanism': 'SCRAM-SHA-256', 'host': ['localhost:27017'], 
'maxPoolSize': 10}
expected = call(host=['localhost:27017'], authmechanism='SCRAM-SHA-256', 
maxPoolSize=10)
actual = call(maxPoolSize=10, authMechanism='SCRAM-SHA-256', 
host=['localhost:27017'])
_error_message = <function 
NonCallableMock.assert_called_with.<locals>._error_message at 0x7f5b43eedee0>
cause = None

    def assert_called_with(self, /, *args, **kwargs):
        """assert that the last call was made with the specified arguments.
    
        Raises an AssertionError if the args and keyword args passed in are
        different to the last call to the mock."""
        if self.call_args is None:
            expected = self._format_mock_call_signature(args, kwargs)
            actual = 'not called.'
            error_message = ('expected call not found.\nExpected: %s\n  Actual: 
%s'
                    % (expected, actual))
            raise AssertionError(error_message)
    
        def _error_message():
            msg = self._format_mock_failure_message(args, kwargs)
            return msg
        expected = self._call_matcher(_Call((args, kwargs), two=True))
        actual = self._call_matcher(self.call_args)
        if actual != expected:
            cause = expected if isinstance(expected, Exception) else None
>           raise AssertionError(_error_message()) from cause
E           AssertionError: expected call not found.
E           Expected: MongoClient(host=['localhost:27017'], 
authmechanism='SCRAM-SHA-256', maxPoolSize=10)
E             Actual: MongoClient(maxPoolSize=10, 
authMechanism='SCRAM-SHA-256', host=['localhost:27017'])

/usr/lib/python3.13/unittest/mock.py:979: AssertionError
=============================== warnings summary ===============================
t/unit/app/test_beat.py::test_Scheduler::test_ticks_microseconds
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/t/unit/app/test_beat.py:417:
 DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and 
scheduled for removal in a future version. Use timezone-aware objects to 
represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, 
datetime.UTC).
    now = datetime.utcfromtimestamp(now_ts)

t/unit/backends/test_s3.py: 29 warnings
  /usr/lib/python3/dist-packages/botocore/auth.py:425: DeprecationWarning: 
datetime.datetime.utcnow() is deprecated and scheduled for removal in a future 
version. Use timezone-aware objects to represent datetimes in UTC: 
datetime.datetime.now(datetime.UTC).
    datetime_now = datetime.datetime.utcnow()

t/unit/events/test_dumper.py::test_on_event_task_received
t/unit/events/test_dumper.py::test_on_event_non_task
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/celery/events/dumper.py:51:
 DeprecationWarning: datetime.datetime.utcfromtimestamp() is deprecated and 
scheduled for removal in a future version. Use timezone-aware objects to 
represent datetimes in UTC: datetime.datetime.fromtimestamp(timestamp, 
datetime.UTC).
    timestamp = datetime.utcfromtimestamp(ev.pop('timestamp'))

t/unit/tasks/test_canvas.py::test_chord::test_links_to_body
t/unit/tasks/test_canvas.py::test_chord::test_flag_allow_error_cb_on_chord_header
t/unit/tasks/test_stamping.py::test_stamping_mechanism::test_link_error_does_not_duplicate_stamps
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/celery/canvas.py:2301: 
CPendingDeprecationWarning: task_allow_error_cb_on_chord_header=False is 
pending deprecation in a future release of Celery.
  Please test the new behavior by setting task_allow_error_cb_on_chord_header 
to True and report any concerns you might have in our issue tracker before we 
make a final decision regarding how errbacks should behave when used with 
chords.
    warnings.warn(

t/unit/tasks/test_stamping.py::test_stamping_mechanism::test_callback_stamping
t/unit/tasks/test_stamping.py::test_stamping_mechanism::test_callback_stamping_link_after_stamp
t/unit/tasks/test_stamping.py::test_stamping_mechanism::test_callback_stamping_link_multiple_visitors
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/celery/canvas.py:400: 
AlwaysEagerIgnored: task_always_eager has no effect on send_task
    return _apply(args, kwargs, **options)

t/unit/tasks/test_trace.py::test_trace::test_backend_error_should_report_failure
t/unit/worker/test_request.py::test_Request::test_execute_backend_error_acks_late
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/celery/app/trace.py:662: 
RuntimeWarning: Exception raised outside body: Exception():
  Traceback (most recent call last):
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/celery/app/trace.py", 
line 520, in trace_task
      task.backend.mark_as_done(
      ~~~~~~~~~~~~~~~~~~~~~~~~~^
          uuid, retval, task_request, publish_result,
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      )
      ^
    File "/usr/lib/python3.13/unittest/mock.py", line 1169, in __call__
      return self._mock_call(*args, **kwargs)
             ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3.13/unittest/mock.py", line 1173, in _mock_call
      return self._execute_mock_call(*args, **kwargs)
             ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3.13/unittest/mock.py", line 1228, in 
_execute_mock_call
      raise effect
  Exception
  
    warn(RuntimeWarning(

t/unit/tasks/test_trace.py::test_trace::test_backend_error_should_report_failure
t/unit/worker/test_request.py::test_Request::test_execute_backend_error_acks_late
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/celery/app/trace.py:662: 
RuntimeWarning: Exception raised outside body: Exception():
  Traceback (most recent call last):
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/celery/app/trace.py", 
line 520, in trace_task
      task.backend.mark_as_done(
      ~~~~~~~~~~~~~~~~~~~~~~~~~^
          uuid, retval, task_request, publish_result,
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      )
      ^
    File "/usr/lib/python3.13/unittest/mock.py", line 1169, in __call__
      return self._mock_call(*args, **kwargs)
             ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3.13/unittest/mock.py", line 1173, in _mock_call
      return self._execute_mock_call(*args, **kwargs)
             ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3.13/unittest/mock.py", line 1228, in 
_execute_mock_call
      raise effect
  Exception
  
  During handling of the above exception, another exception occurred:
  
  Traceback (most recent call last):
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/celery/app/trace.py", 
line 586, in trace_task
      return task.__trace__(uuid, args, kwargs, request)
             ~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/celery/app/trace.py", 
line 574, in trace_task
      I, _, _, _ = on_error(task_request, exc)
                   ~~~~~~~~^^^^^^^^^^^^^^^^^^^
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/celery/app/trace.py", 
line 381, in on_error
      R = I.handle_error_state(
          task, request, eager=eager, call_errbacks=call_errbacks,
      )
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/celery/app/trace.py", 
line 175, in handle_error_state
      return {
             ~
          RETRY: self.handle_retry,
          ~~~~~~~~~~~~~~~~~~~~~~~~~
          FAILURE: self.handle_failure,
          ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
      }[self.state](task, req,
      ~~~~~~~~~~~~~^^^^^^^^^^^
                    store_errors=store_errors,
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
                    call_errbacks=call_errbacks)
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/celery/app/trace.py", 
line 227, in handle_failure
      task.backend.mark_as_failure(
      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
          req.id, exc, einfo.traceback,
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          request=req, store_result=store_errors,
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
          call_errbacks=call_errbacks,
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      )
      ^
    File "/usr/lib/python3.13/unittest/mock.py", line 1169, in __call__
      return self._mock_call(*args, **kwargs)
             ~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3.13/unittest/mock.py", line 1173, in _mock_call
      return self._execute_mock_call(*args, **kwargs)
             ~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^
    File "/usr/lib/python3.13/unittest/mock.py", line 1228, in 
_execute_mock_call
      raise effect
  Exception
  
    warn(RuntimeWarning(

t/unit/utils/test_iso8601.py: 14 warnings
t/unit/utils/test_time.py: 4 warnings
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/celery/utils/iso8601.py:55:
 CPendingDeprecationWarning: 
      parse_iso8601 is scheduled for deprecation in     version v5.3 and 
removal in version vv6.     datetime.datetime.fromisoformat or 
dateutil.parser.isoparse
  
    warn("parse_iso8601", "v5.3", "v6", "datetime.datetime.fromisoformat or 
dateutil.parser.isoparse")

t/unit/worker/test_consumer.py: 16 warnings
t/unit/worker/test_worker.py: 1 warning
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/celery/worker/consumer/consumer.py:392:
 CPendingDeprecationWarning: 
  In Celery 5.1 we introduced an optional breaking change which
  on connection loss cancels all currently executed tasks with late 
acknowledgement enabled.
  These tasks cannot be acknowledged as the connection is gone, and the tasks 
are automatically redelivered
  back to the queue. You can enable this behavior using the 
worker_cancel_long_running_tasks_on_connection_loss
  setting. In Celery 5.1 it is set to False by default. The setting will be set 
to True by default in Celery 6.0.
  
    warnings.warn(CANCEL_TASKS_BY_DEFAULT, CPendingDeprecationWarning)

t/unit/worker/test_consumer.py::test_Consumer::test_ensure_connected[True-None-False]
t/unit/worker/test_consumer.py::test_Consumer::test_ensure_connected[False-None-False]
t/unit/worker/test_worker.py::test_Consumer::test_receive_message_eta
t/unit/worker/test_worker.py::test_Consumer::test_receive_message_eta
  
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/celery/worker/consumer/consumer.py:511:
 CPendingDeprecationWarning: The broker_connection_retry configuration setting 
will no longer determine
  whether broker connection retries are made during startup in Celery 6.0 and 
above.
  If you wish to refrain from retrying connections on startup,
  you should set broker_connection_retry_on_startup to False instead.
    warnings.warn(

t/unit/worker/test_request.py::test_Request::test_from_message_invalid_kwargs
  /<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/celery/app/trace.py:662: 
RuntimeWarning: Exception raised outside body: InvalidTaskError('Task keyword 
arguments is not a mapping'):
  Traceback (most recent call last):
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/celery/app/trace.py", 
line 403, in trace_task
      kwargs.items
  AttributeError: 'str' object has no attribute 'items'
  
  During handling of the above exception, another exception occurred:
  
  Traceback (most recent call last):
    File 
"/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build/celery/app/trace.py", 
line 405, in trace_task
      raise InvalidTaskError(
          'Task keyword arguments is not a mapping')
  celery.exceptions.InvalidTaskError: Task keyword arguments is not a mapping
  
    warn(RuntimeWarning(

-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
=========================== short test summary info ============================
FAILED 
t/unit/backends/test_mongodb.py::test_MongoBackend::test_init_with_settings
FAILED 
t/unit/backends/test_mongodb.py::test_MongoBackend::test_init_mongodb_dnspython2_pymongo4_seedlist
FAILED 
t/unit/backends/test_mongodb.py::test_MongoBackend::test_get_connection_with_authmechanism
FAILED 
t/unit/backends/test_mongodb.py::test_MongoBackend::test_get_connection_with_authmechanism_no_username
= 4 failed, 3158 passed, 25 skipped, 8 deselected, 3 xfailed, 82 warnings, 
28958 subtests passed in 96.20s (0:01:36) =
E: pybuild pybuild:389: test: plugin pyproject failed with: exit code=1: cd 
/<<PKGBUILDDIR>>/.pybuild/cpython3_3.13_celery/build; python3.13 -m pytest 
--ignore=t/unit/backends/test_base.py --ignore=t/unit/backends/test_gcs.py 
--ignore=t/unit/backends/test_rpc.py --ignore=t/unit/contrib/test_pytest.py 
--ignore=t/unit/concurrency/test_eventlet.py 
--ignore=t/unit/concurrency/test_prefork.py -k "not 
test_check_privileges[accept_content0] and not 
test_check_privileges[accept_content1] and not 
test_check_privileges[accept_content2] and not 
test_regression_worker_startup_info and not test_with_guid and not 
test_only_gid and not test_init_mongodb_dnspython2_pymongo3_seedlist" t/unit
dh_auto_test: error: pybuild --test --test-pytest -i python{version} -p 3.13 
returned exit code 13
make: *** [debian/rules:10: binary] Error 25
dpkg-buildpackage: error: debian/rules binary subprocess returned exit status 2
--------------------------------------------------------------------------------

Reply via email to