Package: src:python-can
Version: 4.1.0-1
Severity: serious
Tags: sid trixie
seen in the ppc64el autopkg tests triggered by setuptools,
https://ci.debian.net/data/autopkgtest/testing/ppc64el/p/python-can/34394883/log.gz
[...]
=================================== FAILURES ===================================
_________ SimpleCyclicSendTaskTest.test_thread_based_cyclic_send_task __________
self = <test.simplecyclic_test.SimpleCyclicSendTaskTest
testMethod=test_thread_based_cyclic_send_task>
@unittest.skipIf(IS_CI, "fails randomly when run on CI server")
def test_thread_based_cyclic_send_task(self):
bus = can.ThreadSafeBus(bustype="virtual")
msg = can.Message(
is_extended_id=False, arbitration_id=0x123, data=[0, 1, 2, 3, 4, 5,
6, 7]
)
# good case, bus is up
on_error_mock = MagicMock(return_value=False)
task = can.broadcastmanager.ThreadBasedCyclicSendTask(
bus, bus._lock_send_periodic, msg, 0.1, 3, on_error_mock
)
task.start()
sleep(1)
on_error_mock.assert_not_called()
task.stop()
bus.shutdown()
# bus has been shutted down
on_error_mock = MagicMock(return_value=False)
task = can.broadcastmanager.ThreadBasedCyclicSendTask(
bus, bus._lock_send_periodic, msg, 0.1, 3, on_error_mock
)
task.start()
sleep(1)
> self.assertEqual(on_error_mock.call_count, 1)
E AssertionError: 2 != 1
simplecyclic_test.py:179: AssertionError
------------------------------ Captured log call -------------------------------
ERROR can.bcm:broadcastmanager.py:283 Cannot operate on a closed bus
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/can/broadcastmanager.py", line 281, in
_run
self.bus.send(self.messages[msg_index])
File "/usr/lib/python3/dist-packages/can/thread_safe_bus.py", line 79, in send
return self.__wrapped__.send(msg, timeout=timeout, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/can/interfaces/virtual.py", line 106, in
send
self._check_if_open()
File "/usr/lib/python3/dist-packages/can/interfaces/virtual.py", line 92, in
_check_if_open
raise CanOperationError("Cannot operate on a closed bus")
can.exceptions.CanOperationError: Cannot operate on a closed bus
ERROR can.bcm:broadcastmanager.py:283 Cannot operate on a closed bus
Traceback (most recent call last):
File "/usr/lib/python3/dist-packages/can/broadcastmanager.py", line 281, in
_run
self.bus.send(self.messages[msg_index])
File "/usr/lib/python3/dist-packages/can/thread_safe_bus.py", line 79, in send
return self.__wrapped__.send(msg, timeout=timeout, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3/dist-packages/can/interfaces/virtual.py", line 106, in
send
self._check_if_open()
File "/usr/lib/python3/dist-packages/can/interfaces/virtual.py", line 92, in
_check_if_open
raise CanOperationError("Cannot operate on a closed bus")
can.exceptions.CanOperationError: Cannot operate on a closed bus
[...]