Skip to content

Python 3.10 will not load in gdb 8 or 9 series on linux x86_64 #49

@stuartarchibald

Description

@stuartarchibald

On a linux system running on x86_64, Anaconda builds of Python 3.10 cause at least gdb version 8 and 9 to hang on attempted loading.

Reproducer (using system RHEL based SCL gdb from devtoolset-9):

$ conda create -q -y -n _tmp_py310 python=3.10
$ conda activate _tmp_py310
$ PYTHON_BINARY=`which python`
$ /opt/rh/devtoolset-9/root/bin/gdb $PYTHON_BINARY # hangs

example output:

$ conda create -q -y -n _tmp_py310 python=3.10
Collecting package metadata (repodata.json): ...working... done
Solving environment: ...working... done

## Package Plan ##

  environment location: <env_path>/_tmp_py310

  added / updated specs:
    - python=3.10


The following packages will be downloaded:

    package                    |            build
    ---------------------------|-----------------
    ncurses-6.3                |       h7f8727e_2         1.0 MB
    python-3.10.0              |       h151d27f_3        23.5 MB
    ------------------------------------------------------------
                                           Total:        24.5 MB

The following NEW packages will be INSTALLED:

  _libgcc_mutex      pkgs/main/linux-64::_libgcc_mutex-0.1-main
  _openmp_mutex      pkgs/main/linux-64::_openmp_mutex-4.5-1_gnu
  bzip2              pkgs/main/linux-64::bzip2-1.0.8-h7b6447c_0
  ca-certificates    pkgs/main/linux-64::ca-certificates-2021.10.26-h06a4308_2
  certifi            pkgs/main/linux-64::certifi-2021.5.30-py310h06a4308_0
  ld_impl_linux-64   pkgs/main/linux-64::ld_impl_linux-64-2.35.1-h7274673_9
  libffi             pkgs/main/linux-64::libffi-3.3-he6710b0_2
  libgcc-ng          pkgs/main/linux-64::libgcc-ng-9.3.0-h5101ec6_17
  libgomp            pkgs/main/linux-64::libgomp-9.3.0-h5101ec6_17
  libstdcxx-ng       pkgs/main/linux-64::libstdcxx-ng-9.3.0-hd4cf53a_17
  libuuid            pkgs/main/linux-64::libuuid-1.0.3-h7f8727e_2
  ncurses            pkgs/main/linux-64::ncurses-6.3-h7f8727e_2
  openssl            pkgs/main/linux-64::openssl-1.1.1l-h7f8727e_0
  pip                pkgs/main/linux-64::pip-21.2.4-py310h06a4308_0
  python             pkgs/main/linux-64::python-3.10.0-h151d27f_3
  readline           pkgs/main/linux-64::readline-8.1-h27cfd23_0
  setuptools         pkgs/main/linux-64::setuptools-58.0.4-py310h06a4308_0
  sqlite             pkgs/main/linux-64::sqlite-3.36.0-hc218d9a_0
  tk                 pkgs/main/linux-64::tk-8.6.11-h1ccaba5_0
  tzdata             pkgs/main/noarch::tzdata-2021e-hda174b7_0
  wheel              pkgs/main/noarch::wheel-0.37.0-pyhd3eb1b0_1
  xz                 pkgs/main/linux-64::xz-5.2.5-h7b6447c_0
  zlib               pkgs/main/linux-64::zlib-1.2.11-h7b6447c_3


Preparing transaction: ...working... done
Verifying transaction: ...working... done
Executing transaction: ...working... done

$ conda activate _tmp_py310

$ PYTHON_BINARY=`which python`

$ echo $PYTHON_BINARY
<env_path>/_tmp_py310/bin/python

$ /opt/rh/devtoolset-9/root/bin/gdb $PYTHON_BINARY
GNU gdb (GDB) Red Hat Enterprise Linux 8.3-3
<snip>

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from <env_path>/_tmp_py310/bin/python...
^Z

Further information:

  • RHEL based SCL devtoolset-7 (gdb 8.0.1), devtoolset-9 (gdb 8.3-3) and devtoolset-10 (gdb 9.2-10) all hang.
  • RHEL default gdb (gdb 7.6.1) seems to work ok.
  • RHEL based SCL devtoolset-10 (gdb 9.2-10) works with Python 3.10 from the python.org docker containers.
  • Using the gdb packages from conda-forge and trying to load the Anaconda Python 3.10 binary gives the following:
    • gdb=7: hangs
    • gdb=8: hangs
    • gdb=9: hangs
    • gdb=10: works
    • gdb=11: works

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions