Skip to content

SIGSEGV when Python tests use the ctypes module #442

Description

@P403n1x87

Description:

When using the Python installed with this action I run into SIGSEGV on Linux if my tests use ctypes. This is is the offending workflow

name: Testson: pushconcurrency: group: ${{ github.head_ref || github.run_id }}cancel-in-progress: truejobs:
tests-linux:
runs-on: ubuntu-lateststrategy:
fail-fast: falsematrix:
python-version: ["2.7", "3.5", "3.6", "3.7", "3.8", "3.9", "3.10", "3.11"]env:
AUSTIN_TESTS_PYTHON_VERSIONS: ${{ matrix.python-version }}name: Tests on Linux with Python ${{ matrix.python-version }}steps:
- uses: actions/checkout@v2
- name: Install build dependenciesrun: | sudo apt-get -y install libunwind-dev binutils-dev libiberty-dev - name: Install test dependenciesrun: | sudo apt-get -y install \ valgrind \ gdb - name: Install Pythonuses: actions/setup-python@v4with:
python-version: ${{ matrix.python-version }}
- name: Install Python 3.10uses: actions/setup-python@v4with:
python-version: "3.10"
- name: Compile Austinrun: | autoreconf --install ./configure --enable-debug-symbols true make - name: Run testsrun: | ulimit -c unlimited python3.10 -m venv .venv source .venv/bin/activate pip install --upgrade pip pip install -r test/requirements.txt sudo -E .venv/bin/pytest --pastebin=failed --no-flaky-report -sr a -n auto .venv/bin/pytest --pastebin=failed --no-flaky-report -sr a -n auto deactivate

If Python is installed from, e.g., deadsnakes/ppa, then the tests pass without SIGSEGV. I can also get the tests to pass locally.

This is an example of a happy workflow that pulls Python from the PPA: https://github.com/P403n1x87/austin/runs/7046194671?check_suite_focus=true

This is a run with the action: https://github.com/P403n1x87/austin/runs/7045119660?check_suite_focus=true

This was discovered with this PR: https://github.com/P403n1x87/austin/pull/120/files

Action version:

v4

Platform:

  • Ubuntu
  • macOS
  • Windows

Runner type:

  • Hosted
  • Self-hosted

Tools version:

Repro steps:

See description above

Expected behavior:

No SIGSEGV, like with the Pythons from the PPA.

Actual behavior:

SIGSEGV if ctypes is used

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions