Skip to content

[tests-only][full-ci] Run oc10 tests in github#12424

Open
PrajwolAmatya wants to merge 1 commit into
6from
github/setup-oc10
Open

[tests-only][full-ci] Run oc10 tests in github#12424
PrajwolAmatya wants to merge 1 commit into
6from
github/setup-oc10

Conversation

@PrajwolAmatya
Copy link
Copy Markdown
Contributor

@PrajwolAmatya PrajwolAmatya commented Dec 12, 2025

Description

Run GUI tests with oc10.

Related issue:

@PrajwolAmatya PrajwolAmatya force-pushed the github/setup-oc10 branch 8 times, most recently from 554fbc1 to 0eb0cea Compare December 17, 2025 05:57
@PrajwolAmatya PrajwolAmatya force-pushed the github/setup-oc10 branch 8 times, most recently from dd30680 to 9071d7f Compare January 26, 2026 07:09
@PrajwolAmatya PrajwolAmatya force-pushed the github/setup-oc10 branch 2 times, most recently from 60a5cc1 to d7ead95 Compare February 9, 2026 04:26
@PrajwolAmatya PrajwolAmatya force-pushed the github/setup-oc10 branch 8 times, most recently from d529320 to 342a167 Compare May 8, 2026 06:20
@PrajwolAmatya PrajwolAmatya force-pushed the github/setup-oc10 branch 8 times, most recently from bb4d149 to f08b8dc Compare May 13, 2026 04:01
@PrajwolAmatya
Copy link
Copy Markdown
Contributor Author

PrajwolAmatya commented May 13, 2026

CI is exiting with error:

Error: Process completed with exit code 137.

https://github.com/owncloud/client/actions/runs/25777451084/job/75712933328?pr=12424

@DeepDiver1975
Copy link
Copy Markdown
Member

Root Cause Analysis: Exit Code 137 in "Install Python modules"

What exit code 137 means

Exit code 137 = 128 + SIGKILL (9). This is the Linux OOM killer sending SIGKILL to a process because the system ran out of memory — not a normal process exit; the kernel forcibly killed it.

Exact failure sequence

Collecting PyGObject==3.42.*
  Downloading PyGObject-3.42.2.tar.gz (719 kB)     ← source tarball, no binary wheel
  Installing build dependencies: started             ← spawns sub-process for meson, pycairo, etc.
##[error]Process completed with exit code 137.      ← OOM kill ~2 seconds later

Root cause

PyGObject 3.42.x has no prebuilt binary wheel on PyPI for Linux/Fedora. pip must compile it from source. With build isolation (the default), pip:

  1. Creates an isolated virtual environment
  2. Spawns a sub-pip to install build dependencies (meson, pycairo, setuptools, …) into that env
  3. Then runs the C compilation

Step 2 triggers a memory spike. The GitHub Actions ubuntu-latest runner has ~7 GB RAM, and at the point "Install Python modules" runs, all of the following are competing for that memory:

Container Why it's running
squish Running squish installation + executing pip inside it
owncloud (PHP 7.4 Apache) Started and serving
mysql (service container) Running
pip's isolated build env Just spawned to install meson/pycairo build deps

The OOM killer fires ~2 seconds into "Installing build dependencies" and kills the pip process inside the squish container.

Why this job is particularly affected

The gui-tests-oc10 job (new in this PR) uses docker run -d --name squish ... plus a running owncloud container and mysql service — so all three are consuming memory simultaneously when pip tries to compile PyGObject. The prior gui-tests job ran squish natively via the container: directive with no additional containers, avoiding this memory pressure.

Fix options

Option 1 (recommended): install PyGObject as a system package via dnf before pip runs

- name: Install Python modules
  run: |
    docker exec squish bash -c "
      dnf install -y python3-gobject python3-gobject-devel &&
      make -C ${{ github.workspace }}/test/gui install
    "

This satisfies the PyGObject requirement without triggering a source compilation, so no memory spike.

Option 2: bake PyGObject into the squish image

Add python3-gobject to owncloudci/squish:fedora-42-* so it is already present and pip's source build never runs. Most robust long-term.

Option 3 (workaround): --no-build-isolation

Pre-install build deps with dnf, then pass --no-build-isolation to pip to avoid the isolated-env sub-process:

dnf install -y python3-gobject-devel gobject-introspection-devel cairo-gobject-devel meson
python3.10 -m pip install --no-build-isolation -r requirements.txt

@PrajwolAmatya PrajwolAmatya force-pushed the github/setup-oc10 branch 18 times, most recently from f6ff589 to 0b3b34a Compare May 21, 2026 04:15
Signed-off-by: Prajwol Amatya <prajwolamatya11@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants