Package: kitty
Version: 0.48.2-1.1
Severity: normal
Tags: patch
X-Debbugs-Cc: [email protected]

Dear Maintainer,

Tests fail in restricted or containerized build environments where
cgroup process tree memory accounting is restricted or returns 0.

Specifically `ChildMemoryTest` fails because
`memory_used_by_process_tree_rooted_at` returns <= 0.

I have attached a patch (0018-skip-memory-tests-containers.patch) that
checks if memory tracking is functional in `setUpClass` and skips the
test if it is unavailable, rather than failing the build.

This is currently applied downstream in Ubuntu. (LP: #2169491).

-- System Information:
Debian Release: forky/sid
  APT prefers resolute-updates
  APT policy: (500, 'resolute-updates'), (500, 'resolute-security'), (500, 
'resolute'), (100, 'resolute-backports')
Architecture: amd64 (x86_64)

Kernel: Linux 7.0.0-38-generic (SMP w/16 CPU threads; PREEMPT)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE not set
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages kitty depends on:
ii  kitty-shell-integration  0.45.0-1ubuntu0.1~esm2
ii  kitty-terminfo           0.45.0-1ubuntu0.1~esm2
ii  libc6                    2.43-2ubuntu2.4
ii  libcairo2                1.18.4-3
ii  libdbus-1-3              1.16.2-2ubuntu4
ii  libfreetype6             2.14.2+dfsg-1ubuntu0.2
ii  libharfbuzz0b            12.3.2-2
ii  liblcms2-2               2.17-1ubuntu0.2
ii  libpng16-16t64           1.6.57-1
ii  libpython3.14            3.14.4-1ubuntu0.2
ii  libssl3t64               3.5.5-1ubuntu3.7
ii  libwayland-client0       1.24.0-2
ii  libx11-6                 2:1.8.13-1
ii  libx11-xcb1              2:1.8.13-1
ii  libxcursor1              1:1.2.3-1build1
ii  libxkbcommon-x11-0       1.13.1-1
ii  libxkbcommon0            1.13.1-1
ii  libxxhash0               0.8.3-2build1
ii  python3                  3.14.3-0ubuntu2
ii  python3.14               3.14.4-1ubuntu0.2
ii  zlib1g                   1:1.3.dfsg+really1.3.1-1ubuntu3.1

Versions of packages kitty recommends:
ii  kitty-doc     0.45.0-1ubuntu0.1~esm2
ii  libcanberra0  0.30-18ubuntu3

Versions of packages kitty suggests:
ii  fonts-noto-color-emoji           2.051-1build1
ii  imagemagick                      8:7.1.2.18+dfsg1-1ubuntu0.1~esm4
ii  imagemagick-7.q16 [imagemagick]  8:7.1.2.18+dfsg1-1ubuntu0.1~esm4

-- no debconf information
Description: Skip child process memory tests in restricted environments
 The ChildMemoryTest relies on cgroups to track process tree memory.
 In isolated build environments (like sbuild or Launchpad builders), this
 tracking is often unavailable or restricted, causing the memory check
 to return 0 and the test to fail. This patch catches the constraint and
 skips the test gracefully instead of failing the build.
Author: Sumit Tiwari <[email protected]>
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/kitty/+bug/2169491
Forwarded: no
Last-Update: 2026-10-06

Index: kitty/kitty_tests/child.py
===================================================================
--- kitty.orig/kitty_tests/child.py     2026-10-05 13:02:29.782132821 +0530
+++ kitty/kitty_tests/child.py  2026-10-05 14:53:03.254542239 +0530
@@ -3,6 +3,7 @@

 import os
 import subprocess
+import unittest

 from kitty.child import memory_used_by_process_tree_rooted_at
 from kitty.constants import is_macos, kitty_exe
@@ -12,6 +13,12 @@

 class ChildMemoryTest(BaseTest):

+    @classmethod
+    def setUpClass(cls):
+        super().setUpClass()
+        if memory_used_by_process_tree_rooted_at(os.getpid()) <= 0:
+            raise unittest.SkipTest("Cgroups / process tree memory tracking 
unavailable in this environment")
+
     def _spawn_allocating_child(self, alloc_bytes: int) -> subprocess.Popen:
         p = subprocess.Popen(
             [kitty_exe(), '+runpy', f'''\

Reply via email to