Skip to content

Test test.python.compiler.test_transpiler.TestTranspile.test_delay_converts_expr_to_dt fails in Qiskit 2.0 #14169

@iyanmv

Description

@iyanmv

Environment

  • Qiskit version: 2.0
  • Python version: 3.13.2
  • Operating system: Arch Linux

What is happening?

I maintain the qiskit packages in AUR for Arch Linux users. After updating to the recent new release 2.0, the test test.python.compiler.test_transpiler.TestTranspile.test_delay_converts_expr_to_dt failed with the following error message:

==============================
Failed 1 tests - output below:
==============================

test.python.compiler.test_transpiler.TestTranspile.test_delay_converts_expr_to_dt
---------------------------------------------------------------------------------

Captured traceback:
~~~~~~~~~~~~~~~~~~~
    concurrent.futures.process._RemoteTraceback: 
"""
Traceback (most recent call last):
  File "/usr/lib/python3.13/multiprocessing/queues.py", line 262, in _feed
    obj = _ForkingPickler.dumps(obj)
  File "/usr/lib/python3.13/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^
TypeError: cannot pickle 'qiskit._accelerate.circuit.Duration_us' object
"""

    
The above exception was the direct cause of the following exception:


    Traceback (most recent call last):

      File "/build/python-qiskit/src/qiskit-2.0.0/test/python/compiler/test_transpiler.py", line 1407, in test_delay_converts_expr_to_dt
    out = transpile([qc, qc], backend, seed_transpiler=42)

      File "/build/python-qiskit/src/test_dir/usr/lib/python3.13/site-packages/qiskit/compiler/transpiler.py", line 291, in transpile
    out_circuits = pm.run(circuits, callback=callback, num_processes=num_processes)

      File "/build/python-qiskit/src/test_dir/usr/lib/python3.13/site-packages/qiskit/transpiler/passmanager.py", line 451, in run
    return super().run(circuits, output_name, callback, num_processes=num_processes)
           ~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

      File "/build/python-qiskit/src/test_dir/usr/lib/python3.13/site-packages/qiskit/transpiler/passmanager.py", line 474, in wrapper
    return meth(*meth_args, **meth_kwargs)

      File "/build/python-qiskit/src/test_dir/usr/lib/python3.13/site-packages/qiskit/transpiler/passmanager.py", line 233, in run
    return super().run(
           ~~~~~~~~~~~^
        in_programs=circuits,
        ^^^^^^^^^^^^^^^^^^^^^
    ...<3 lines>...
        property_set=property_set,
        ^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^

      File "/build/python-qiskit/src/test_dir/usr/lib/python3.13/site-packages/qiskit/passmanager/passmanager.py", line 258, in run
    return parallel_map(
        _run_workflow_in_new_process,
    ...<5 lines>...
        num_processes=num_processes,
    )

      File "/build/python-qiskit/src/test_dir/usr/lib/python3.13/site-packages/qiskit/utils/parallel.py", line 316, in parallel_map
    return list(executor.map(_task_wrapper, work_items))

      File "/usr/lib/python3.13/concurrent/futures/process.py", line 617, in _chain_from_iterable_of_lists
    for element in iterable:
                   ^^^^^^^^

      File "/usr/lib/python3.13/concurrent/futures/_base.py", line 619, in result_iterator
    yield _result_or_cancel(fs.pop())
          ~~~~~~~~~~~~~~~~~^^^^^^^^^^

      File "/usr/lib/python3.13/concurrent/futures/_base.py", line 317, in _result_or_cancel
    return fut.result(timeout)
           ~~~~~~~~~~^^^^^^^^^

      File "/usr/lib/python3.13/concurrent/futures/_base.py", line 456, in result
    return self.__get_result()
           ~~~~~~~~~~~~~~~~~^^

      File "/usr/lib/python3.13/concurrent/futures/_base.py", line 401, in __get_result
    raise self._exception

      File "/usr/lib/python3.13/multiprocessing/queues.py", line 262, in _feed
    obj = _ForkingPickler.dumps(obj)

      File "/usr/lib/python3.13/multiprocessing/reduction.py", line 51, in dumps
    cls(buf, protocol).dump(obj)
    ~~~~~~~~~~~~~~~~~~~~~~~^^^^^

    TypeError: cannot pickle 'qiskit._accelerate.circuit.Duration_us' object

I'm running the python tests as close as possible to the GitHub Actions pipeline. In particular, I run:

stestr run -d test/python -E "test_equivalence_draw"

These are run in a clean chroot env with just qiskit and its dependencies installed. All tests were passing with Qiskit 1.4.2.

How can we reproduce the issue?

If you want to replicate the issue in an identical env, you can try to build the package in a docker/podman container using Arch Linux image.

What should happen?

All tests should pass

Any suggestions?

No response

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions